Computer zählen im Zweiersystem

Eigentlich war das Ausbleiben des Millennium-Bugs eine herbe Enttäuschung. Es war ja allen bekannt, dass die moderne Gesellschaft inzwischen so entscheidend von Computertechnologie abhängt, dass deren weltweites, synchrones Versagen eine Katastrophe nach sich ziehen würde. Ausserdem war der Effekt so schön plausibel und für jeden einsehbar. Wie auf einem Tachometer würden die Jahreszahlen plötzlich auf 0 geschaltet:

...

98

99

00

(Da immer nur von den letzten zwei Stellen die Rede war, müsste man das Tier eigentlich ganz präzis als Centennium-Bug bezeichnen.)

Computerexperten und -laien auf der ganzen Welt konnten sich nicht gegen skandalsüchtige Medienvertreter mit Weltuntergangssehnsucht durchsetzen. Wer den Millennium-Bug ins Reich der Mythologie verwies, wurde übel beschimpft und der Verantwortungslosigkeit bezichtigt. Die Liebhaber des Bugs argumentierten damit, dass das Eintreffen der Katastrophe nicht mit Sicherheit ausgeschlossen werden könne. (Dieses Argument dient auch dem Beweis der Schädlichkeit von Mobilfunkantennen, der Krebsgefährdung durch Salatgenuss, der Wirksamkeit der astrologischen Sternzeichen, der Gesundheitsgefährdung durch Geschwindigkeiten über 20 km/h u.v.m.) Erfreulicherweise konnte in diesem Fall der Realitätsbeweis erbracht werden, da sich das Ausbleiben des Weltuntergangs viel weniger leicht wegdiskutieren lässt, als etwa das Versagen astrologischer Prognosen.

Eigentlich wussten ja all die Schürer der kollektiven Hysterie, dass Computer seit den frühen Siebziger Jahren im Zweiersystem zählen: 0000 (0), 0001 (1), 0010 (2), 0011 (3), 0100 (4), 0101 (5), 0110 (6), 0111 (7), 1000 (8), ... Wenn also so ein "Millennium"-Überlauf die Computer treffen soll, ist er nicht bei runden Zahlen im Zehnersystem zu erwarten, sondern nach Zahlen, die im Zweiersystem mit vielen Einsen aufhören. Bei einer 32-stelligen (typisch für heutige Computer) Zahl sieht der Überlauf folgendermassen aus:

...

1111'1111 1111'1111 1111'1111 1111'1110 (4'294'967'294)

1111'1111 1111'1111 1111'1111 1111'1111 (4'294'967'295)

0000'0000 0000'0000 0000'0000 0000'0000 (0)

So wird zum Beispiel im DOS/BIOS und somit auf allen Windows- und LINUX-Plattformen die Zeit als 32-bit Wert in Sekunden nach dem 1.1.1970 gezählt. (PCs kamen Ende der Siebziger Jahre auf. Der 1.1.1970 schien ein geeigneter Anfang der neuen Zeitrechnung.) Damit ist abzusehen, dass 4'294'967'296 Sekunden nach dem 1.1.1970 um 00:00:00 Uhr solch ein Überlauf eintreten wird. Wenn man berücksichtigt, dass zwar im Jahr 2000 ein Schalttag gezählt wird, im Jahr 2100 jedoch nicht, so ergibt sich, dass auf die Sekunde

7.2.2106 um 06:28:15

wieder die Sekunde 1.1.1970 um 00:00:00 folgen wird. Spätestens bis zu diesem Zeitpunkt muss ein anderer, geeigneterer Standard für die interne Speicherung der Zeit etabliert sein, wenn die Welt nicht einem echten Millennium-Bug zum Opfer fallen soll.

Viele Computerprogramme benutzen aber das erste Bit einer 32-bit Zahl als "Vorzeichen". D.h., dass die binären Zahlen folgendermassen interpretiert werden:

...

0111'1111 1111'1111 1111'1111 1111'1110 (2'147'483'646)

0111'1111 1111'1111 1111'1111 1111'1111 (2'147'483'647)

1000'0000 0000'0000 0000'0000 0000'0000 (-2'147'483'648)

1000'0000 0000'0000 0000'0000 0000'0001 (-2'147'483'647)

Dieser Überlauf findet schon am

19.1.2038 um 03:14:08

statt.

Es ist nun ein Leichtes, auf irgendeinem PC die eingebaute Uhr auf diese Daten einzustellen und zu prüfen, welche Programme vorher noch und nachher nicht mehr funktionieren. Enttäuscht stellt man fest, dass das System immer noch hochkommt. Die Datumsanzeige ist zwar falsch. Das stört aber das ordnungsgemässe Funktionieren der Maschine nicht gross. Das System übernimmt nur einen "Timestamp" von der eingebauten Uhr. Zeitdifferenzen (Dauer) werden auch über die den Überlauf-Punkt korrekt berechnet. Darum ist auch in den Jahren 2038 und 2106 nicht mit Flugzeugabstürzen, Autounfällen oder Mikrowellenausfällen zu rechnen. Höchstens der Zeitspeicher für die Videoaufzeichnung könnte sich etwas seltsam verhalten.

Wo es jedoch eine Rolle spielt, welche Datei älter als eine andere ist (u.ä.) stellt sich endlich der sehnlichst erhoffte Millennium-Bug ein: Beim Erstellen eines "Projekts" scheitert das "MS Visual Studio" mit einem dramatischen "Absturz" kläglich. Auch die "Make"-Utility auf LINUX macht nicht mehr mit.

Auf ähnlich einfache Weise konnten die Verkünder des Millennium-Bug den Unsinn, den sie verzapften, auf Wahrhaftigkeit prüfen. Ihre Wahnsinnsbehauptungen wurden also sämtliche wider besseres Wissen verbreitet.

Bei einem ganz anderen Zeitproblem haben wir somit alle kräftig vom Millennium-Bug profitiert: Als Folge der modernen Informationstechnologie werden wir ja mit immer voluminöserem Medien-Auswurf überschüttet. Die Verarbeitungszeit für Zeitungsartikel, Radio- und Fernsehnachrichten etc. lässt sich nun einfach auf einen Bruchteil reduzieren, wenn man sich merkt, welche Medienschaffenden in den letzten drei Monaten den Stuss vom Millennium-Bug verzapft haben (Eine einfache Internet-Recherche mit Stichworten "Millennium" und "Bug" auf den Websites der Zeitungen und Rundfunkanstalten verhilft zu den einschlägigen Listen.). Die Kenntnisnahme der Artikel und Äusserungen dieser Leute kann man sich in Zukunft getrost ohne Verlustrisiko ersparen. Die gewonnene Zeit setzen wir dann ein, um das Problem des Jahres 2038 zu lösen.

12.1.2000 Hartwig Thomas