Das Jahr-2038-Problem

Zum 19. Jänner 2038 steht erneut ein Problem an, daß mit dem Zeitstandard zu tun hat. Betroffen werden Systeme sein, die mit 32-Bit laufen und den Unixzeit-Standard nutzen. Das Problem entsteht dadurch, dass viele Computersysteme ein Zeitformat verwenden, das die Anzahl der Sekunden seit der Unix-Epoche (00:00:00 UTC am 1. Jänner 1970) zählt und diesen Wert als 32-Bit-Ganzzahl mit Vorzeichen speichert. Der maximale Wert, den eine 32-Bit-Ganzzahl fassen kann, liegt bei 2.147.483.647 (231 – 1). Dieser Zähler wird am Jänner 2038 um 04:14 überlaufen. Systeme, die auf Kalkulationen basierend auf Zeit und Datum angewiesen sind, wie etwa Datenbanken, kritische Infrastruktur oder Finanzapplikationen, könnten hier weitreichende Probleme haben. Eine potenzielle Folge bei ungepatchten Systemen ist das Zurücksetzen der Zeit auf das Jahr 1900 mit allen Folgeproblemen.

Um die Zeiterfassung mit Unixzeit auf 64-Bit umzustellen, hat bei Debian eine großangelegte 64-bit time_t transition begonnen. Die meisten Systeme laufen heute mit 64-Bit, aber es gibt da draußen auch noch eine Vielzahl an Systemen, die auf 32-Bit setzen, für bestimmte Bereiche der IT wie unter anderem Router, IoT oder Automotive werden diese auch heute noch verkauft. Diese Geräte entstammen überwiegend dem Embedded-Bereich und laufen oft viele Jahre unangetastet. Somit besteht die Gefahr, daß solche Systeme auch 2038 noch in Betrieb sind.

Da viele Distributionen 32-Bit nicht mehr bedienen (wie Ubuntu oder openSUSE), laufen solche Systeme oft mit Debian oder einem seiner Derivate. Debian ist in erster Linie besorgt um die Armhf-Architektur, da diese 32-Bit-Architektur am ehesten auch noch in der nächsten Dekade in neuen Systemen zum Einsatz kommen wird. Bei Debian haben 6429 von 35960 Paketen time_t in ihrem Quellcode. Alle diese Bibliotheken müssen gemeinsam migriert werden, da notwendige ABI-Änderungen dies erfordern. Die Umsetzung dieses Plans, der die größte ABI-Transition darstellt, die Debian je durchgeführt hat, erfordert zudem die Massenumbenennung von mehr als 1200 Bibliothekspaketen per NMU.