Людство може зіткнутися з проблемою минулого / колаж УНІАН, фото Reuters, ua.depositphotos.com

Багато хто може не пам'ятати, але 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-бітні системи, вторинні ефекти від таких масштабних змін також потрібно передбачити та вивчити, щоб уникнути нових проблем.

Інші цікаві новини про людство

Раніше УНІАН повідомляв, що Землі загрожує глобальне вимирання вже за 2700 років. Екологічні негаразди сучасності цілком здатні призвести до непоправних змін у глобальній екосистемі та навіть масового вимирання в масштабах всієї планети.

Крім того, з кожним роком інтелект людства знижується. Хоч біологія людського мозку за такий короткий проміжок часу не змінилася, результати різноманітних тестів свідчать, що середньостатистична людина досягла піку здібностей до міркування та розв'язування нових завдань на початку 2010-х років.

Вас також можуть зацікавити новини: