Попередження про майбутню Epochalypse, відому як проблема 2038 року, надійшло з неочікуваного боку: реставратори Національного музею обчислювальної техніки (Велика Британія) під час роботи зі старими системами виявили нові збої, які виникають ще у 2037-му. Про це йдеться в матеріалі The Register.
Експеримент із PDP-11
Волонтер музею Робін Даунс продемонстрував проблему на комп’ютері PDP-11/73 від Digital Equipment Corporation.
• Систему було пропатчено для Y2K у 1990-х, але вона використовує іншу структуру збереження часу.
• Компілятор C (1982 року) вже зараз видає правильний час, але неправильну дату.
• Під час тестів після переведення годинника на 2036 рік усе працювало, однак на початку 2037-го будь-яка програма, що викликала функцію time
, падала.
«Виявилося, що у функції часу є ще одна невідома помилка, яка викликає збій програм ще до 2038 року», — пояснив Даунс.
Суть проблеми 2038 року
Unix-системи зберігають час як кількість секунд від 1 січня 1970 року у 32-бітному цілому числі зі знаком. О 03:14:07 UTC 19 січня 2038 року цей лічильник переповниться. Теоретично це має відкотити дату до 1901 року.
Однак у випадку PDP-11 функція localtime
повернула 1970-й замість 1901-го, що вказує на додаткові помилки в коді.
Наслідки
• Це означає, що поведінка старих систем може бути непередбачуваною і відрізнятися від очікуваної.
• Проблеми можуть виникати у компіляторах, бібліотеках і навіть у самих ОС.
• Масштаб потенційних збоїв значно ширший, ніж у Y2K.
Оптимізм і занепокоєння
Колишній інженер Microsoft Дейв Пламмер вважає, що часу для виправлень достатньо:
«Будь-які системи, що використовуватимуть 32-бітний час у 2038-му, будуть під загрозою, але 13 років має вистачити, щоб їх знайти й виправити».
Втім, Даунс наголошує, що навіть сучасні розробники не завжди усвідомлюють масштаб проблеми.
«Ми створюємо системи, які мають працювати понад 12 років, і вони теж можуть постраждати», — додав він.
Єдиного рішення, як у випадку з Y2K, не існує. Кожен пристрій і версію програмного забезпечення потрібно тестувати окремо. І хоча до 2038 року ще більше 10 років, Epochalypse може початися раніше.
Читайте також на ProIT, що інструменти GenAI виявляють інстинкти самозбереження: шантажують, копіюють себе й уникають вимкнення.
Підписуйтеся на ProIT у Telegram, щоб не пропустити жодної публікації!