3min

Tags in dit artikel

, , , ,

Op 19 januari 2038 dreigt een IT-probleem een wereldwijd forse impact te gaan hebben. Waar komt het probleem vandaan, wat zal in 2038 gebeuren en is er een oplossing voor?

Het 2038-probleem stamt eigenlijk uit de begindagen van het computertijdperk. Destijds waren 32-bits processoren de standaard. Hoewel deze processoren toen een logische keuze waren, dreigen ze in de toekomst problemen te veroorzaken omdat ze tegen de beperkingen van het Unix-tijdsformaat aanlopen. De Unix-timestamp wordt gebruikt voor het bijhouden van de tijd. Hoewel deze timestamp bedacht is voor het Unix-besturingssysteem, is die ook zeer dominant op Linux-systemen. Linux heeft een enorme aanwezigheid op allerlei cruciale apparaten. Het Unix-formaat registreert uiteindelijk tijd als het aantal seconden sinds 1 januari 1970. Het geeft aan hoeveel seconden zijn verstreken vanaf middernacht op 1 januari 1970.

Alle 32-bits processoren lopen tegen de beperking aan van de Unix-timestamp. Een 32-bits getal kan maximaal 2^31 – 1 verschillende waarden representeren, wat betekent dat een computer met een 32-bits processor maximaal 2.147.483.647 seconden kan weergeven. Dit maximum zal uiteindelijk in 2038 worden bereikt, waardoor er simpelweg niet genoeg ruimte is om tijd op te slaan.

Deze beperking leidt ertoe dat na 19 januari 2038 om 03:14:07 UTC (04:14:07 Nederlandse tijd) computers met een 32-bits processor niet meer correct de tijd kunnen registreren. Er ontstaat een overflow waarbij het systeem een numerieke waarde probeert te creëren die het niet kan registreren. Sommige computers zullen crashen, maar op Stack Overflow zijn ook verhalen over het negatief registreren van tijd. Systemen denken dan dat het 2^31 seconden vóór 1 januari 1970 is. Dat komt neer op 13 december 1901 om 20:45:52.

Hoe groot is het probleem?

Het 2038-probleem is een tijdbom voor systemen. Als er niets gebeurt, zullen verschillende bedrijven daar grote gevolgen van ondervinden. Vooral organisaties die sterk afhankelijk zijn van nauwkeurige tijdmetingen en een 32-bits processor blijven gebruiken, zullen tegen problemen aanlopen. Ook omdat zij veel gebruikmaken van Linux en Unix. Dat is bijvoorbeeld denkbaar in de luchtvaartindustrie, waar men vertrouwt op tijdgevoelige systemen voor navigatie en communicatie. Mocht de tijdsregistratie niet meer correct verlopen, kunnen er potentieel gevaarlijke gevolgen zijn voor de veiligheid en het functioneren van het vliegtuig.

Andere bedrijven waarvoor het 2038-probleem op papier flink problematisch is, zijn financiële dienstverleners en zorgverleners. In de financiële dienstverlening is tijdsregistratie cruciaal voor het verwerken van transacties. Bij onjuiste tijdsinformatie kunnen er fouten en verstoringen optreden. In de gezondheidszorg geldt dat tijdsregistratie vaak essentieel is voor diagnoses en behandelingen. Zonder de correcte informatie lopen patiënten gevaar.

Voor de reguliere gebruiker is het 2038-probleem minder van belang. Consumenten zijn niet direct heel erg afhankelijk van tijdsregistratie. Een systeem met een 32-bits processor zal voor hen na de datum in 2038 betekenen dat ze het systeem niet kunnen gebruiken of de tijd foutief zien. Grote problemen kunnen zij alleen ondervinden bij het gebruikmaken van dienstverlening van bedrijven, zoals in bovenstaande situaties geschetst.

Wat is de oplossing?

In de techwereld is het 2038-probleem bekend. Veel bedrijven hebben dan ook maatregelen getroffen om het probleem voor te zijn. Het meest logische is een overstap naar 64-bits processoren. Systemen met zo’n processor zullen uiteindelijk voor een hele lange tijd geen probleem hebben met tijdsnotatie. Het maximum aantal seconden dat kan worden geregistreerd komt neer op honderden miljarden jaren. Dit ligt zover in de toekomst dat het niet denkbaar is dat een 64-bits processor ooit nog tegen een limiet zoals het 2038-probleem aanloopt. Het 64-bits tijdsformaat overstijgt namelijk de levensduur van systemen en software.

De markt is ook gewend aan 64-bits; software en besturingssystemen zijn aangepast om gebruik te maken van deze architectuur. Het maakt een 64-bits processor met afstand de meest logische keuze om het 2038-probleem aan te pakken.

Naast deze logische overstap naar 64-bits, kan een oplossing zijn om voor een alternatieve tijdsrepresentatie te kiezen. Dit vereist complex werk van een ontwikkelaar die uitgebreide datastructuren creëert voor het jaar, de maand en dergelijken. Deze optie is niet echt praktisch en heeft in zeer weinig situaties de voorkeur.

Wake-up call

Met het jaar 2038 in zicht lijkt de wereld klaar voor de uitdaging. Doemscenario’s lijken uit te blijven, omdat er volop maatregelen getroffen worden door bedrijven. Naast dat het in 1970 technisch uitdagend was om een verder te gaan dan 2038, was destijds ook niet per se te voorzien dat computers langdurig een allesbepalende rol zouden gaan hebben in ons leven. Nu moeten systemen aangepast worden om aan de behoeften van de maatschappij te kunnen blijven voldoen.

Tip: Wat is RAG (Retrieval-Augmented Generation)?