Login
Newsletter
Werbung

So, 29. August 1999, 00:00

Das Jahr 2000-Problem

Das »Jahr-2000-Problem«, bekannt auch als »Y2K-Problem«, ist besonders problematisch für die Bereiche Telekommunikation, Elektrizität, geschäftliche Transaktionen sowie EDV.

Von Pawel

Für PCs stellt sich das Problem bei der RTC (Real Time Clock). Dort wird nicht nur das aktuelle Datum und die Zeit gespeichert, sondern auch mit der Zeit gerechnet.

Das Format des Datums war seinerzeit (ca. 1980) durch IBM eingeführt worden. Da die Ressourcen damals sehr knapp waren, mußte man jedes mögliche Bit einsparen, und so speicherte man das Jahr nur zweistellig ab. Der nächste Kardinalfehler der Programmierer war, das Datum in Form von ASCII-Zeichen zu speichern. In diesem Fall benötigt man für die Darstellung von nur zwei Ziffern schon zwei Byte.

Wäre man damals auf die glorreiche Idee gekommen, das Datum als Binärzahl abzubilden, so könnte man in einem Byte die Jahre 1980 bis 2235 darstellen.

Das sollte aber noch nicht alles sein.

Das Schlimmste ist die Tradition und die damals festgelegten Standards. Noch vor ca. sieben Jahren hat mich mein »Fortran«-Lehrer gelehrt, das Datum in allen Programmen in Form Jahr/Monat/Tag darzustellen, z.B. 990206 für 6 Feb. 1999. Das ist auch die alte Sünde der COBOL-Programmierer.

Aus diesem Grund wird nach dem zweistelligen Jahr 1999 nach Addition von 1 nicht 2000, sondern 1900. Es gibt aber Chips, z.B. von Dallas Semiconductor, die das fehlende 1900 berücksichtigen.

Das war ein bißchen Geschichte und Theorie zur diesem Thema.

Uns interessiert aber hier primär, wie sich Linux in ein paar Monaten verhält.

Die Antwort ist auch nicht so einfach. Fast jedes Betriebssystem liest die Daten, die in RTC gespeichert sind, nur einmal, und zwar beim Booten. Als nächstes wertet es das Datum aus und verzichtet auf die Jahrhundert-Ausgabe.

Linux ist dabei keine Ausnahme und wertet auch beim Start die Daten des RTC aus. Wenn der Wert aus dem RTC kleiner als 70 ist, dann wird die Zahl 2000 addiert, wenn der Wert aus RTC größer als 70 ist, wird 1900 addiert. Und das geschieht unabhängig vom verwendeten Chip und BIOS, egal ob das BIOS das Jahr 2001 oder 1901 liefert. Hier ein paar Tests, die ich am meinem Rechner durchgeführt habe:

Testnr. Einstellung im BIOS
[hh:mm; tt.mm.jjjj]
Ausgabe in Linux mit date
[Tag Mon tt hh:mm:ss MET jjjj]
1 01:39; 07.02.1999 Sun Feb 7 02:39:42 MET 1999
2 01:46; 07.02.1994 Mon Feb 7 02:47:14 MET 1994
3 02:46; 07.02.2000 Mon Feb 7 03:47:15 MET 2000
4 02:11; 07.02.2002 Thu Feb 7 03:12:20 MET 2002
5 14:15; 07.02.2035 Wed Feb 7 15:16:31 MET 2035
6 07:54; 07.02.2041 Mon Jan 2 08:54:41 MET 1905
7 19:36; 07.02.2065 Tue Jan 1 20:37:03 MET 1929
8 01:50; 07.02.2070 Sat Feb 7 02:50:25 MET 1970
9 01:44; 07.02.2079 Wed Feb 7 02:44:07 MET 1979

Ich hatte leider keine Möglichkeit, folgende Daten zu testen:

  • 1960 bis 1969
  • 1970 bis 1994
  • 2080 bis ...

Mein BIOS unterstützt nur Jahreszahlen im Zeitraum 1994 bis 2079. Ich hoffe, daß ich einige Rückmeldungen bekomme, die ich auswerten und natürlich in die Tabelle eintragen kann. Die E-Mails bitte an die Adresse paweld@pro-linux.de zuschicken mit Subject: »Y2000-Linux«. Für jede Nachricht bedanke mich schon jetzt und garantiere volle Anonymität. Anonyme Mails werden nicht bearbeitet und sofort gelöscht.

Kommentare (Insgesamt: 0 )
Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung