Wednesday, January 16, 2008

Y2K38 Bug

In the next three days, every Linux or Unix people will start the thirty years of countdown before the unix timestamps overflows. This bug is called Y2K38 and it affects all unix-like operating system which represent system time as the number of seconds since January 1, 1970. Here's some technical description about it from Wikipedia:
This representation also affects software written for most other operating systems because of the broad deployment of C. On most 32-bit systems, the time_t data type used to store this second count is a signed 32-bit integer. The latest time that can be represented in this format, following the POSIX standard, is 03:14:07 UTC on Tuesday, January 19, 2038. Times beyond this moment will "wrap around" and be represented internally as a negative number, and cause programs to fail, since they will see these times not as being in 2038 but rather in 1901. Erroneous calculations and decisions may therefore result.
If you have used 64 bit system, then you can relax a bit, since 64 bit system have used longer bits to hold the date. I hope before 2038, i already bought a new 64 bit system big grin

Here's some illustration from Wikipedia