Z ciekawości, co stanie się z RPis Model A i B 19 stycznia 2038 o 03:14:07 GMT? Czy dotyczy ich błąd Y2K38 ?
time_t
, zamieniając to w problem Y292G , którego ani my, ani słońce nie przeżyjemy.
Z ciekawości, co stanie się z RPis Model A i B 19 stycznia 2038 o 03:14:07 GMT? Czy dotyczy ich błąd Y2K38 ?
time_t
, zamieniając to w problem Y292G , którego ani my, ani słońce nie przeżyjemy.
Odpowiedzi:
Oto wynik sesji SSH dla mojego Pi z OpenELEC.
Zawiesza się po osiągnięciu Y2K38. Nie tylko sama sesja SSH przestaje odpowiadać, ale także zawiesza się OpenELEC.
Oczekuję (i mam nadzieję!), Że do 2038 r. Zostanie wydana poprawka.
To lub twoje pytanie zyska wiele pozytywnych opinii za 24 lata.
W rzeczywistości Raspberry Pi (sprzęt) będzie w porządku. Nie zawiera RTC, więc będzie zależeć od używanego systemu operacyjnego.
Ale IIRC we wszystkich 32-bitowych wersjach systemu Linux ma ten problem. Jakiś czas temu (około 10 lat) Linus powiedział, że nie jest interesujący w naprawianiu tego na platformach 32-bitowych, a wszystkie 64-bitowe platformy Linux w tym czasie miały 64-bitowy time_t. Oczywiście od tamtej pory mógł się zmienić. Najlepszy link do tego, jaki mogę znaleźć, to http://permalink.gmane.org/gmane.linux.kernel/1184914 - który nie jest taki sam, ale wyraża podobne zamiary.
Zmiana nie będzie szczególnie trudna, ale wymusiłaby zmianę w ABI jądra. Co samo w sobie jest problemem.
Ale RiscOs używa 40-bitowego czasu (centisekundy), ale z inną Epoką. ( https://www.riscosopen.org/wiki/documentation/show/OS_Word%2014_3 ) - Robię to kiedyś gdzieś w 2318 - [obliczono: 1970 + ((2 ^ 40) / 100) / (60 * 60 * 24 * 365.25)]
Android oczywiście używa jądra Linux. I jestem pewien, że przegapiłem inne opcje.
W tej chwili Raspberry Pi spotka los wymienionego błędu, jeśli nie zostaną wprowadzone żadne zmiany w oprogramowaniu.
Większość współczesnych maszyn przeskakuje na procesory 64-bitowe, ale nie byłbym wcale zaskoczony, że wciąż widzę 32-bitowe procesory głównego nurtu. Istnieją rozwiązania programowe, które mogłyby i będą musiały rozwiązać problem.
Wydaje mi się, że najbardziej prawdopodobną poprawką byłaby aktualizacja czasu Epoki, aby rozpocząć od czegoś takiego jak 1 stycznia 2000 r. Chociaż nie opóźni to błędu, z pewnością zresetuje go w najbliższej przyszłości.