• Wie Ur-Chips und genähter Speicher die Menschen zum Mond brachten 19. Juli 2019
    Die Mondlandung wurde auch durch Pionierarbeit bei Computern möglich gemacht – die bis heute nachwirkt. So wurden erstmals Vorgänger heutiger Chips eingesetzt und die Regeln guten Software-Designs geprägt. Der genähte Speicher setzte sich hingegen nicht durch.
Know-how für alle
APR 05 2019

Jahr 2038 Problem

UNIX

Das Jahr-2000-Problem

Fangen wir mit dem Jahr-2000-Problem an, insbesondere auch, da das glücklicherweise mittlerweile erledigt ist. Der Kern des Jahr-2000-Problems – ich möchte weniger von einem Bug reden, da das Problem zusammen mit den Bedingungen für das Auftreten lange im Voraus bekannt war – war die Darstellung von Jahreszahlen in den früheren Jahren der Softwareentwicklung. Prinzipiell lassen sich Zahlen im Computer auf 2 Arten darstellen: in ihrer binären Form (die 1310 entspricht etwa der 11012 – wir erinnern uns), oder in der Darstellung der einzelnen Positionen der Zahl durch ihre Ziffern (im Falle der 13 also “1” und “3”).

Der Vorteil der Binärdarstellung ist, dass Zahlen unabhängig von ihrer Größe zur Speicherung eine feste, geringe Menge an Speicherplatz – in der Regel 1, 4 oder 8 Byte (8, 32 bzw. 64 Bit) – benötigen. Der Nachteil dagegen ist, dass in Binärform gespeicherte Zahlen nicht einfach so auf dem Bildschirm dargestellt werden können. Zur Darstellung von Zeichen müssen diese im ASCII-Format (wir erinnern uns) – oder einem erweiterten Format – abgelegt werden; hierbei wird jedes Zeichen (also jeder Buchstabe, jede Zahl, jedes Satzzeichen usw.) durch eine 1-Byte-Zahl (oder bei erweiterten Formaten entsprechend größere Zahlen) codiert. Der Buchstabe ‘A’ entspricht hierbei etwa der Zahl 65, die Ziffer ‘1’ der 49 und so weiter. Zur Darstellung der 13 werden also 2 Byte benötigt – eines für jede Ziffer.