37.6. How Unix Keeps Time
Like
all other operating systems, Unix has a
concept of the time. And virtually all Unix systems, even the
smallest, include a clock with some sort of battery backup built in.
All Unix systems keep time by counting the number of microseconds
since midnight, January 1, 1970, Greenwich Mean Time. This date is
commonly called the
epoch,
and it has folk-significance as the begining of the Unix era.
Although the first work on Unix began in the late
'60s, the first versions of Unix were available
(within Bell Laboratories) in the early '70s.
This count gets updated roughly 60 times per second. The exact rate
depends on your particular Unix system and is determined by the
constant, HZ, defined in the header file
/usr/include/sys/param.h:[118]
#define HZ 60
This is the time's
"resolution," often referred to as
the clock's
"tick." Note that it has nothing to
do with your system's CPU clock rate. Time
measurements are normally no more precise than your
system's clock resolution, although some systems
have added facilities for more precise timing.
If your Unix
system belongs to a network, it is important to keep all
the clocks on the network "in
sync." [119] Strange things happen if you copy a file from one system
to another and its date appears to be some time in the future. Many
Unix systems run a time daemon (one of those
mysterious helper programs (Section 1.10)) to take care of this.[120]
Unix automatically keeps track of daylight savings time (summer
time), leap years, and other chronological trivia. When the system is
installed, you have to tell it your time zone and the style of
daylight savings time you want to observe. As Unix has become an
international standard, the number of time zones (and obscure ways of
handling daylight savings time) it can handle correctly has
proliferated. In a few cases, you still have to handle these things
by hand; for example, in Europe, as of this writing, the beginning
and end of Summer Time were set periodically by the European
Parliament, and so may change. Care for Libyan Standard Time?
Unix's internal routines compute time in relation to
the epoch, but there is no reason for you to worry about it unless
you're a C programmer. A library of time routines
can convert between this internal representation and more usable
representations; see the Unix manual page for
ctime(3).
-- ML
 |  |  | 37.5. Quoting and Command-Line Parameters |  | 37.7. Copy What You Do with script |
Copyright © 2003 O'Reilly & Associates. All rights reserved.
|