Suche
Close this search box.

Y2K38: Timed Obsolescence

Eine Freiluftuhr, die zerbrochen ist

Was haben Fernseher, die sich selbst ausschalten; Programme, deren Texte plötzlich in einer unleserlichen Schrift erscheinen; und Züge mit falschen Anzeigen gemeinsam? Sie haben Probleme mit ihrer inneren Uhr; genauer gesagt, beim Umgang mit der Zeitzählung. Und es gibt kaum ein modernes Gerät, das nicht von der Zeit abhängt—egal, ob Wecker oder Gebäudeheizung. Diese Probleme sollten wir jetzt angehen, denn es ist höchste Zeit.

19. Januar 2038: Ein Tag im Leben von Marc L.

Marc L. (Name geändert) erwacht erschreckt. Wieso hat der ansonsten super-zuverlässige Radiowecker neben dem Bett nicht geklingelt? Huch, der Wecker zeigt 23:28! Und 13. Dezember 1901? Was ist passiert‽ Wurde er von Aliens entführt? Ist er durch ein Zeitloch gefallen? Marc wird es ganz schwummerig.

Zum Glück findet er irgendwann sein Handy, das zeigt den 19. Januar 2038 an und seit Herzklopfen beruhigt sich langsam wieder. Allerdings ist es schon 6:30, da müsste er schon unterwegs sein, ein wichtiger Termin wartet heute auf ihn. Er hüpft schnell noch unter die Dusche, aber das Wasser wird nicht richtig warm. Jetzt bemerkt er auch langsam, dass seine Wohnung merklich kühler ist als sonst. Funktioniert etwa die Heizung nicht mehr? Jetzt, im Winter‽ Ach du grüne Neune!

Marc braucht jetzt dringend einen Kaffee. Auf dem Weg in die Küche fällt ihm auf, dass auch die Backofenuhr schwarz ist. Licht geht aber. Was ist los? Er will sich informieren und schaltet seinen Fernseher an. Auch der bleibt schwarz.

Er ist inzwischen viel zu spät dran, der Zug ist schon längst abgefahren. Und der wichtige Termin! Er wird zu spät kommen! Statt zum Zug begibt er sich deshalb zum Auto. Und muss dabei dem mitten im Winter wild um sich sprühenden Rasensprenger des Nachbarn ausweichen. Völlig durchnässt will er sich in sein Auto retten, aber auch das tut keinen Wank.

Verzweifelt holt er das Handy hervor und sieht in Onlinemedien, dass er nicht der Einzige ist. Unzählige Berichte erzählen über das «Jahr-2038-Problem», «Y2K38» oder die «Epochalypse».

Bis sich der Marc aus der Geschichte wieder beruhigt hat, ergründen wir die Hintergründe.

Die Probleme

Wer noch nicht weiss, wie ein Computer zählt, kann das im vorangehenden Artikel nachlesen.

So schön und klar die (binäre) Zahlenwelt der Computer in der Theorie ist, in der Praxis haben wir zwei Probleme:

1. Die Zahlen sind endlich

Hier ist nach 3 binären Stellen Schluss, es gibt nur „000“ (0), „001“ (1), „010“ (2), „011“ (3), „100“ (4), „101“ (5), „110“ (6) und „111“ (7); kein „1000“ (8). Also wechselt es nach 7 wieder zu 0, ähnlich wie ein dreistelliger(!) (dezimaler) Kilometerzähler nach „999“ eben auch nicht das vierstellige „1000“ kann und wieder zu „000“ wechselt. Detaillierte Erklärungen hier.

Mit den in den Beispielen im Vorgängerartikel verwendeten 3-Bit-Zahlen können wir nur 8 verschiedene Kombinationen darstellen.

Nehmen wir an, wir haben eine Lebensmittelvorrats-App erstellt. Nehmen wir weiter an, wir hätten nur ganz wenig freien Speicherplatz, so dass in der App für jedes Lebensmittel nur eine dieser 3-Bit-Variablen als Zähler zur Verfügung steht. Damit können wir jeweils bis zu 7 Packungen Mehl, Zucker und Öl erfassen, was für unseren Haushalt ausreicht.

Plötzlich hat unser Lebensmittelhändler eine Grossaktion: Ein 10er-Pack unserer Lieblings-Pelati zum halben Preis! Die müssen wir unbedingt haben! Wir zählen also unseren 3-Bit-Zähler erwartungsfreudig 10 Mal hoch. Bei der achten Dose wechselt die Anzeige aber wieder von 7 auf 0, so dass nach 10 Zählschritten die App steif und fest behauptet, wir hätten nur 2 Dosen im Notvorrat. Oh je!

In unserer selbstgebastelten Software mit einem Nutzer können wir die Software anpassen, die Daten ins neue Format konvertieren und glücklich weitere Daten erfassen. Wir nutzen neu ein 8-Bit-Feld, in der Hoffnung, dass niemand mehr als 255 Dosen bunkere. (Mit 8 Bits kann man 2⁸=256 verschiedene Werte darstellen, häufig 0 bis 255. Mehr dazu im Vorgängerartikel.)

Während das für Privathaushalte vermutlich ausreicht: Eine engagierte Pfadi beginnt mit der Nutzung der App für ihr Pfadiheim und fällt damit beim Einkaufen für das Pfadilager auf die Nase…

Wir sehen also, das Abschätzen einer oberen Grenze ist alles andere als einfach!

Und trotzdem müssen wir uns, wann immer wir irgendwo eine Zahl abspeichern möchten, jetzt schon Gedanken darüber machen, wie gross der Maximalwert sein wird, den wir jemals speichern möchten. Wenn die Software oder das Datenformat nur unser persönliches Projekt bleibt, ist eine Änderung jederzeit möglich. Was aber, wenn wir Milliarden von Rechner auf der ganzen Welt haben, die alle Datenpakete in unserem Format austauschen? Oder Millionen von Programmen, die damit umgehen müssen? Oder irgendwo Billionen von Datensätzen in diesem Format herumliegen? Das alles lässt sich später nicht mehr einfach ändern.

2. Positiv oder negativ?

Es gibt noch das Dilemma mit den negativen Zahlen. Das ist unten im Anhang erklärt, für die, die es interessiert. Das frisst uns in vielen Fällen nochmals eines dieser wertvollen Bits.

Was bedeutet das konkret?

Bisher haben wir fröhlich drauf los gezählt. Jetzt bekommt unser Zählen noch einen Sinn: Ganz viele Vorgänge in Computern (vom Handy bis zum Server) sind zeitabhängig. Hier ein paar Beispiele:

  • Der Wecker auf dem Handy, der uns am morgen wachklingelt.
  • Der Backofen, der am Sonntagmorgen den Zopf backen soll, während wir noch ausschlafen.
  • Die Bildschirmsperre, die ein paar Minuten nach dem letzten Tastendruck aktiv werden soll, um unseren Rechner vor Unbefugten zu schützen.
  • Jedes Netzwerkpaket, dass wir ins Internet schicken (zum Beispiel zum Abruf dieser Webseite), könnte unterwegs wegen Funkloch oder Netzüberlastung verloren gehen. Deshalb verschickt der Server dafür eine Empfangsbestätigung. Wenn diese nicht innerhalb einer bestimmten Frist eintrifft, senden wir das Paket nochmals.
  • Wenn ein Programm mehr als ein paar Millisekunden ununterbrochen rechnet, wird es vom Betriebssystem kurz unterbrochen, damit das Betriebssystem selbst regelmässige Aufgaben erledigen kann (wie die Buchführung über Internetpakete oben) und auch andere Programme mal eine Chance haben (z.B. das Mailprogramm, das alle paar Minuten die neuesten Mails abholt).
  • Die Waschmaschine, die nach 10 Minuten in den nächsten Waschgang wechselt.
  • Das Telefon, das regelmässig alle paar Millisekunden die gerade aufgenommenen Sprachdaten in ein Datenpaket verpackt und an das Telefon des Gesprächspartners versendet.

Diese kleine Auswahl zeigt: Ohne Zeitmessung läuft auf einem modernen Gerät nichts. Egal, ob es sich offensichtlich als Computer zu erkennen gibt oder der Computer in Backofen, Waschmaschine, intelligentem Heizungsthermostat oder wo auch immer versteckt ist.

GPS

Am 17. Februar 2023(!) hat Lister189 im Zug von Hannover nach Bremen folgendes Foto gemacht:

Datumsanzeige im Zug: «04.07.2003»; aufgenommen genau 1024 Wochen später, am 17.02.2023. Bildquelle: Fediverse-Post von Lister189; Verwendung mit Erlaubnis.

Ein bekanntes Datumsüberlaufsproblem ist von GPS-Empfängern her bekannt. Die Information im GPS-Signal muss möglichst kompakt sein, deshalb wurde in den 1970er-Jahren nur 10 Bit für die Nummerierung der Wochen eingeplant, wodurch sich die ausgesendete Uhrzeit alle 1024 Wochen oder rund 19.6 Jahre wiederholt.

Es gibt Dutzende von verschiedenen Möglichkeiten, auf Computern mit Zeit umzugehen: Unterschiedliche Startdaten („Jahr 0“, 1900, 1904, 1970, 1980, …), unterschiedliche Granularitäten (Sekunden, Mikrosekunden, Wochen, …).

Da die GPS-Zeit ab 01.01.1980 zählt, fanden die ersten dieser Überläufe, die GPS week number rollovers, im August 1999 und April 2019 statt. Beim ersten Rollover war GPS noch zu wenig verbreitet; beim zweiten gab es etliche Probleme, von alten Mobilgeräten über Autos und Wetterballone bis zu Flugplanungssystemen. Der nächste findet im November 2038 statt; ich bin mir sicher, dass dann wieder etliche Systeme von diesem Verhalten „überrascht“ sein werden.

„Unix-Zeit“

Eine andere Zeitmessmethode ist die „Unix-Zeit“. Sie ist wohl heute die am weitesten verbreitete.

Der 01.01.1970 ist der Beginn der sogenannten „Epoch“, der Unix-Zeitrechnung. Ursprünglich Anfang der 70er-Jahre für Unix etabliert, ist die Anzahl Sekunden seit 1970 inzwischen eine der weitverbreitesten Zeitmessmethoden geworden. Von Mobilgerät über Internet-Dinge zu Servern können eigentlich alle damit umgehen; für viele ist es sogar die Hauptzeitquelle.

1970, als Unix entstand, waren 32 Bit schon viel für die Repräsentation einer Zahl. Grössere Zahlen konnten nur mühsam verarbeitet werden: Jede einzelne Berechnung wäre langsamer und komplizierter. Entsprechend hielt das Entwicklerteam eine 32 Bit lange Zahl für die aktuelle Uhrzeit als ausreichend; insbesondere, da das Projekt ursprünglich nur als „Proof of Concept“ angedacht war. Ebenfalls waren in den 1970ern die vorzeichenbehafteten Zahlen Standard. Eine vorzeichenbehaftete 32-Bit-Zahl kann bis 2³¹ zählen, also rund 2 Milliarden.

Das heisst, für viele Programme (und Rechenoperationen) ist rund 2 Milliarden Sekunden nach 1970 Ende Gelände, genauer gesagt am 19. Januar 2038 um 03:14:07 GMT.

„Schluss“ heisst, dass für Programme, die nicht Jahr-2038-fähig („Y2K38-fähig“) sind, nach dem 19. Januar 2038 03:14:07 nicht 03:14:08 am selben Tag folgt, sondern der 13. Dezember 1901(!) um 20:45:52 (alle Zeiten GMT/UTC). Viele Programme sind weder auf diesen Zeitsprung noch die resultierende negative Uhrzeit vorbereitet.

Epochalypse 2038

Wenn wir nichts tun, werden spätestens 2038 etliche Geräte ausfallen und die so genannte „Epochalypse“ eintreten. Beispielsweise können Geräte abstürzen (hier ein wegen 2038 crashender Fernseher) oder Programme einfach sonderbar zu funktionieren beginnen (hier eines, welches wegen einem Jahr-2038-Bug eine falsche, schlecht lesbare Schriftart wählt).

Und schon heute sind Computer in fast jedem Gerät versteckt: Vom winzigen Apple AirTag über Bluetooth-Lautsprecher, intelligenten Heizungsthermostaten und Bewässerungssystemen, Backofen, Heizung und Auto bis zu Industrieanlagen: Überall hat es kleine und grosse Computer drin, die zeitgesteuerte Funktionen erledigen müssen. Und falsch oder gar nicht funktionieren, wenn ihre Zeit aus dem Tritt gerät.

Wir müssen aber nicht bis 2038 warten, bis wir Probleme sehen (oder zumindest die Uhrzeit auf dem Rechner temporär vorstellen). Schon 2022 gab es deswegen erste Abstürze, weil ein knapp 16 Jahre in der Zukunft liegendes Datum berechnet werden sollte (und nicht berechnet werden konnte). Entsprechende Abstürze werden sich häufen.

Jetzt handeln

Auch sonst ist jetzt nicht zu früh, um zu handeln: Viele Geräte (Autos, Trams, Züge; Heizungen, Photovoltaikanlagen; Industrieanlagen, …) sollten eine Lebensdauer von über 10 Jahren haben. Typische Garantieleistungen für private Geräte dürften bis dann lange abgelaufen sein. Und ob es dann den Hersteller noch gibt oder der Hersteller noch bereit oder willens ist, das Problem zu lösen, ist ein anderes Problem.

Das heisst, das Problem müssen wir jetzt angehen.

Ich glaube nicht, dass jemand unbedingt ausprobieren will, wie sich sein Auto auf der Autobahn verhält, wenn die Uhrzeit während der Fahrt plötzlich negativ wird…

Lösungen

Y2K38 bzw. Unix-Zeit

Viele Betriebssysteme und Systemfunktionen zählen die Sekunden inzwischen mit 64-Bit-Zahlen, was praktisch bis ans Ende der Zeit reichen sollte. Ein korrekt rechnendes Betriebssystem ist zwar Voraussetzung, aber auch alle Applikationen, die darauf laufen, müssen mit den neuen Uhrzeiten umgehen können.

„Kurzfristig“ (also für weitere 68 Jahre) kann das Problem gelöst werden, wenn alle Variablen von vorzeichenbehaftet auf vorzeichenlos geändert werden; damit verschiebt sich das Problem ins Jahr 2106. Langfristig macht es aber Sinn—wie die Betriebssysteme auch—die Sekunden in 64 Bit zu zählen.

Wenn die Programme die standardisierten Systemfunktionen richtig verwenden, dann reicht es, sie einfach neu zu übersetzen. Ansonsten ist dafür etwas Handarbeit angesagt.

GPS-Epochen

Gelöst (im engeren Sinne) werden kann das GPS-Problem nicht, da sich Abermillionen GPS-fähige Geräte unterschiedlichster Hersteller auf das Datenformat verlassen.

Es gibt aber einen Workaround: Wenn das Gerät die Möglichkeit hat, Daten dauerhaft (z.B. auf Flash-Speicher) zu speichern, kann dort einfach regelmässig die aktuelle Uhrzeit abgelegt werden. Damit ist dann auch nach einem GPS-Epochenwechsel oder Stromausfall klar, welches Jahrzehnt gerade aktuell ist; eine ungewollte Zeitreise um 19 Jahre wird so ganz einfach vermieden.

Was passiert am 19. Januar 2038?

Was genau passiert, wissen wir nicht. Aber einige der Geräte (Wecker, Heizung, Backofen, Fernseher, Haussteuerung, Auto), die in unserer Geschichte oben ausgefallen sind, dürften auch wirklich ausfallen. Das eifrig gesammelte Pech unseres Helden dürfte aber ein Einzelfall sein.

