Friday, May 11, 2012

 

Year 2038 BUG similar to Y2K problem

 
Over view of Y2K Problem

Just to brief about Y2K BUG the year 2000 and 1900 would be same. This happened as the machines does not store the Century digits of dates like

        year 1998 was stored as 98 ,
        year 1999 was stored as 99 ,
        year 2000 was stored as 00 ,

Reason "Limited space for data on the cards led to wide-spread use of two-digit year fields"


Year 2038 BUG

Y2038 also similar to the Y2K in terms of date and time. Most of modern system we use system time as a signed 32 bit signed integer.

Range of 32 bit signed is  value is (-)2147483648 to (+)2147483647  

As the value of time reaches 2147483647  then it resets to (-)2147483648 and there after incrementing each second ( with negative value ) as shown in below figure(attached).

On "Tue Jan 19 03:14:07 2038"  the value of time will be (+)2147483647 and any increments further will result it to (-)2147483648 which is  Fri Dec 13 20:45:52 1901.
We can also call it Friday 13 BUG :)


Some of the modern systems use 64 bit singed integer and it  has a range upto 20 times greater than the age of universe( theoretical ).

Most of the todays Embedded systems fall into this category.

COBOL systems from the 1970s, 1980s and 1990s that have not been replaced by 2038-compliant systems -- Not sure about the authenticity


References
http://computer.howstuffworks.com/question75.htm
http://2038bug.com
http://en.wikipedia.org/wiki/Year_2038_problem

1 comment: