Developer92
Anmeldungsdatum: 31. Dezember 2008
Beiträge: 4101
|
Hallo, wie sicher jeder weiß, gab es da mal den sog. Y2K-Bug, also den Jahr 2000 Bug, ausgelöst durch eine Datumsberechnung mit lediglich dem Jahr und Jahrzehnt (00 für Jahr 2000 usw.). Aber es wurde bereits kurz darauf der Jahr 2038 Bug entdeckt (Wers nicht weiß: Das Datum wird mit einem 32 bit Integer berechnet. Und der hat natürlich auch seine Grenzen. Siehe auch hier) Und jetz meine Frage: Trifft das für Linux auch zu? Denn es wäre ja eig. einfach, ein neues Datumsformat zu erzeugen. Man könnte ja auch einen 64 bit Integer verwenden oder so. Oder das Datum anders speichern. Ideen gibt es dazu sicherlich viele. Also, wie gesagt: Trifft das Problem auch auf Linux zu? mfg Floh
|
jug
Ehemalige
Anmeldungsdatum: 19. März 2007
Beiträge: 12335
Wohnort: Berlin
|
TDeveloper schrieb: Und jetz meine Frage: Trifft das für Linux auch zu? Denn es wäre ja eig. einfach, ein neues Datumsformat zu erzeugen. Man könnte ja auch einen 64 bit Integer verwenden oder so.
Ja, das Problem trifft auch auf Linux zu. Und dein Link enthält übrigens auch einen Abschnitt der lautet „Abhilfe“ – hast du den auch gelesen? Der Integer wird auf 64bit erhöht, und dann haben wir einen Timestamp der 292 Milliarden Jahre hält, ich wage mal zu behaupten: eher sterben wir aus, als dass wir dann noch ein Problem mit den Zeitstempeln bekommen. ~jug
|
Developer92
(Themenstarter)
Anmeldungsdatum: 31. Dezember 2008
Beiträge: 4101
|
jug schrieb: TDeveloper schrieb: Und jetz meine Frage: Trifft das für Linux auch zu? Denn es wäre ja eig. einfach, ein neues Datumsformat zu erzeugen. Man könnte ja auch einen 64 bit Integer verwenden oder so.
Ja, das Problem trifft auch auf Linux zu. Und dein Link enthält übrigens auch einen Abschnitt der lautet „Abhilfe“ – hast du den auch gelesen?
Jap, hab ich. Aber das war mir vorhin beim Schreiben meiner Frage ziemlich egal. Ich meine, wie kommt man auf diese dämliche Idee, jede Sekunde zählen zu lassen? Gibts da keine bessere Lösung dafür? Das Speichern des Datums und der Uhrzeit, so wie es jetzt ist, ist schon ziemlich genial, weil man das ganze Datum/Zeit aus einer einzigen Zahl berechnen kann. Aber man kann doch nicht für jede Sekunde das Datum und die Zeit neu berechnen lassen. Ist doch blöd, jedesmal den Prozessor anspringen zu lassen ☺ Als Speichermedium ist also 32bit Integer meiner Meinung nach schon geeignet, aber nicht, um damit zu arbeiten. Hoffe, du verstehst was ich meine. mfg Floh
|
ChemicalBrother
Ehemaliger
Anmeldungsdatum: 17. Mai 2007
Beiträge: 3136
|
TDeveloper schrieb: Ich meine, wie kommt man auf diese dämliche Idee, jede Sekunde zählen zu lassen? Gibts da keine bessere Lösung dafür? Das Speichern des Datums und der Uhrzeit, so wie es jetzt ist, ist schon ziemlich genial, weil man das ganze Datum/Zeit aus einer einzigen Zahl berechnen kann. Aber man kann doch nicht für jede Sekunde das Datum und die Zeit neu berechnen lassen. Ist doch blöd, jedesmal den Prozessor anspringen zu lassen ☺
A) Der Prozessor ist doch eh an, da kann er auch diese Minirechnung, die ihn fast nicht belastet, auch mal nebenbei berechnen. B) Wie willst du denn die Zeit sonst bestimmen? Und vorallem, wie soll die CPU die Zeit berechnen? Die CPU kann mit Mittwoch, 23. September, 23:00 Uhr und 16 Sekunden nichts anfangen, aber mit einer einzigen Zahl schon. Die wird halt für den normalen Nutzer umgerechnet, damit sie ihm auch was sagt.
|
Hello_World
Anmeldungsdatum: 13. Juni 2006
Beiträge: 3620
|
Wenn man wirklich 32 Bit für den Zeitstempel verwendet hätte, wäre das alles kein Problem, zumindest nicht zu unseren Lebzeiten. Es wird aber auf den meisten Systemen eine vorzeichenbehaftete 32-Bit-Ganzzahl verwendet, so dass man letzten Endes nur 31 Bit zur Verfügung hat.
Aber man kann doch nicht für jede Sekunde das Datum und die Zeit neu berechnen lassen. Ist doch blöd, jedesmal den Prozessor anspringen zu lassen
Ich kann nur hoffen, dass das ein Witz sein sollte...
|
Colttt
Anmeldungsdatum: 29. April 2009
Beiträge: 1517
|
ist doch wurst, damls 2000 habn auch alle gesagt das nichts mehr geht und was war?! richtig NICHTS..
|
Developer92
(Themenstarter)
Anmeldungsdatum: 31. Dezember 2008
Beiträge: 4101
|
ChemicalBrother schrieb: TDeveloper schrieb: Ich meine, wie kommt man auf diese dämliche Idee, jede Sekunde zählen zu lassen? Gibts da keine bessere Lösung dafür? Das Speichern des Datums und der Uhrzeit, so wie es jetzt ist, ist schon ziemlich genial, weil man das ganze Datum/Zeit aus einer einzigen Zahl berechnen kann. Aber man kann doch nicht für jede Sekunde das Datum und die Zeit neu berechnen lassen. Ist doch blöd, jedesmal den Prozessor anspringen zu lassen ☺
A) Der Prozessor ist doch eh an, da kann er auch diese Minirechnung, die ihn fast nicht belastet, auch mal nebenbei berechnen.
Ja, aber es kostet eben doch Rechenzeit. Überleg doch mal logisch: Du musst die Zahl von Sekunden nach Minuten über Stunden schließlich in Tage, Wochen, Monate und Jahre umrechnen. Ist doch blöd.
B) Wie willst du denn die Zeit sonst bestimmen? Und vorallem, wie soll die CPU die Zeit berechnen? Die CPU kann mit Mittwoch, 23. September, 23:00 Uhr und 16 Sekunden nichts anfangen, aber mit einer einzigen Zahl schon. Die wird halt für den normalen Nutzer umgerechnet, damit sie ihm auch was sagt.
Aber die CPU könnt alternativ auch für Sekunde, Minute, Stunde usw. einen eigene Zahl haben. Kostet zwar im Prozessor mehr Chache, aber Berechnung wäre einfacher. Hello World schrieb: Wenn man wirklich 32 Bit für den Zeitstempel verwendet hätte, wäre das alles kein Problem, zumindest nicht zu unseren Lebzeiten. Es wird aber auf den meisten Systemen eine vorzeichenbehaftete 32-Bit-Ganzzahl verwendet, so dass man letzten Endes nur 31 Bit zur Verfügung hat.
Das ist auch ne gute Idee. Wär eig. ne super einfache Lösung.
Aber man kann doch nicht für jede Sekunde das Datum und die Zeit neu berechnen lassen. Ist doch blöd, jedesmal den Prozessor anspringen zu lassen
Ich kann nur hoffen, dass das ein Witz sein sollte...
Ne, war mein voller Ernst 😀 Colttt schrieb: ist doch wurst, damls 2000 habn auch alle gesagt das nichts mehr geht und was war?! richtig NICHTS..
Hä? Natürlich war da was. Es wurden überstürzt hunderte von Menschen einfach zu y2k-Fachleuten benannt, die die Fehler in der Datumsberechnung in den Programmen und Betriebssystemen finden sollten. Das hatte massig Geld gekostet. Und jedes OS musste ja irgendwie gepatcht werden. Ausserdem hatte jeder 2. Angst, wertvolle Daten zu verlieren. Von wegen, da war nix...
|
Greebo
Anmeldungsdatum: 21. November 2006
Beiträge: 3443
Wohnort: 97070 Würzburg
|
Möglichkeit 1 Lazy Evaluation: Man nehme einen Sekundenticker und errechne sofern gewünscht die gewünschten Anteile Tage/Stunden/Minuten etc.. Die Aktualisierung besteht aus einem einfachen Inkrement. Möglichkeit 2 Direct Evaluation: Man wähle sofern gewünscht die Anteile direkt, die Aktualisierung besteht aus einem Inkrement des Niederwertigsten Feldes. Sollte das Feld eine gegebene Grenze überschreiten, findet ein Übertrag in ein höheres Feld statt, sollte das Feld eine gegebene Grenze überschreiten, findet ein Übertrag statt, sollte das... (Schaltjahrregelungen, Zeitkorrekturen u.ä. Verbrechen mal außenvor) Du kannst dir aussuchen was rechenintensiver ist 😉 Und nein, man kann sowas schlecht einfach in Hardware giessen. Ansonsten beschweren sie die Nationen mit ungregorianischer Zeitrechnung oder umgekehrt, Somalia hat IIRC auch seinen eigenen Kalender ich bin sicher es finden sich noch mehr. Man abgesehen davon, dass meistens die Zeitanzeige sekundär ist, und man eher wissen will wieviel Ticks zwischen 2 Aktionen liegen o.ä.
|
Colttt
Anmeldungsdatum: 29. April 2009
Beiträge: 1517
|
Hä? Natürlich war da was. Es wurden überstürzt hunderte von Menschen einfach zu y2k-Fachleuten benannt, die die Fehler in der >Datumsberechnung in den Programmen und Betriebssystemen finden sollten. Das hatte massig Geld gekostet. Und jedes OS musste ja irgendwie >gepatcht werden. Ausserdem hatte jeder 2. Angst, wertvolle Daten zu verlieren.
also bei mir und all meinen freunden (Win98/95/NT) war nirgends irgendwas und das sogar ohne patch-gedöns.. und selbst in den nachrichten habn sie gesagt das da nicht wirklich was war..
|
Dakuan
Anmeldungsdatum: 2. November 2004
Beiträge: 6502
Wohnort: Hamburg
|
Ich meine, wie kommt man auf diese dämliche Idee, jede Sekunde zählen zu lassen?
Ist doch ganz einfach, man brauchte schnell mal etwas und hat das dann so gemacht. Wer konnte denn damals ahnen, das so ein Betriebssystem nach mehr als 30 Jahren noch aktuell ist? Mich würde allerdings mal interessieren wie man das Datumsformat unter Multics festgelegt hatte (habe jetzt mal eben auf die Schnelle keine Lust den verlinkten Quellcode zu durchsuchen. Den würde ich vermutlich sowiso nicht verstehen). Denn nach einem Artikel, den ich seinerzeit mal in der Zeitschrift Byte (gibt es anscheinend nicht mehr) gelesen hatte, ist der name Unix nur ein Wortspiel der Revoluzzer, abgeleitet aus Multics (siehe auch: Geschichte von Unix).
|
Skittles
Anmeldungsdatum: 6. April 2006
Beiträge: 599
Wohnort: Bochum
|
Also mal aus Programmierersicht: Die Sekunden haben auch den Vorteil, dass man damit wunderbar rechnen kann, da sonst rechnen mit Daten eher bescheiden ist.
|