Пробле́ма 2038 ро́ку у комп'ютерних системах — очікувані збої в роботі програмного забезпечення 19 січня 2038 року. Ця проблема стосується програм і систем, в яких використовується представлення часу за стандартом POSIX (час Unix). Цей стандарт використовує кількість секунд, які пройшли від початку «епохи», тобто з півночі 1 січня 1970 року. Таке представлення часу — стандарт для Unix-подібних операційних систем (через розповсюджене використання мови Сі).
На більшості систем з розрядністю процесора не вище 32-біт для зберігання секунд використовується тип даних (time_t)
, визначений як signed int
, тобто у форматі 32-бітного цілого числа зі знаком. Найпізніша дата, яка може бути представлена таким форматом в стандарті POSIX — це 03:14:07, вівторок, 19 січня 2038 року за всесвітнім часом (UTC).
Наступний момент часу час змусить таке поле даних прийняти від'ємне значення, що подібно до зациклювання часу (оскільки від'ємне число може бути сприйнято програмами як час у 1970 або 1901 році, залежно від реалізації). Унаслідок можуть бути здійснені помилкові обчислення або отримані некоректні результати.
Для багатьох комбінацій процесорів і операційних систем не існує простого розв'язання проблеми 2038 року.
Розширення типу time_t
до 64 біт порушить бінарну сумісність програм, збережених даних і всього іншого, що використовує представлення часу в бінарному вигляді. А приведення time_t
в ціле без знаку може порушити роботу програм, які обчислюють різницю в часі.
Більшістю операційних систем для 64-бітних архітектур вже використовується 64-бітне представлення цілого в time_t
. Перехід на такі архітектури вже відбувається, і за прогнозами, він буде завершений до 2038 року.
Проте, сотні тисяч 32-бітних систем все ще вводяться експлуатацію, у тому числі — у вбудовуваних системах (наприклад, на 32-бітних процесорах архітектури ARM та на процесорах меншої розрядності). Викликає сумнів, що вони всі будуть замінені до 2038 року. Вбудовані комп'ютери можуть діяти без модернізації весь термін, який працюють керовані ними системи. Наприклад, комп'ютери управління процесами моделі IBM 1800, випуск яких розпочато 1965 року, усе ще використовувалися на одній з атомних станцій у Канаді у 2006 році.
На додаток до цього, 32-бітний формат time_t
також включено до специфікацій форматів файлів, таких як повсюдно поширений архівний формат ZIP. Формат файлу може існувати протягом часу, за який зміняться багато поколінь комп'ютерів, а це означає, що Проблема 2038 залишиться актуальною.
Введення 64-бітного формату вносить нову дату «закільцьовування» через приблизно 290 мільярдів років, в 15:30:08 UTC в неділю, 4 грудня 292 277 026 596 року. Але ця проблема в наш час не вважається терміновою.
Див. також
Посилання
- Проблема 2038 року — відео
Примітки
- Date (Java 2 Platform SE 5.0). docs.oracle.com. Процитовано 16 січня 2021.
- DateTime Struct. Microsoft Docs (англійською) .
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Proble ma 2038 ro ku u komp yuternih sistemah ochikuvani zboyi v roboti programnogo zabezpechennya 19 sichnya 2038 roku Cya problema stosuyetsya program i sistem v yakih vikoristovuyetsya predstavlennya chasu za standartom POSIX chas Unix Cej standart vikoristovuye kilkist sekund yaki projshli vid pochatku epohi tobto z pivnochi 1 sichnya 1970 roku Take predstavlennya chasu standart dlya Unix podibnih operacijnih sistem cherez rozpovsyudzhene vikoristannya movi Si Ilyustraciya zaciklennya dati pri 32 bitovomu predstavlenni Na bilshosti sistem z rozryadnistyu procesora ne vishe 32 bit dlya zberigannya sekund vikoristovuyetsya tip danih a href wiki Time h D0 A2 D0 B8 D0 BF D0 B8 D0 B4 D0 B0 D0 BD D0 B8 D1 85 title Time h time t a viznachenij yak signed int tobto u formati 32 bitnogo cilogo chisla zi znakom Najpiznisha data yaka mozhe buti predstavlena takim formatom v standarti POSIX ce 03 14 07 vivtorok 19 sichnya 2038 roku za vsesvitnim chasom UTC Nastupnij moment chasu chas zmusit take pole danih prijnyati vid yemne znachennya sho podibno do zaciklyuvannya chasu oskilki vid yemne chislo mozhe buti sprijnyato programami yak chas u 1970 abo 1901 roci zalezhno vid realizaciyi Unaslidok mozhut buti zdijsneni pomilkovi obchislennya abo otrimani nekorektni rezultati Dlya bagatoh kombinacij procesoriv i operacijnih sistem ne isnuye prostogo rozv yazannya problemi 2038 roku Rozshirennya tipu time t do 64 bit porushit binarnu sumisnist program zberezhenih danih i vsogo inshogo sho vikoristovuye predstavlennya chasu v binarnomu viglyadi A privedennya time t v cile bez znaku mozhe porushiti robotu program yaki obchislyuyut riznicyu v chasi Bilshistyu operacijnih sistem dlya 64 bitnih arhitektur vzhe vikoristovuyetsya 64 bitne predstavlennya cilogo v time t Perehid na taki arhitekturi vzhe vidbuvayetsya i za prognozami vin bude zavershenij do 2038 roku Prote sotni tisyach 32 bitnih sistem vse she vvodyatsya ekspluataciyu u tomu chisli u vbudovuvanih sistemah napriklad na 32 bitnih procesorah arhitekturi ARM ta na procesorah menshoyi rozryadnosti Viklikaye sumniv sho voni vsi budut zamineni do 2038 roku Vbudovani komp yuteri mozhut diyati bez modernizaciyi ves termin yakij pracyuyut kerovani nimi sistemi Napriklad komp yuteri upravlinnya procesami modeli IBM 1800 vipusk yakih rozpochato 1965 roku use she vikoristovuvalisya na odnij z atomnih stancij u Kanadi u 2006 roci Na dodatok do cogo 32 bitnij format time t takozh vklyucheno do specifikacij formativ fajliv takih yak povsyudno poshirenij arhivnij format ZIP Format fajlu mozhe isnuvati protyagom chasu za yakij zminyatsya bagato pokolin komp yuteriv a ce oznachaye sho Problema 2038 zalishitsya aktualnoyu Vvedennya 64 bitnogo formatu vnosit novu datu zakilcovuvannya cherez priblizno 290 milyardiv rokiv v 15 30 08 UTC v nedilyu 4 grudnya 292 277 026 596 roku Ale cya problema v nash chas ne vvazhayetsya terminovoyu Predstavlennya dati u Java i NET ne mayut ciyeyi problemi Div takozhProblema 2000 roku Epoha informatika PosilannyaProblema 2038 roku videoPrimitkiDate Java 2 Platform SE 5 0 docs oracle com Procitovano 16 sichnya 2021 DateTime Struct Microsoft Docs anglijskoyu