2.147.483.647 oder das Ende der UNIX Epoche
Das Ende der UNIX Epoche? Treffender wäre wohl die Umschreibung: Das Jahr 2038 Problem. Viele mögen sich wohl noch an die Ängste vor dem Jahr 2000 Problem erinnern. Viel wichtiger ist aber das Jahr 2038, da hier der POSIX Zeitstandard an seine Grenzen gerät. Doch vorerst eine kurze Erläuterung zur UNIX Zeit.
Die UNIX Zeit zählt die vergangenen Sekunden seit dem 1. Januar 1970, 00:00:00 Uhr. Dieses Startdatum nennt sich “The Epoch”. Für uns Menschen lässt sich aus der Zahl 2.147.483.647 wenig deuten, ein Computer kann hiermit aber sehr gut umgehen. So sind Umrechnungen oder Addition bzw. Subtraktion von einfachen Zahlen für eine Maschine schnell getan. Wollen wir uns einen Timestring unter Linux umrechnen lassen, geht dies ganz einfach:
date -d @2147483647 Tue Jan 19 04:14:07 CET 2038
Gehen wir nun nur eine Sekunde weiter, passiert aber folgendes:
date -d @2147483648 date: invalid date `@2147483648'
Hier sind die Grenzen der UNIX Epoche erreicht. Warum? 2³¹ = 2.147.483.647 – jede größere Zahl erzeugt einen Pufferüberlauf. Der UNIX Timestamp wird in der 32 Bit großen time_t Variable gespeichert, wobei das 32te Bit jedoch für die Unterscheidung von positiven und negativen Werten dient. Somit lässt sich auch ein Datum vor 1970 bestimmen. Älter als vom 13. Dezember 1901, 20:45:52 Uhr sollten eure digitalen Daten dann jedoch nicht sein, ansonsten droht wieder ein Pufferüberlauf.
Und was kann man dagegen tun? Keine Sorge – eine Lösung ist bereits ausgearbeitet. Da 32 Bit nicht reichen, wechselt man einfach zu 64 Bit. Die 64 Bit Varianten von Linux Distributionen können bereits mit 64 Bit time_t umgehen, wobei es jedoch Probleme mit starren 32 Bit Zeitvariablen in einigen Programmen geben kann. Bei diesen gilt es innerhalb der nächsten 30 Jahre den Adressraum zu vergrößern. Mit 64 Bit haben wir dann erstmal wieder 290 Milliarden Jahre Ruhe. Glück gehabt!
Links:
Unixzeit
The Year 2038 Problem
2038bug.com
time_t
Related posts:
- The Unix-Haters Handbook 1. Kann man als PDF herunterladen 2. Ist von einem Microsoft Mitarbeiter geschrieben worden...
- Hardwarediagnose unter Linux und UNIX Unter Windows ist wohl jedem SiSoft Sandra oder AIDA32 ein Begriff. Mit diesen Tools kann...
- Buchtipp: Python for Unix and Linux Systems Administrators Als Systemadministrator hat man häufig andere Anforderungen an Programmier- und Scriptsprachen als ein reiner...
- Frühaufsteher oder Langschläfer – die eigenen Leistungsphasen kennen! Ich zähl mich da wohl doch eher zu den Frühaufstehern. Die besten Idee kommen...
- Windows 7 oder KDE 4? Ein kleines Experiment: Man nehme einen Laptop mit KDE 4, gehe damit in die Fußgängerzone...



martin
Jaja, da werde ich mich an der Grenze zum Rentenalter zum guten Abschluß _richtig_ fett sanieren!
matthias
Rente? Ob es sowas 2038 noch geben wird?
Josef
Naja 2038 wird es aber dann bestimmt auch kein 64bit Processor mehr geben