News 1.1.1970: iOS-Fehler soll 64-Bit-Geräte unbrauchbar machen

VikingGe schrieb:
Warum nicht? Siehe Jahr 2038-Problem.

Warum aber gleich das ganze System nicht mehr bootet, wird wohl nur Apple selbst wissen, wahrscheinlich war es aber einfach unsauberer Code, der denen jetzt um die Ohren geflogen ist. So Späßchen wie Signed-Werte als Unsigned interpretieren oder Annahmen machen, die eben nicht immer richtig sind (wie eben 0 ≤ Jahr < 10000).

Danke dafür, habe ich glatt vergessen. Wundert mich schon, dass ein Wertebereich für den Sekundenzähler benutzt wird, der auch negative Werte annehmen kann. Das hat wahrscheinlich damit zu tun, dass ein Datum vor dem 1.1.1970 vielleicht für bestimmte Software auch möglich sein muss und ein Unsigned-Wert würde für diesen Fall dann unangebracht sein.
 
MaLow17 schrieb:
Außerdem ist deine Rechnung falsch. 01.01.1970 GTM 0 nicht minus 6, sondern minus 60*60*6 Sekunden.

Jetzt willst Du es aber ganz genau nehmen :D

Ich gehe davon aus, dass 80% der Leute, die hier lesen, keinen String vom Integer unterscheiden können. Geschweige denn signed von unsigned etc pp. Daher habe ich es möglichst einfach gehalten und nur noch geschrieben "das OS kann damit nicht umgehen".

Unabhängig davon ob letztlich ein Minuswert erzeugt wird, Sicherheitsfunktionen einen Start mit Systemzeit 15 Trillionen Sekunden verhindern oder einfach nur das Date nicht geparsed werden kann - bleibt's dabei: Das OS / der Kernel kann oder möchte damit wohl nicht arbeiten ;)

@all

Die sich Fragen wieso das Booten verhindert wird: Wir reden hier über Closed-OS und Handy-Prozessoren. Ich gehe davon aus, dass Sicherheitsfunktionen Negativ-Werte beim Datum oder bzw damit das Jahr 584 Billionen verhindern. Ich glaube für etwas versierte Programmierer wäre es wahrscheinlich nicht schwer, daraus eine Panick mittels Integer-Overflow zu erzeugen....



@Wa1lock

Ich glaube kaum, dass wir eine offizielle Bug-Beschreibung von Apple erhalten werden ;)

Hier stehts aber mittlerweile auch noch mal mit einer guten Erklärung.

l. Ein weiterer Hinweis liefert laut Tom Scott die Tatsache, dass der Fehler nur auf neueren 64-Bit-Systemen passiert. Seit dem iPhone 5S kann iOS die Werte in einer 64-stelligen Abfolge von Nullen und Einsen behandeln. Die maximale Zahl, die solch ein System verstehen kann, ist neunzehnstellig, sie beträgt genauer genommen etwa fünfzehn Trillionen. Ist diese Zahl erreicht, zählt das System nicht weiter, sondern setzt auf Null zurück. Warum das so ist, wird in der " Sendung mit der Maus " von 1989 ganz gut erklärt. Umgekehrt kann ein solches Format keine Negativzahlen darstellen und das System fängt wieder mit der größtmöglichen Zahl an. Genau hier hat sich nach der Meinung von Tom Scott bei iOS 7, 8 und 9 ein Fehler eingeschlichen: Das System prüft wohl an einer oder mehreren Stellen beim Hochfahren die Ereignisse, die in der Vergangenheit passiert waren. Setzt man das Datum auf den 1.01.1970, also auf die Unix-Null, prüft das System ältere Nachrichten und Anrufe und stellt fest, sie haben ein früheres Datum, also eine Zahl mit Negativwert. Dieses gibt das System dann als maximal mögliche Zahl von rund 15 Trillionen an; bei der Behandlung von einer solchen Zahl hängt sich das System wohl auf und kann so nicht mehr starten.

http://www.macwelt.de/news/iPhone-Fehler-Reboot-Datum-Aenderung-9930419.html

Gegen den letzten Satz spricht aber meiner Meinung nach, das ich nichts davon gelesen habe, dass die Handys besondern heiß werden würden. Daher vermute ich, das der Integer schon vor eigentlicher Verarbeitung vom Err Handler oder Sicherheitsfunktion abgefangen wird.
 
Zuletzt bearbeitet:
MaLow17 schrieb:
Das höchstmögliche Datum wäre somit: 18.446.744.073.709.551.615 Sekunden / 60 (Min) / 60 (Std) / 24 (Tage) / 365 (Jahre) = 584942417355,07203243911719939117 ----> der 31.12 im Jahr 584.942.417.355 + 1970.
Vorhin war ich zu faul, das aufzudröseln, aber das meinte ich mit nicht negativ und einem Rutsch in die Zukunft. Danke fürs Aufdröseln. :)
VikingGe schrieb:
Vorhin habe ich mich auch gewundert, warum die Dezimalzahl plötzlich negativ wird. Jetzt habe ich mal gelesen, das MSB, also die linke Stelle dient als Vorzeichen, 0 ist positiv, beim Sprung auf 1 wird das Vorzeichen negativ. Ich dachte erst, dann wird es eben eine Stelle mehr. Aber wegen 32 Bit ist ja Ende.
 
Siehe oben, kann auch sein das Ereignisse wie Anrufe oder Nachrichten aus der Vergangenheit ganz normal positive Werte mit 15 Trillionen Sekunden provozieren [oder einen negativen Wert, nicht genaues weiß man nicht]. Und damit können oder möchten iOS und die A-Chips wohl nicht arbeiten ;)
 
Zuletzt bearbeitet:
MaLow17 schrieb:
im Jahr 584.942.417.355 + 1970 ...

Ich persönlich denke, dass das Datumsformat hier Probleme machen könnte, falls das Datum auf den Höchstwert springen sollte wegen TT.MM.JJJJ / TTTT, T. MMMM JJJJ bzw. MM.DD.YYYY und nur 4 Stellen für das Jahr erlaubt sind.

Interne Funktionen, die von der Zeit abhängen, basieren meist auf der Sekunde und nicht in einer formatierten Version der Zeit. Die wird meistens nur zur Darstellung selbst oder natürlich bei Kalender abhängigen Funktionen (die natürlich auch überall mit drinstecken) verwendet. Wobei der Überlauf im JJJJ denke ich lediglich die Darstellung vermurksen würde, wenn überhaupt.

Ich hätte eher die Vermutung, dass sich dann iOS einfach nicht mehr selbst unterstützt, da sämtliche Sicherheitszertifikate vor 500 Milliarden Jahren ausgelaufen wären. Das iOS intern oder zumindest Teile davon mit Zertifikaten gesichert sind, halte ich zumindest für sehr wahrscheinlich.

Oder Verschwörungstheorie: Apple hat einfach eine Funktion drin, die, im Jahre X nach Erscheinen, das iPhone selbst brickt und so Neukäufe ankurbeln soll. Aber das wäre ja eine völlig ungerechte Unterstellung gegen Apple :king:

Edit: Achja, also ich kenne Leute die schon absichtlich dieses Datum bei anderen Geräten angegeben haben. Einfach nur weil es nerdig ist :)
 
Zuletzt bearbeitet:
Wenn wir schonmal bei dem Thema sind... wenn ich meinen PC auch nur für wenige Sekunden vom Strom nehme, reist er ebenfalls jedes Mal ins Jahr 1970, da leider die Bios-Batterie alle paar Monate ihren Geist aufgibt und getauscht werden müsste (was auf Dauer ziemlich nervig ist, da sie genau unter der Grafikkarte liegt).
Der halbe Apfel ist somit nicht der einzige Hersteller mit solchen UNIX-Macken.
 
Dein Rechner startet aber mit dem falschen Datum und du kannst es korrigieren. Entsprechende iOS-Geräte starten nicht mehr. In der News heißt es "unbrauchbar", was bei deinem PC nicht der Fall ist.
 
Unbrauchbar ist eh gelogen. Man muss mir gmt-X warten, jeh nach zeitzone
 
Zurück
Oben