Чи постраждає RPi від помилки Y2K38?


12

Щойно з цікавості, що станеться з RPis Model A та B 19 січня 2038 року в 3:14:07 GMT? Чи впливає на них помилка Y2K38 ?


Скільки ви очікуєте, що тоді ще будете працювати?
Thorbjørn Ravn Andersen

1
@ ThorbjørnRavnAndersen, чесно кажучи, я вважаю, що у RPi є велике майбутнє, і багато з них ще працюватимуть (зрештою, моделі C або більше, але ..)
DaGhostman Dimitrov

5
У такому випадку встановіть годинник і подивіться.
Thorbjørn Ravn Andersen

1
Не стикався з цим ..: D
ДаГостман Димитров

1
Яким би не було майбутнє пі, шанси, що ні він, ні щось інше все-таки використовуватимуть 32-розрядний процесор через 25 років. Згідно з wikipedia, 64-розрядні системи використовують 64-розрядні time_t, перетворюючи це на проблему Y292G , яку ні ми, ні сонце не побачимо.
золотинки

Відповіді:


10

Так.

Ось результат сеансу SSH для мого Pi, що працює на OpenELEC.

Він висить після досягнення Y2K38. Не тільки сеанс SSH сам перестає реагувати, але і OpenELEC замерзає.

Я сподіваюсь (і сподіваюся!), Що до 2038 року виправлення буде випущено.

Це, або ваше питання, отримає багато відгуків за 24 роки.

введіть тут опис зображення


Я здивований, що вам вдалося відкрити сеанс SSH з машиною з такою дивною датою. +1 за те, що насправді спробував це.
einnocent

@einnocent Чому я б не зміг? Чи є якесь порівняння часу на специфікаціях рукостискання SSH, які б заважали цьому? Крім того, я змінив час після встановлення зв'язку. Окрім того, годинник Pi вже інакше помилявся (кілька місяців, років, не можу згадати): P
Той бразильський хлопець

Змінюючи час попереднього підключення, я розумію, що великі відмінності у часі можуть спричинити проблеми з деякими рукостисканнями безпеки, хоча я не знаю зокрема про SSH. Зі зміною після підключення я міг уявити, що SSH раптово спалахує, виявивши, що зв’язок відкритий протягом 34 років. Я думаю, є невеликий (але не нульовий) шанс, що SSH просто перервав зв’язок у той чарівний час. Але насправді я переконаний у вашій відповіді :)
einnocent

@einnocent Мені не спало на думку, що SSH може подумати, що він "відкритий на 24 роки" і висить. Я спробую ще раз, скажімо, 22 роки. Але я думаю, що це не є причиною, тому що вона зависає саме після досягнення Y2K38
того бразильського хлопця

4

Насправді Raspberry Pi (обладнання) буде добре. Він не містить RTC, тому він буде залежати від того, яку ОС ви використовуєте.

Але у IIRC всі 32-бітні версії Linux мають цю проблему. Колись тому (10 років або більше) Лінус сказав, що йому не цікаво фіксувати це на 32-бітних платформах, а всі 64-бітові Linux-платформи на той час мали 64-бітний time_t. З цього часу, можливо, він змінив розум. Найкраще посилання на це я можу знайти http://permalink.gmane.org/gmane.linux.kernel/1184914 - що не те саме, але виражає подібний намір.

Змінити це не буде особливо складно, але це змусить змінити ABI ядра. Яка проблема сама по собі.

Але RiscOs використовує 40-бітний час (центсекунд), але з іншою епохою. ( https://www.riscosopen.org/wiki/documentation/show/OS_Word%2014_3 ) - я роблю це невдало десь у 2318 р. - [calc було: 1970 + ((2 ^ 40) / 100) / (60 * 60 * 24 * 365,25)]

Android, звичайно, використовує ядро ​​Linux. І я впевнений, що пропустив інші варіанти.


1

Як зараз реалізовано, Raspberry Pi зазнає долі переліченої помилки, якщо не буде внесено змін у програмне забезпечення.

Більшість сучасних машин роблять перехід до 64-бітових процесорів, але я би не здивувався, як і раніше бачу 32-бітні процесори. Існують програмні рішення, які могли б і повинні мати вирішити проблему.

Мені здається, найімовірнішим виправленням буде оновлення часу Epoch, щоб почати щось подібне до 1 січня 2000 року. Хоча це не затримає помилку, воно, безумовно, скине її в осяжному майбутньому.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.