Newsua.biz


Людство вже 2038 року може зіткнутися з проблемою минулого: у чому вона полягає

17 марта
08:48 2025

У 1999 році люди почали панікувати, що комп’ютери не зможуть правильно опрацювати початок нового століття і станеться крах цивілізації. У 2038 ситуація може повторитися.

Багато хто може не пам’ятати, але 1999 року люди панікували щодо 2000-го року. Побоювання полягало в тому, що під час зміни 99 на 00 комп’ютери не зможуть зрозуміти, що настало нове століття; дата скинеться на 1900 рік, і системи, які залежать від комп’ютерів, вийдуть із ладу, а через це повинен був нібито статися крах цивілізації.

Зрештою, звісно, Новий рік пройшов досить спокійно — багато в чому завдяки масштабній і скоординованій роботі, спрямованій на запобігання катастрофі, пише IFL Science. Однак у цієї історії є продовження…

19 січня 2038 року — день, коли час має закінчитися. Принаймні, для комп’ютерів, що використовують 32-бітний Unix-час, а таких більшість.

«Знакове 32-бітове ціле число може зберігати тільки значення від -2147483648 до 2147483647», — пояснює компанія з кібербезпеки та управління системами Tanium. Це означає, що максимальна часова мітка, яку можуть обробити такі системи, — 2147483647, що відповідає 19 січня 2038 року, 03:14:07 за всесвітнім координованим часом (UTC).

Эти числа не случайны – хотя 2 147 483 648 может показаться произвольным для человеческого глаза, для компьютера, работающего в двоичной системе, это огромная веха: момент, когда счётчик достигает 100 000 000 000 000 000 000 000 000 000 000. Для 32-бітної системи це просто занадто багато цифр, тому вона робить єдине можливе — скидає лічильник.

«Тимчасова мітка переповнюється і стає від’ємною, що спричиняє помилки в даті та часі. Наприклад, часова мітка для 03:14:08 20 січня 2038 року в Unix-часі — 2147483648. Оскільки це неприпустиме значення, система скидає його до -2147483648, що відповідає 13 грудня 1901 року, 20:45:52 UTC. Це і є проблема 2038 року», — додають у компанії.

Після всієї паніки навколо цієї проблеми хочеться вірити, що цього разу людство все передбачило. Зрештою, про баг 2038 року відомо щонайменше з 2006 року, коли аналогічна помилка зачепила веб-сервер AOL. Насправді, рішення доволі просте й очевидне: перехід на 64-бітні системи.

З 64 бітами достатньо місця для зберігання тимчасових значень на мільярди років уперед, навіть якщо використовувати високоточний (наносекундний) час.

Однак багато баз даних, включно з реляційними і NoSQL, все ще використовують 32-бітний час. У зону ризику також потрапляють програми, написані мовами, заснованими на C, такими як C++ і PHP. Уразливими є пристрої на Windows, Linux, Android та iOS, а також медичні апарати, промислові системи управління, що використовуються на електростанціях і в транспорті, автомобілі з бортовими комп’ютерами, маршрутизатори тощо.

Загалом, наслідки можуть бути дуже руйнівними.

«Точно сказати, наскільки ми готові, складно. Нові операційні системи вже отримують 64-бітну підтримку часу, але головна проблема — наявні системи. Перехід від 32-бітних до 64-бітних значень часу для операційних систем не такий вже й простий», — йдеться в матеріалі.

Простіше кажучи, різкий перехід на 64-бітний час може викликати хаос. Хоч усі сучасні комп’ютерні системи будуть оновлені задовго до 2038 року, головна проблема збережеться в старих програмах, які ніхто не оновлює.

Навіть якщо знайти та оновити всі 32-бітні системи, вторинні ефекти від таких масштабних змін також потрібно передбачити та вивчити, щоб уникнути нових проблем.

Источник: unian.ua

Share

Статьи по теме




Последние новости

Трагедия в Киеве: количество погибших из-за удара по многоэтажке в Соломенском районе возросло до 23

Читать всю статью

Мы в соцсетях