- 30 bit Marke der time() - Funktion - Taktiker, 14.01.2002, 14:40
- Re: 30 bit Marke der time() - Funktion - Henning, 14.01.2002, 15:08
- der 64bit Integer löst das Problem nicht - Taktiker, 14.01.2002, 15:55
- Re: der 64bit Integer löst das Problem nicht - Henning, 14.01.2002, 16:18
- (vorläufig) abschließend: - Taktiker, 14.01.2002, 16:42
- Re: (vorläufig) abschließend: - Euklid, 14.01.2002, 19:40
- (vorläufig) abschließend: - Taktiker, 14.01.2002, 16:42
- Re: der 64bit Integer löst das Problem nicht - Henning, 14.01.2002, 16:18
- der 64bit Integer löst das Problem nicht - Taktiker, 14.01.2002, 15:55
- Re: Dabei wäre es doch so einfach Bits zu sparen. - FlyingCondor, 14.01.2002, 17:36
- Klingt ziemlich abenteuerlich... - Spirit of JuergenG, 14.01.2002, 18:19
- Re: 30 bit Marke der time() - Funktion - Henning, 14.01.2002, 15:08
Re: der 64bit Integer löst das Problem nicht
>Hi Henning,
>der 64bit Integer löst nur das Problem des 32bit-Überlaufs im Jahre 2038, aber nicht das Problem der mißbrauchten Bits!
>Wer die Bits 1 und 2 des 32bit-Integers ausliest bzw. manipuliert, shiftet den Integer um 30 bits nach rechts. Ein 64bit Integer schafft hier keine Abhilfe, so dass reine Neukompilation oder ein moderneres Unix keinen Effekt haben.
Aeh - nicht unbedingt - man kann ja auch - links ins Carry Flag schieben (je
nachdem wie nun das System geartet ist).
>Zur Dimension des Problems:
>Es reicht ja, wenns an den entscheidenden Stellen kracht, und wenn es auch nur in 1 Promille aller Softwaresysteme so gemacht wurde. Die Folgen sind jedenfalls ausreichend dramatisch angesichts der Größe des Zeitsprungs.
>Zumal könnte der Fehler schwieriger zu entdecken sein, da nicht genau um Zehnerpotenzen an Jahren zurückgesprungen wird, sondern um einen"krummen" Wert. Zudem tritt der Fehler nicht generell auf (wie beim Millennium-Bug), sondern nur wenn das Bit 31 mit 0 überschrieben wird, was je nach Verwendungsart dieses Bits ein seltener, aber möglicher Fall sein könnte.
>Außerdem bestehen in dieser Hinsicht kaum Erfahrungen, zumal der letzte 29bit Überlauf 1987 war und Software, welche dieses Bit mißbrauchen könnte, weit vor 1987 geschrieben sein müßte. Dieser 32bit-Time-Integer zählt aber erst seit Jan.1970. Weiterhin könnte relevant sein, dass 30 bits als runde Zahl einfach attraktiv zur Datumskodierung ist, jedenfalls eher als 29.
>Ich würde das nicht aus den Augen verlieren, zumal im Gegensatz zum Millennium-Bug hier keinerlei Aufmerksamkeit (=Wartungsaufwand) besteht.
>Und wir wissen ja: womit man am wenigsten rechnete, das...
Das ist sicherlich richtig - aber das sollte derart selten auftreten - ne also
da ist ne uninitalisierte Variable in Atomkraftwerkssoftware richtig
wahrscheinlich gegen...
Wegen 2-Bit hat man schon zig Jahre mehr keine Klimzuege gemacht - beim Jahr
2000 Problem ging es meist um ganze Bytes (weil viele ASCII benutzen) und
nicht um 2 Popelige BITs. Man muss sich auch ueberlegen wieviel Speicher ein
Programm mehr brauch um diese 2 Bits zu nutzen. Hoechstens wenn man Daten
ueber ein sehr enges Medium verschickt (Sateliten Kommunikation vieleicht).
Aber selbst da glaub ich nicht dran.
CU
Henning
<center>
<HR>
</center>

gesamter Thread: