24 Years Hence – y2038

What’s with looking 24 years ahead?

How many computer or control systems are still going to be running in 24 years time?…

Surprisingly, more equipment than might be first imagined…

Hence what has been termed the “unix millennium ‘bug'” is being seriously considered and fixed now.

To explain all about the unix ‘y2038’, there is what is perhaps one of the worst formatted pages of the internet: Y2038.COM. Wikipedia gives a more verbose explanation: Year 2038 problem.

In brief: 03:14:07 UTC on Tuesday, 19 January 2038 (2147483647 seconds after 1st January 1970) is the latest date that can be represented by a signed 32bit number counting seconds from the unix start date of 1st January 1970. The next second count then overflows the 32bit signed integer to wrap around to a negative number indicating 13th December 1901…

This has already been fixed for one flavour of BSD: OpenBSD 5.5 Brings Y2038 Compliance. Meanwhile 😉 … A good start is being made for Linux:

In those articles, “never” is used to describe the already used 48bit and greater time representations whereby they run out of time long after our solar system can be expected to cease to exist!

So that’s a good start to pull the time together for Linux file systems and then for the kernel itself. There is a lot of time to rearrange, but starting this soon, there should be time 🙂

Cheers,
Martin

1 comment to 24 Years Hence – y2038

  • Martin L

    Wikipedia has a good article on “unix time” as is used by such as Linux. There is also a lot about how leap seconds are handled for our planet’s imperfect time keeping:

    Unix time

    Unix time (aka POSIX time or Epoch time), is a system for describing instants in time, defined as the number of seconds that have elapsed since 00:00:00 Coordinated Universal Time (UTC), Thursday, 1 January 1970, not counting leap seconds. It is used widely in Unix-like and many other operating systems and file formats. Due to its handling of leap seconds, it is neither a linear representation of time nor a true representation of UTC. Unix time may be checked on most Unix systems by typing “date +%s” on the command line…

    All rather more convoluted than the simple tick-tock of an old mechanical clock marking the movement of a pendulum…

    And if “what time it is” is not difficult enough: As for what is time?…

    😛

Leave a Reply