2020-06-26 11:52:22 +00:00
<!DOCTYPE html>
< html >
< head >
< meta charset = "utf-8" >
< title > Проблема 2038 года< / title >
< link href = "https://fonts.googleapis.com/css?family=Heebo&display=swap" rel = "stylesheet" >
< link rel = "shortcut icon" href = "icon.png" type = "image/x-icon" >
2020-07-03 16:11:24 +00:00
< link rel = "stylesheet" id = "style" type = "text/css" href = "style.css" >
2020-06-26 11:52:22 +00:00
< meta name = "theme-color" id = "meta-color" content = "#000000" >
< / head >
< body >
2020-07-03 16:11:24 +00:00
< div id = "button-to-fullscreen" onclick = "document.documentElement.requestFullscreen();" >
< svg width = "1em" height = "1em" viewBox = "0 0 16 16" class = "bi bi-arrows-fullscreen" fill = "currentColor" xmlns = "http://www.w3.org/2000/svg" >
< path fill-rule = "evenodd" d = "M1.464 10.536a.5.5 0 0 1 .5.5v3h3a.5.5 0 0 1 0 1h-3.5a.5.5 0 0 1-.5-.5v-3.5a.5.5 0 0 1 .5-.5z" / >
< path fill-rule = "evenodd" d = "M5.964 10a.5.5 0 0 1 0 .707l-4.146 4.147a.5.5 0 0 1-.707-.708L5.257 10a.5.5 0 0 1 .707 0zm8.854-8.854a.5.5 0 0 1 0 .708L10.672 6a.5.5 0 0 1-.708-.707l4.147-4.147a.5.5 0 0 1 .707 0z" / >
< path fill-rule = "evenodd" d = "M10.5 1.5A.5.5 0 0 1 11 1h3.5a.5.5 0 0 1 .5.5V5a.5.5 0 0 1-1 0V2h-3a.5.5 0 0 1-.5-.5zm4 9a.5.5 0 0 0-.5.5v3h-3a.5.5 0 0 0 0 1h3.5a.5.5 0 0 0 .5-.5V11a.5.5 0 0 0-.5-.5z" / >
< path fill-rule = "evenodd" d = "M10 9.964a.5.5 0 0 0 0 .708l4.146 4.146a.5.5 0 0 0 .708-.707l-4.147-4.147a.5.5 0 0 0-.707 0zM1.182 1.146a.5.5 0 0 0 0 .708L5.328 6a.5.5 0 0 0 .708-.707L1.889 1.146a.5.5 0 0 0-.707 0z" / >
< path fill-rule = "evenodd" d = "M5.5 1.5A.5.5 0 0 0 5 1H1.5a.5.5 0 0 0-.5.5V5a.5.5 0 0 0 1 0V2h3a.5.5 0 0 0 .5-.5z" / >
< / svg >
< / div >
< div id = "button-fullscreen-exit" onclick = "document.exitFullscreen();" >
< svg width = "1em" height = "1em" viewBox = "0 0 16 16" class = "bi bi-fullscreen-exit" fill = "currentColor" xmlns = "http://www.w3.org/2000/svg" >
< path fill-rule = "evenodd" d = "M5.5 0a.5.5 0 0 1 .5.5v4A1.5 1.5 0 0 1 4.5 6h-4a.5.5 0 0 1 0-1h4a.5.5 0 0 0 .5-.5v-4a.5.5 0 0 1 .5-.5zm5 0a.5.5 0 0 1 .5.5v4a.5.5 0 0 0 .5.5h4a.5.5 0 0 1 0 1h-4A1.5 1.5 0 0 1 10 4.5v-4a.5.5 0 0 1 .5-.5zM0 10.5a.5.5 0 0 1 .5-.5h4A1.5 1.5 0 0 1 6 11.5v4a.5.5 0 0 1-1 0v-4a.5.5 0 0 0-.5-.5h-4a.5.5 0 0 1-.5-.5zm10 1a1.5 1.5 0 0 1 1.5-1.5h4a.5.5 0 0 1 0 1h-4a.5.5 0 0 0-.5.5v4a.5.5 0 0 1-1 0v-4z" / >
< / svg >
< / div >
< div id = "counter" >
< h1 id = "title" > До смерти 32-битных систем осталось< / h1 >
2021-08-16 20:04:38 +00:00
< div id = "time" > < span id = "time-left" onclick = "msecDisplaySwitcher()" > < / span > < span id = "time-left-msec" > < / span > < / div >
2020-07-03 16:11:24 +00:00
< div id = "bar" >
< p id = "time-left-readable" onclick = "ReadableTimerSwitcher()" > < / p >
< progress id = "prog" max = "2147483647" > < / progress >
< / div >
< / div >
2021-08-16 20:04:38 +00:00
< div id = "description" >
2020-06-26 11:52:22 +00:00
< h3 > О чём этот сайт?< / h3 >
< p > Проблема 2038 года в вычислительной технике — ожидаемые сбои в программном обеспечении накануне 19 января
2038 года. Данная проблема затронет программы и системы, в которых используется представление времени по
стандарту POSIX (UNIX-время), которое представляет собой количество секунд, прошедшее с полуночи 1 января
1970 года. Такое представление времени — это стандарт для Unix-подобных операционных систем (из-за
2021-11-23 16:48:40 +00:00
повсеместного использования языка Си).< / p >
2020-06-26 11:52:22 +00:00
< p > Сейчас значение Unix timestamp равно < span id = "timestamp" > < / span > .< / p >
2021-11-23 16:48:40 +00:00
< h3 > В чём проблема?< / h3 >
< p > В старых 32-битных системах (до середины 1990-х ) используется тип данных time_t для хранения секунд в виде
signed int (32-битного целого с о знаком). Самая поздняя дата, которая может быть представлена таким
форматом в стандарте POSIX — это 03:14:07, вторник, 19 января 2038 года по Всемирному времени (UTC).< / p >
< p > Более позднее время заставит такое поле данных стать отрицательным, как бы закольцевав таким образом время
(поскольку отрицательное число может быть воспринято программами как время в 1970 или 1901 году, в
зависимости от реализации). В результате любые расчёты, включающие дату позже 19 января 2038 года, могут
привести к сбою программы либо к ошибочным вычислениям.< / p >
2020-06-26 11:52:22 +00:00
< p > Для проблемы 2038 года не существует простого решения для существующих комбинаций операционных систем и
прикладного программного обеспечения. Изменение определения типа time_t на 64 бита нарушит бинарную
совместимость программ, существующих хранимых данных и всего другого, использующего представление времени в
бинарном виде. А приведение time_t в целое без знака может нарушить работу программ, которые вычисляют
разницу во времени.< / p >
< h3 > Что подвержено этой проблеме?< / h3 >
2021-11-23 16:48:40 +00:00
< p > Многие структуры данных, которые используются сегодня, имеют 32-битные представления времени, встроенные
в их структуру. Полный список этих структур данных практически невозможно составить, но есть хорошо известные
структуры данных, у которых есть проблема времени Unix:< / p >
< ul >
< li > файловые системы (многие файловые системы используют только 32 бита для представления времени в индексных
дескрипторах)< / li >
< li > форматы двоичных файлов (в которых используются 32-битные поля времени)< / li >
< li > базы данных (которые имеют 32-битные поля времени)< / li >
< li > языки запросов к базам данных, такие как SQL, которые имеют команды, похожие на < code > UNIX_TIMESTAMP()< / code > < / li >
< / ul >
< p > Примеры систем, использующих структуры данных, которые могут содержать 32-битные представления времени, включают:< / p >
< ul >
< li > встроенные подсистемы управления и мониторинга завода, НПЗ< / li >
< li > различное медицинское, военное оборудование< / li >
< / ul >
< p > Любая система, использующая структуры данных, содержащие 32-битные представления времени, представляет риск.
Степень риска зависит от характера отказа.< / p >
2020-06-26 11:52:22 +00:00
< h3 > Использаванные материалы при составлении этого текста< / h3 >
2021-11-23 16:48:40 +00:00
< ul >
< li > < a href = "https://ru.wikipedia.org/wiki/%D0%9F%D1%80%D0%BE%D0%B1%D0%BB%D0%B5%D0%BC%D0%B0_2038_%D0%B3%D0%BE%D0%B4%D0%B0" > Проблема 2038 года - Wikipedia RU< / a > < / li >
< li > < a href = "https://en.wikipedia.org/wiki/Year_2038_problem" > Year 2038 problem - Wikipedia EN< / a > < / li >
< / ul >
2020-06-26 11:52:22 +00:00
< / div >
< footer >
< hr >
< p > Автор сайта: < a href = "https://t.me/dan63047" > dan63047< / a > < / p >
< / footer >
2021-08-16 20:04:38 +00:00
< script type = "text/javascript" src = "jquery-3.4.1.min.js" > < / script >
2020-06-26 11:52:22 +00:00
< script type = "text/javascript" src = "script.js" > < / script >
< / body >
< / html >