Privathaushalte

Die Schweiz hat knapp 4 Millionen Haushalte und rund 6½ Millionen Motorfahrzeuge. Nehmen wir optimistisch an, dass nur 1 % der Geräte ein Y2K38-Problem haben werden, welches ihre Nutzbarkeit signifikant einschränkt. Dann merken am 19. Januar 2038 rund 40’000 Haushalte, dass sie nicht mehr kochen oder backen können; weitere 40’000 Haushalte werden mitten im Winter nicht mehr heizen oder duschen können und 65’000 Fahrzeuge müssen vom einen Tag auf den nächsten ersetzt oder repariert werden.

Neben der finanziellen Herausforderung für diese Haushalte wird das auch die Hersteller, Händler, Logistik und Techniker überfordern: Plötzlich zehntausende von Grossgeräten auszuliefern und zu installieren ist nicht ohne. Die Wut der Leute mit im Winter plötzlich nicht mehr heizbaren Wohnungen sollte man auch nicht unterschätzen.

Büros

Computer und Mobilgeräte dürften ziemlich zuverlässig funktionieren; aber einzelne Spezialprogramme darauf sind möglicherweise weniger gut getestet. Probleme dürfte eher das Gebäude haben: Heizung, Türschliessungen, automatische Rollläden etc. könnten sich sonderbar benehmen.

Für viele dürfte die Woche einfach nur etwas turbulenter als üblich werden.

Industrie und Verkehr

In diesen Bereichen ist Software oft eine Sonderanpassung und läuft auf exotischeren Plattformen; keine gute Voraussetzung. Auf der anderen Seite gibt es da aber auch regelmässig enge Beziehungen zwischen Lieferant und Kunde, verknüpft mit War

Gute Vorbereitung ist hier am ehesten möglich. Und der Schlüssel zum Erfolg.

Aufgabe für die Politik

Viele Geräte sollen 10 und mehr Jahre halten: Backofen, Heizung, Fahrzeuge, Industrieanlagen, … Das heisst, wenn man jetzt oder in den nächsten 4 Jahren ein Gerät kauft, sollte es schon Jahr-2038-kompatibel sein. Leider ist das immer noch nicht selbstverständlich. Um Konsumenten und unsere Infrastruktur zu schützen, müsste es entsprechende Regelungen geben.

Konsumentenschutz

Die Rechte der Konsumenten sollten gestärkt werden: Hersteller und Importeure sollten verpflichtet werden dafür zu sorgen, dass die Geräte während einer vernünftigen Lebensdauer (z.B. übliche Abschreibungsdauer) keine vorhersehbaren (Software-)Fehler entwickeln (bzw. diese unverzüglich gefixt werden). Und die (potenziellen) Nutzer sollten das auch überprüfen dürfen, z.B. durch Vorstellen der Uhr.

Was sicher erreicht werden sollte:

  1. Die Hersteller/Importeure bestätigen, dass allfällige Software in den Geräten Y2K38-tauglich ist.
  2. Die Nutzer dürfen die Uhrzeit auch schon vor 2038 probeweise vorstellen. Wenn das Gerät dabei Fehlfunktionen zeigt, ist das ein Garantiefall.
  3. Diese Verpflichtung gilt nicht nur während der Garantiezeit, sondern während der gesamten zu erwartenden Lebensdauer des Geräts.

Optional: Sicherheit und Nachhaltigkeit

Bei einer geeigneten Formulierung könnte das auch Sicherheitsupdate bei Geräten mit Netzwerkzugang abdecken: Also, wenn eine Sicherheitslücke bekannt wird, mit der fremde Personen über Funk oder Internet Kontrolle unautorisierte Aktionen mit dem Gerät durchführen können, muss das Problem vom Hersteller ebenfalls gelöst werden.

