On Sat, 15 Mar 2008 10:19:26 -0400, Robin Lee <robinlee@[EMAIL PROTECTED]
> wrote:
>http://www.switched.com/2008/03/14/2038-the-year-the-internet-will-end/
>
>The Unix 2038 bug probably isn't news to some. But it reminds me of the
prevalent
>attitude ten years ago, that COBOL programmers were negligent or "lazy"
for taking
>shortcuts with dates. I'm guessing that in 1970 no one thought we'd be
using UNIX in
>the next century.
Unix's system timer has a window 1970 through 2037 for positive values and
1901 through
1969 for negative values. It is stored in an unsigned int, which has 31
bits of data and
a sign. The timer resolution is one second. There are 2^31 seconds in 68
years.
There is no easy fix for two reasons:
1. It is not practical to upgrade the operating system in embedded
processors,
such as in car engines, medical devices, telephones.
2. Some have used timer_t format in files and messages. Any change would
'break'
old software and file data.
Operating systems compiled to 64 bits store the time as a 63-bit long int,
which can
represent billions of years. Records and messages using timer_t must be
reformatted. Going
to an unsigned integer would buy 68 years, but break dates before 1970
e.g. your birth
date. A sliding window would be unacceptable because the recipient of
messages and records
would not know where the creator's epoch began.
Who cares? We'll be gone by 2038. :)


|