Das Jahr 2020 ist fĂŒr Unix bemerkenswert: AnfĂ€nglich feierte das ursprĂŒngliche Betriebssystem seinen 50. Geburtstag. Die Unix-Zeit, auch bekannt als âEpoch-Zeitâ, ist die Anzahl der Sekunden seit dem 1. Januar 1970. Aber was beschĂ€ftigt die Kernel-Entwickler angesichts des fĂŒnfzigjĂ€hrigen JubilĂ€ums von Unix?

Obwohl einige frĂŒhe Entwicklungen von Unix dem offiziellen Beginn seiner âĂraâ vorangehen, bleibt der 1. Januar 1970 der Nullpunkt in der Zeit von POSIX. Daher hat die Plattform offiziell am 1. Januar 2020 genau 50 Jahre vollendet.
Zeit Unix gegen die menschliche Zeit
Aus menschlicher Sicht sind 50 Jahre eine lange Zeit. Aus Sicht der Unix-Zeit gibt es in 50 Jahren nichts Besonderes, und auch 43 Jahre wĂ€ren nicht weniger bedeutend. Unix-Systeme (einschlieĂlich Linux) speichern Datums- und Zeitwerte als die Anzahl der Sekunden seit dem 1. Januar 1970 00:00:00 UTC, in 32-Bit-Darstellung. Um zu bestimmen, wie viele Sekunden seit diesem Zeitpunkt vergangen sind und somit den aktuellen Unix-Zeitwert zu erhalten, kann der Befehl ausgefĂŒhrt werden:
$ date +%s
1576883876
Das Argument %s nach dem Befehl date bestimmt die Darstellung des aktuellen Datums und der Uhrzeit als Anzahl der Sekunden seit dem 1. Januar 1970.

Welches ist das maximal speicherbare Datum in Unix?
Um zu verstehen, wie viel Zeit ein Unix-System darstellen kann, muss die KapazitÀt des 32-Bit-Feldes bewertet werden. Dies kann so berechnet werden:
$ echo â2^32â | bc
4294967296
Da Unix jedoch auch negative Zahlen speichert, wird ein Bit fĂŒr das Vorzeichen reserviert, wodurch der Zeitwert auf reduziert wird:
$ echo â2^31â | bc
2147483648
Und da die ZĂ€hlung in Unix bei 0 beginnt, bedeutet dies, dass wir 2.147.483.648 Werte haben, aber der gröĂte Wert 2.147.483.647 betrĂ€gt â Unix-Datum und -Uhrzeit kann diesen Wert nicht ĂŒberschreiten. So wie der KilometerzĂ€hler eines Autos nicht mehr als 999.999 Kilometer anzeigen kann â addieren Sie 1, und der Wert wird zurĂŒckgesetzt.
Wie lange ist ein Jahr in Sekunden?
Die Anzahl der Sekunden in einem Jahr kann wie folgt berechnet werden:
$ expr 24 * 60 * 60 * 365
31536000
In einem Schaltjahr kommt ein weiterer Tag dazu:
$ expr 24 * 60 * 60 * 366
31622400

Wie zeigt Unix seinen 50. Geburtstag an?
Am 1. Januar 2020 um 00:00 Uhr wird die Zeit 1577836800 sein. Die Berechnung wird etwas komplizierter, da Schaltjahre berĂŒcksichtigt werden mĂŒssen. Seit Beginn der Unix-Ăra gab es 12 solche Jahre, von 1972 bis 2016. Das heiĂt, es gab 38 normale Jahre.
So sieht der Befehl expr zur Berechnung der Sekunden in den letzten 50 Jahren aus:
$ expr 24 * 60 * 60 * 365 * 38 + 24 * 60 * 60 * 366 * 12
1577836800
Oder so, unter BerĂŒcksichtigung zuvor durchgefĂŒhrter Berechnungen:
$ expr 31536000 * 38 + 31622400 * 12
1577836800
Dieser Zeitformat hat die Unix-Systeme gegen das Y2K-Problem immun gemacht. Am Ende des Jahres 1999 sorgten sich viele Menschen, dass der Ăbergang ins Jahr 2000 den Computersystemen schaden könnte. TatsĂ€chlich waren die Schwierigkeiten viel geringer als erwartet. Nur Anwendungen, die Jahre im zweiziffrigen Format speicherten, hatten Probleme mit dem Nullsetzten der Daten. Viele Entwickler leisteten zusĂ€tzliche Arbeit, um sicherzustellen, dass ihre Anwendungen nicht vom Y2K-Problem betroffen waren.
Wann wird die Zeit Unix mit Problemen konfrontiert sein?
Ăhnliche Schwierigkeiten erwarten Unix-Systeme nicht vor 2038, wenn die oben beschriebenen Datumsangaben das 32-Bit-Format ĂŒberschreiten. Es bleiben noch 18 Jahre, aber die Kernel-Entwickler arbeiten bereits daran, bevorstehenden AusfĂ€lle zu vermeiden.
Das 2038-Problem wird manchmal als Y2K38-Problematik bezeichnet. Wenn es bis Dienstag, den 19. Januar 2038, nicht gelöst ist, könnten Systeme nach diesem Datum denken, dass das Jahr 1901 angebrochen ist. Eine Möglichkeit, dieses Problem zu lösen, besteht darin, auf eine 64-Bit-Darstellung von Datum und Uhrzeit umzusteigen. Einige glauben, dass dies viel schwieriger sein wird, als es scheinen mag.
In jedem Fall ist es noch zu frĂŒh fĂŒr Panik. Was heute wirklich wichtig ist, ist der 50. Jahrestag der Unix-Systeme, die als eines der wichtigsten Betriebssysteme in der Geschichte angesehen werden.
Quelle: 3dnews.ru
