Що буде в 2038 році?

Проблема 2038 року (також відома як Y2038, Y2K38, Y2K38 superbug або Епохаліпсис) проблема обчислення часу, через яку деякі комп’ютерні системи не можуть відобразити час після 03:14:07 UTC 19 січня 2038 року. Анімована візуалізація помилки в дії. Помилка переповнення виникне о 03:14:08 UTC 19 січня 2038 року.

Помилка 2038 року не є гіпотетичним сценарієм, а реальна загроза які можуть вплинути на широкий спектр систем, таких як вбудовані системи/пристрої, пристрої Інтернету речей (IoT), операційні системи, бази даних, сервери, мережі, програми та веб-сервіси.

Ключові висновки. Проблема 2038 року виникає тому, що Програмування на C використовує 4-байтове ціле число для зберігання даних про час, які будуть переповнені 19 січня 2038 року. Це переповнення відбувається через максимальне обмеження 4-байтового цілого числа зі знаком у 2 147 483 647 секунд після 1 січня 1970 року, дати епохи для систем Unix.

До 2038 р. 32-розрядних комп'ютерів і 32-розрядних операційних систем навряд чи повинно бути в роботі. Якщо вони є, їх доведеться замінити, якщо їхні додатки стосуються дат. Проблема може полягати в 32-розрядних мікроконтролерах, вбудованих у системи, які пролітають під радаром.

Розуміння проблеми 2038 року. Багато систем використовують 32-розрядне ціле число для зберігання часу Unix – кількості секунд з 1 січня 1970 року, відомого як епоха Unix. 10 січня 2038 року о 03:14:07 UTC ця кількість перевищить максимальне значення, яке може містити 32-розрядне ціле число, що спричинить переповнення.

Проблема 2038. Проблема з міткою часу Unix виникає через її обмежену ємність. Для представлення часу використовується 32-розрядне ціле число зі знаком, яке може вмістити приблизно 2,1 мільярда секунд. У результаті позначка часу Unix досягне максимального значення на 19 січня 2038 року о 03:14:07 UTC.