Viele Geräte funktionieren nur mit Cloud-Zugang oder verlieren einen grossen Teil der Funktionalität ohne ihn. Nicht nur wäre ein Cloud-Score nach Vorbild des Nutri-Score eine gute Idee, bei einem Score von D oder E (ohne Cloud stark reduzierte Funktionalität oder es geht gar nichts mehr), sollte man den Hersteller dazu verpflichten, den Dienst ebenfalls für die zu erwartende Lebensdauer betreiben zu müssen oder eine Alternative anzubieten (Nutzung ohne Cloud, Open-Source-Server, …), damit die Nutzer ihre gekauften Geräte auch weiter betrieben können, wenn der Hersteller den Cloud-Dienst wegen Unwillen oder Insolvenz einstellt.

Industrie und Infrastruktur

Die Betreiber sollten die Geräte im Rahmen ihrer üblichen Wartungszyklen auch auf Y2K38-Tauglichkeit überprüft werden. Ob (a) Eigenverantwortung der Betreiber und (b) vertragliche/gesetzliche Regelungen den Betreibern erlauben, sich gegenüber den Herstellern da durchzusetzen, kann ich nicht beurteilen.

Wie kann ich mich jetzt schon schützen?

Solange gesetzliche Regelungen fehlen, sind Konsument:innen auf sich selbst gestellt. Da gibt es folgende Möglichkeiten:

  1. Vor allem bei grösseren Anschaffungen: Sich vom Hersteller bescheinigen lassen, dass das Gerät kein Jahr-2038-Problem hat.
  2. Sich vom Verkaufspersonal zeigen lassen, dass das Gerät auch noch funktioniert, wenn dieses die Uhrzeit auf den 19. Januar 2038 04:14 MEZ stellt und zehn Sekunden wartet. (Nicht selbst im Showroom herumklicken, da in schlimmen Fällen das Gerät möglicherweise auch nach einem Reset nicht mehr zum Funktionieren zu bewegen ist.)
  3. Das Gerät ist schon gekauft, aber noch in der Garantie: Selbst das Datum vorstellen. Und dann hoffen, dass der Hersteller das auch als Garantiefall akzeptiert.
  4. Das Gerät ist schon gekauft, aber nicht mehr in der Garantie:
    1. Beim Hersteller anfragen und allenfalls eine Lösung verlangen.
    2. Die Uhrzeit um z.B. 20 Jahre zurückstellen. (Dies ist besonders dann eine gute Idee, wenn das Jahr nicht so wichtig ist, nur Monat, Tag und Uhrzeit. Dann muss man nicht möglicherweise schmerzhaft herausfinden, dass das Gerät nach 2038 nicht mehr funktioniert.)
    3. Als letzte Wahl: Erst 2037 die Uhrzeit vorstellen. (Wenn es funktioniert, ist alles toll. Wenn es nicht funktioniert und das Gerät dadurch permanent crasht (unwahrscheinlich, aber möglich), hat man wenigstens fast das Maximum an Lebensdauer herausgeholt; muss aber nicht im Stress kaufen.)
  5. Sich bei Händlern, Herstellern und Politikern dafür einsetzen, dass nur noch kompatible Geräte hergestellt und verkauft werden.

