Re: Y2K

Andrew Derrick Balsa (andrebalsa@altern.org)
Fri, 19 Jun 1998 17:17:10 -0100


Hi,

Y2K compliance under GNU/Linux is a multi-level problem.

1) Applications: check your application souces for routines that only
check the last two digits of the year field/variable(s).

2) Libraries. Libc5 and glibc are known to be Y2K compliant.

3) Kernel. The Linux kernel is y2k compliant. BTW the code snippet in
the i386 time.c will force those non-y2k compliant RTC implementations
to the correct date on 00:00:00 Jan 1, 2000. It's been there for quite
some time, now, nice and quiet.

4) BIOS. On x86 PC machines, some BIOS's will wrap back to 1900, later
versions will correctly wrap the RTC clock to 2000. This is a rather
critical problem in embedded systems if they are not running Linux; if
they are running Linux this is solved by 3) above. :-)

5) Hardware. The standard PC RTC chip will not wrap the century.
Wrapping must be done in software/BIOS. The chip will store the century
data, but it just won't increment it on 00:00:00 Jan 1 2000. Idem as 4)
WRT embedded systems.

Testing
-------

3), 4) and 5) are really easy to test if you are allowed to reboot the
machine; just enter the CMOS setup routine and set the time to Dec 31
1999, 23:58:00. Boot and check what happens.

Checking 1) and 2) takes a lot more work... Specially checking 1) when
you don't have access to the source code :( The only way is simulation.
But this is getting off-topic: if you don't have access to the source
code, then it's not relevant to GNU/Linux. ;)

Cheers,
------------------------
André Balsa
andrebalsa@altern.org

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu