We’re going to get a little old-school this week in Geek
Trivia, with a shout out to the original do-everything operating system: UNIX.
This Friday marks the fourth anniversary of the so-called UNIX billennium, a moment when the venerable OS reached a
timekeeping milestone and experienced its own mild version of the Year 2000
bug.
To understand what we’re talking about, first you have to
grasp two key concepts: UNIX time (also known as POSIX time) and the UNIX
epoch. UNIX time is the method by which several key software systems—among them
the UNIX OS and the Java programming language—measure time.
UNIX time is actually rather simple. It’s a measure of the
seconds that have elapsed since the beginning of the UNIX epoch, which officially
began at zero hours, zero minutes, and zero seconds on Jan. 1, 1970, as measured
by the international standard of Coordinated Universal Time (UTC).
Thus, in software terms, UNIX time is highly efficient. At
its root, it’s simply an ever-increasing integer, which we can programmatically
convert to a conventional date (not exactly groundbreaking technology, but
notable as a simple, widely accepted standard). Each day is 86,400 seconds long,
so calculating elapsed days is merely a matter of division, and we can
determine a calendar date from that quotient.
Of course, even in the best systems, there’s always a catch,
and that’s where the UNIX billennium comes in. By design, many UNIX-based
programs interpreted UNIX time as an eight-figure integer, with total elapsed
time measuring in the hundreds of millions of seconds. Unfortunately, on Sept.
9, 2001, UNIX time reached one billion seconds—effectively breaking the
eight-figure-expectant programs, notably certain portions of the KDE desktop
environment.
Now, linguistic and chronometric purists would point out
that billennium is not a real word,
but instead a slang contraction of billion
(the number of seconds) and millennium
(a reference to the Y2K or millennium bug). The proper term for one billion
seconds is a gigasecond. As quibbles
go, that’s a mild one.
The real issue with UNIX time—one far more intriguing and potentially
more disquieting than the billennium—is its synchronization with UTC. Nominally
maintained by atomic clocks, UTC’s objective is to stay in sync with the actual
duration of the solar day.
That’s a fancy way of saying that the Earth’s rotation is
slowing minutely each year, so that each day is not exactly 86,400 seconds
long. In 1972, the authorities behind UTC developed a timekeeping innovation to
compensate for this discrepancy, one that complicates the administration of
UNIX time.
WHAT 1972 TIMEKEEPING INNOVATION COMPLICATED THE SO-CALLED
UNIX EPOCH?
What 1972 timekeeping innovating complicated the so-called
UNIX epoch, a time measurement standard employed by various mainstream software
systems, including the UNIX operating system and the Java programming language?
As we mentioned earlier, synchronized with Coordinated
Universal Time (UTC),the UNIX epoch officially began on Jan. 1, 1970. The
problem is that UTC didn’t exist in its present form until 1972, when the
International Earth Rotation and Reference Systems Service—the scientific
authority that precisely measures the Earth’s rotation for timekeeping purposes—introduced
a new variable: leap seconds.
First, a little background: UTC is a hybrid of Universal
Time (UT) and International Atomic Time (TAI). The basis of UT is the earth’s
rotation; it synchronizes clocks based on the amount of time it takes the earth
to complete a single spin. The basis of TAI is the formal scientific definition
of a second—namely the amount of time it takes for a specially irradiated
cesium atom to oscillate 9,192,631,770 times.
In a perfect world, these two standards would always be in
sync. But in the real world, the braking force of the Earth’s tide is slowing
down our planet’s rotation, so a hybrid time standard is required: Coordinated
Universal Time.
The secret to UTC is the leap second, an extra second added
to a specific year to keep civil time roughly in sync with the ever-slowing
Earth. Authorities added the first leap second on June 30, 1972, and they have
added 21 since then.
The next planned addition of a leap second is Dec. 31, 2005.
On that date, 11:59 P.M. UTC will be 61 seconds long, and the clock will
actually sequence from 23:59:59 to 23:59:60, rather than from 23:59:59 to
00:00:00.
The problem this presents for UNIX time is that the addition
of leap seconds occurs at irregular, somewhat arbitrary intervals, as the
slowing of the Earth’s rotation is not predictable over the long term. As such,
programmers must manually factor leap seconds into programmatic date
calculations for systems based on UNIX time, which is a complicated task. Different
programmers and development standards handle the task in different ways, which
can occasionally lead to minor problems when time-sensitive software
communicates over extended periods.
So while UNIX can’t extrapolate forward the exact civil time
at which precisely measured astronomic or atomic events will someday occur—there
goes all that time-travel science fiction—it can reliably provide some timely
and time-consuming Geek Trivia.
Check out the Trivia Geek’s blog!
Keep in touch
with Trivial Pursuits, the
Trivia Geek’s online journal of rants, opinions, crazy ideas, half-baked
notions, bizarre concepts, wild schemes, and trivial observations unfit even
for Geek Trivia.
The Quibble of the Week
If you uncover a questionable fact or debatable aspect of
this week’s Geek Trivia, just post it in the discussion area of the article.
Every week, yours truly will choose the best post from the assembled masses and
discuss it in the next edition of Geek Trivia.
This week’s quibble comes from a Classic Geek, the Aug. 24,
2005 reprint of “They
say it’s your birthday,” originally published on May 21, 2003.
TechRepublic member Kanishk
immediately smacked me down for a whopper of a TCP/IP gaffe.
“I guess that TCP stands for Transmission Control Protocol
and not ‘Transfer Control Protocol’ as mentioned in this article.”
Bad geek, no cookie. Thanks for the corrections and the
Wikipedia connection, dear reader, and keep those quibbles coming!
Falling behind on your weekly Geek fix?
Check out the Geek Trivia Archive,
and catch up on the most recent editions of Geek Trivia.
Test your command of
useless knowledge by subscribing to TechRepublic’s Geek Trivia e-newsletter. Automatically
sign up today!
The Trivia Geek, also
known as Jay Garmon, is a former advertising copywriter and Web developer who’s
duped TechRepublic into underwriting his affinity for movies, sci-fi, comic
books, technology, and all things geekish or subcultural.