Links

  • Marcel Waldvogel: Zählen wie ein Computer, DNIP, 2024-01-17.
    Mehr schön bebilderte Hintergründe über die Zahlenformate und wie sie funktionieren. Ganz besonders für Personen ohne Informatikstudium.
  • Time formatting and storage bugs, Wikipedia.
    Eine lange Liste mit verschiedenen Problemen rund um den Umgang mit der Zeit. Unter anderem auch der NTP-Rollover, der 2036 stattfinden wird.
  • BEOZ Association.
    Schweizer Verein, der sich für die Vorsorge gegen das Jahr-2038-Problem stark macht. (Wer sich über den Namen wundert: Es ist eine Anspielung auf „2038“…)
  • Clément Bœsch: Investigating why Steam started picking a random font, 2022-11-18.
    Interessante Fehlersuche: Schriften mit „negativem Datum“ wurden als ungültig „weggeworfen“.
  • Marcel Waldvogel: Marcel pendelt ins neue Jahr, DNIP, 2024-01-05.
    Aktuelle Beispiele, wie «gekaufte» Geräte oder Medien durch bewusste Aktionen der Hersteller bzw. Verkäufer unbrauchbar werden.
  • Clive Thompson: The Code That Controls Your Money, Wealthsimple Magazine, 2020-11-11.
    Enthält Erklärungen über die Hektik in Banken vor dem Jahr-2000-Problem (Y2K). Zusammenfassung im obigen DNIP-Artikel. [neu 2024-01-30]
  • Chris Welch: Logitech is already giving up on its Alexa-powered Harmony remote control, The Verge, 2020-07-09.
    Wie ein Mehrhunderfränkiges Logitech-Produkt nach spätestens 1½ Jahren seine Funktion verliert.
  • Thibaud Courtoison: 2038.wtf.
    Andere Darstellung des Problems.
  • Andreas Erni: Linux Distributionen 2024: Welche sind 2038 ready?, BEOZ, 2024-01-14.
    Überblick über welche Linux-Versionen laut Distrowatch einen Jahr-2038-kompatiblen Kernel aufweisen. Dazu zählen die allermeisten aktiv gepflegten Linux-Varianten. Übrigens: Auch Android nutzt einen Linux-Kernel.
  • Kristian Köhntopp: Epochalypse, 2021-08-18.
    Überblick über NTP, diverse Filesysteme, GPS, negative Schaltsekunden und fehlgeleitet UUIDs.
  • Zimmie: VPN access mystery, 2024-02-02.
    Wie eine seltsame Abfolge von zeitbezogenen Fehlern auf drei verschiedenen Systemen einen VPN-Server zu Fall brachte. [neu 2024-02-04]

Anhang

Vorzeichenlos oder vorzeichenbehaftet?

Einer Zahl in ihrer Binärdarstellung sieht man nicht an, ob das gesetzte oberste Bit jetzt die Zahl sehr gross macht oder ob das ein Vorzeichen ist und die Zahl dadurch negativ wird. Wir denken uns ja wie gesagt nur, dass diese Zahlen negativ sind. Das heisst, bei jeder Verwendung der Zahl muss sie möglicherweise unterschiedlich behandelt werden, je nachdem, ob das oberste Bit das Vorzeichen ist oder nicht. Wenn verschiedene Teile des Systems das oberste Bit unterschiedlich interpretieren, kann schlussendlich nur noch (maximal) die Hälfte des Zählraums fehlerfrei genutzt werden; wir verlieren also ein—möglicherweise kostbares—Bit.

Programmiersprachen unterstützen die Softwareentwicklerinnen etwas dabei, das richtig zu machen. Aber es bleiben auch dann noch genügend Möglichkeiten, sich in den Fuss zu schiessen.

Mobilgeräte (Android und iOS)

[Neu 18:00–23:45] Bei vielen Android-Systemen (auch neuere auf neuen Geräten) scheint es (vorsorglich?) nicht möglich zu sein, das aktuelle Datum jenseits 2037 einzustellen. Es gibt aber auch Gegenbeispiele, wie im zweiten Screenshot sichtbar.

[Neu 2024-01-27] Andere Tests ergaben, dass das iPhone, Ende „2037“ gestartet, über den 19. Januar 2038 hinaus läuft. Ob allerdings alle Applikationen (auf dem iPhone und auf den zugehörigen Servern) mitspielen, wurde nicht verifiziert.

dnip.ch mit Deiner Spende unterstützen

Wir wollen, dass unsere Inhalte frei verfügbar sind, weil wir es wichtig finden, dass möglichst viele Menschen in unserem Land die politischen Dimensionen der Digitalisierung erkennen und verstehen können.

Damit das möglich ist, sind wir auf deine Unterstützung angewiesen. Jeder Beitrag und sei er noch so klein, hilft uns, unsere Aufgabe wahrzunehmen.

