The Year 2038 will cause nearly every modern computer to stop working if we don’t prepare for it. This isn’t because of some massive virus or degrading hardware, it has everything to do with how we keep time.
Nearly every computer in the history of computers keeps time using a 32-bit integer counting forward from 00:00:00 UTC on the 1st of January 1970, referred to as the epoch. This instant of time was set as the standard for modern computing systems, but there’s a major problem. Seven seconds after 3:14 am UTC on the 19th of January 2038, the 32-bit integer storing this time data will run out of positions.
The problem is similar to the Y2K issue where a 2-digit value could no longer be used to encode the years 2000 or later, but different in that this 32-bit bug is related to Unix-like systems and the Unix time format.
These similarities to the Y2K bug have widely lead to the 2038 problem being known as the Unix Millennium Bug.
The last time that can be represented in the Unix 32-bit timecode is 231-1 or 2,147,483,647 seconds after 1 January 1970. Times after this point will wrap back around and be stored as negative numbers. This is caused by the storage system running out of integers to modulate, leaving only the sign to change. Computers will then interpret this as the 13th of December in 1901 and onward rather than the actual 2038 date.
This may not sound like a big deal, but think about all the ways we use software. If you have licenses that are timestamped, you could suddenly lose access to important work documents, your financial information and more.
Problems won’t just start arising in 2038, any software that uses future dates will need to be fixed soon. Programs that work with dates 20 years in the future, like investment funds and advanced scheduling programs, will need to be fixed no later than 2018.
All of this may sound like a simple fix, just change the end date of the storage method, but it isn’t that simple. Computer engineers behind games and apps that pose waiting periods are already running into trouble coding in dates past January 19th, 2038. Because the storage method is 32-bit Unix, it’s impossible for these 3rd party programmers to code in a time past this date.
But so what, our dates will be changed, people will expect these issues and any potential problems won’t cause panic, they’ll just be quickly fixed. This isn’t exactly true.
Transportation systems from flight equipment to modern cars use embedded software that often goes untouched. Nearly everything in your car is controlled by its ECU, or onboard computer, which uses Unix timekeeping to track dates and times. This means that this bug could potentially interrupt ABS braking systems, electronic stability controls, traction controls, and GPS systems; they all could be significantly impacted.
All of these systems won’t require access to dates to run, but some will, and it’s hard to know which were programmed with date dependent code.
So, what’s the fix? There isn’t an easy one.
Embedded systems like those in cars and appliances are designed to last the lifecycle of the device without a software update. Connected electronics can be quickly fixed with a software update when the time comes, but these embedded systems will likely wreak the most havoc in 2038 since most won’t be updated.
One option is to change the date storage system of the 32-bit integer to an unassigned 32-bit integer. This would theoretically allow for date storage all the way to 2106, but any system that used a date prior to 1970 would run into issues accessing this data.
If we increased the data storage to 64-bit, we would run into compatibility storage issues between older systems that only use 32-bit data storage.
There’s no current universal solution to the problem and even the most widely accepted fixes still have bugs in certain usage areas. There is positive news at the end of this.
Most new electronic equipment is designed to use a new 64-bit data storage method. A date integer this large would extend 20 times longer than the estimated current age of the universe, approximately 292 billion years at 15:30:08 UTC on Sunday, 4 December 292,277,026,596. So your iPhone might just be safe until then.
Image Source: Wikimedia
Luckily, this issue is well known about and studied, which means that computer engineers will likely solve the issues on software that is still updated and maintained. However, your mint condition 1997 Prius that you have in your car collection in 2038, well, you may not be able to drive it after 3:14 AM on January 2038 thanks to its now faulty onboard computer.