Wird RPi unter dem Y2K38-Bug leiden?

12

Was wird aus Neugier am 19. Januar 2038 in 3:14:07 GMT mit den RPI-Modellen A und B geschehen? Sind sie vom Y2K38-Fehler betroffen ?

DaGhostman Dimitrov
quelle
Wie viele erwarten Sie dann noch?
Thorbjørn Ravn Andersen
1
@ ThorbjørnRavnAndersen ehrlich gesagt glaube ich, dass das RPi große Zukunft hat und es noch viele davon geben wird (eventuell Modelle C oder höher, aber ..)
DaGhostman Dimitrov
5
In diesem Fall stellen Sie die Uhr und sehen.
Thorbjørn Ravn Andersen
1
Habe nicht gedacht ..: D
DaGhostman Dimitrov
1
Wie auch immer die Zukunft des pi aussehen mag, in 25 Jahren wird wahrscheinlich weder es noch irgendetwas anderes einen 32-Bit-Prozessor verwenden. Laut Wikipedia verwenden 64-Bit-Systeme eine 64-Bit- Versiontime_t und machen dies zu einem Y292G- Problem, das weder von uns noch von der Sonne gesehen werden kann.
Goldlöckchen

Antworten:

10

Ja.

Hier ist die Ausgabe einer SSH-Sitzung auf meinem Pi, auf dem OpenELEC ausgeführt wird.

Es hängt nach Erreichen von Y2K38. Nicht nur die SSH-Sitzung selbst reagiert nicht mehr, sondern auch OpenELEC friert ein.

Ich erwarte (und hoffe!), Dass bis 2038 ein Fix veröffentlicht wird.

Das, oder Ihre Frage wird in 24 Jahren viele positive Stimmen bekommen .

Bildbeschreibung hier eingeben

Dieser Brasilianer
quelle
Ich bin überrascht, dass Sie eine SSH-Sitzung mit einem Computer mit solch einem verrückten Datum eröffnen konnten. +1 dafür, dass du es tatsächlich ausprobiert hast.
Unschuldig
@einnocent Warum könnte ich nicht? Gibt es einen Zeitvergleich der SSH-Handshake-Spezifikationen, der dies verhindern würde? Außerdem habe ich die Zeit nach dem Verbindungsaufbau geändert . Außerdem war die Pi-Uhr ohnehin schon falsch (um ein paar Monate, Jahre, kann mich nicht erinnern): P
Der Brasilianer
Ich verstehe, dass große Unterschiede in der Uhrzeit Probleme mit einigen Sicherheits-Handshakes verursachen können, obwohl ich nicht besonders über SSH Bescheid weiß. Bei einer Änderung nach dem Verbindungsaufbau konnte ich mir vorstellen, dass SSH plötzlich ausflippte, als ich feststellte, dass die Verbindung 34 Jahre lang offen war. Ich nehme an, es gibt eine kleine Chance (aber nicht Null), dass SSH die Verbindung zu diesem magischen Zeitpunkt einfach beendet. Aber ich bin wirklich überzeugt von Ihrer Antwort :)
einnocent
@einnocent Es ist mir nicht eingefallen, dass SSH denken könnte, es sei "seit 24 Jahren offen" und hängen. Ich werde es mit etwa 22 Jahren noch einmal versuchen. Aber ich denke, es ist nicht die Ursache, denn es hängt genau bei Erreichen von Y2K38
That Brazilian Guy
4

Eigentlich wird der Raspberry Pi (Hardware) in Ordnung sein. Es enthält keine RTC, daher hängt es davon ab, welches Betriebssystem Sie verwenden.

Aber IIRC alle 32-Bit-Version von Linux haben dieses Problem. Vor einiger Zeit (ungefähr 10 Jahre) sagte Linus, dass er nicht daran interessiert sei, dies auf 32-Bit-Plattformen zu beheben, und dass alle 64-Bit-Linux-Plattformen zu dieser Zeit 64-Bit-time_t hatten. Vielleicht hat er sich seitdem geändert. Der beste Link, den ich finden kann, ist http://permalink.gmane.org/gmane.linux.kernel/1184914 - was nicht dasselbe ist, aber eine ähnliche Absicht ausdrückt.

Es ist nicht besonders schwierig, das zu ändern, aber es würde eine Änderung der Kernel-ABIs erzwingen. Welches ist ein Problem an sich.

RiscOs verwendet jedoch eine 40-Bit-Zeit (Centisekunde), jedoch mit einer anderen Epoche. ( https://www.riscosopen.org/wiki/documentation/show/OS_Word%2014_3 ) - Irgendwann im Jahr 2318 habe ich dieses Versagen gemacht - [berechnet: 1970 + ((2 ^ 40) / 100) / (60 * 60 * 24 * 365.25)]

Android verwendet natürlich den Linux-Kernel. Und ich bin mir sicher, dass ich andere Optionen verpasst habe.

Rgammans
quelle
1

Wie derzeit implementiert, erleidet der Raspberry Pi das Schicksal des aufgelisteten Fehlers, wenn keine Änderungen an der Software vorgenommen werden.

Die meisten modernen Maschinen machen den Sprung zu 64-Bit-Prozessoren, aber ich wäre überhaupt nicht überrascht, wenn ich zu diesem Zeitpunkt noch 32-Bit-Mainstream-Prozessoren sehen würde. Es gibt Softwarelösungen, die das Problem lösen könnten und müssen.

Es scheint mir, dass die wahrscheinlichste Lösung darin besteht, die Epochenzeit so zu aktualisieren, dass sie am 1. Januar 2000 beginnt. Dies würde den Fehler zwar nicht verzögern, ihn aber auf absehbare Zeit zurücksetzen .

Jacobm001
quelle