8 Antworten

  1. Hallo Markus, vielen Dank für deine Serie, nerdige Details auf einfache Weise zu erklären!

    Ich frage mich, wie viele Unix-basierte Computersysteme wirklich noch seit den 1990er Jahren ununterbrochen in Betrieb sind, ohne Update auf 64bit time_t Representation? Der fehlende Weltuntergang im Januar 2000 hat auch gezeigt, dass Benutzung von bürgerlicher Zeit in vielen eingebetteten Systemen eher oberflächlich ist und nicht kritisch für die Kernfunktionen des Systems. So funktionieren z.B. in den meisten Autos die Bremsen immer noch, auch wenn die Uhr auf dem Armaturenbrett das falsche Datum anzeigt.

    Computersysteme haben oft generell Mühe im korrekten Umgang mit  bürgerlicher Zeit. Z.B. wenn wegen der Sommerzeitumstellung an vielen Orten jährlich eine Stunde nicht oder zweimal existiert, kann allerhand schief gehen – zum Glück schlafen wir dann meistens und versuchen nicht auf diese Zeiten Tickets zu buchen oder Kalendereinträge zu verwalten…

      1. Debian arbeitet gerade daran, alles neu zu kompilieren.

        https://wiki.debian.org/ReleaseGoals/64bit-time

        i386 wird allerdings sowieso lange vorher rausgeschmissen. Es konzentrieren sich alle auf ARMv7.

        Zeitzonen sind egal, weil die Systemuhr immer nur UTC macht. Zeitzonen werden erst bei der Anzeige für den Nutzer relevant. Wenn da etwas falsch angezeigt wird, hat das wenig Einfluß auf die interne Konsistenz.

  2. Ich habe ein wenig Mühe mit der Aussage „dass die Geräte während einer vernünftigen Lebensdauer (z.B. übliche Abschreibungsdauer)“. Die „übliche Abschreibungsdauer“ ist üblicherweise weit unterhalb einer vernünftigen und nachhaltigen Lebensdauer, die meist bei 4-5 Jahren ist. Der Computer, auf dem ich dies schreibe, ist bereits 5 und der Computer unter dem Schreibtisch ist 12 – und sind immernoch „unter Support“ und für mich absolut nutzbar. Ich habe noch nie verstanden, warum eine Firma häufig Dinge aussortiert, weil sie abgeschrieben sind. Nachhaltig ist das nicht.

    Mein aktuelles Mobiltelefon hat eine Support-Dauer von 8 Jahren. Und das auch nur, weil es viel länger keinen Support für die Treiber der Handware gibt, die bei aktualisierten Android-Versionen unter Umständen ebenfalls angepasst werden müssen. Ich meine, die EU würde auch an Herstellerverpflichtungen arbeiten, längere Support-Zyklen zu garantieren zu müssen. Das ist der richtige Weg.

    1. Am meisten 32-Bit-Systeme werden nicht in Unterhaltungsgeräten stecken, sondern in Fahrzeugen usw. Die will man erst recht nicht früh wegschmeißen.

  3. Sehr Das Ganze erinnert mich etwas an 1999, damals wurden auch große Probleme mit dem 1.1.2000 vorhergesagt, da viele Programme die Jahreszahl nur zweistellig gespeichert haben. Wir mussten dann extra am 1.1. zum Testen der Systeme in das Geschäft kommen. Was ist passiert, es gab keine Probleme. Mir sind auch keine Berichte über große Ausfälle bekannt. Also ich habe keine große Angst

    1. Es geht nicht um Angst, es geht um Awareness. Als Folge dieser Awareness im gesamten IT-Bereich wurde in den Jahren vor 2000 ganz viel Code geupdatet (siehe «The Code that Controls Your Money» in den Links; auch ich habe Zweistellige-Jahre-Code angepasst).

      Der Unterschied ist, dass es damals für jeden Computer einen Admin gab. Mit den Embedded- und IoT-Geräten ist diese Übersicht weggefallen, weshalb ich denke, dass die Aufgabe nicht den Endkunden überlassen werden darf.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Weitere Beiträge