Что такое проблема 2038 года и как она уничтожит Linux

В Linux некоторые даты хранятся в UNIX-формате. Формат представляет собой число секунд, прошедших с 1 января 1970 года. Под хранение этих данных выделено 32 бита, причем один бит зачем-то отдан на знак (тип signed int). Получается, что сначала счетчик дойдет до 2 147 483 647, а потом время станет отрицательным, компьютеры сойдут с ума и перебьют всех человеков.

2038 problem. UNIX timestamp fail

До Армагеддона еще больше 20 лет, а лучшие умы современности уже заняты поисками решения. А чего бы и не поискать, если вспомнить, сколько удалось распилить на другой смертельной угрозе — Y2K Bug. Пользователям объяснили, смена 1999 года на 2000-й при хранении только 2 последних чисел года приведет о обнулению даты, электростанции взорвутся, в тюрьмах сами откроются ворота и зэки изнасилуют всё, что осталось более-менее живым после ядерной катастрофы. А чтобы избежать этого неприятного сценария достаточно купить новую версию программы. Новой в ней только 4 разряда под хранение года и красочная наклейка Y2K-compatible. Кто-то на таких наклейках сделал состояние.

Предложено сразу два решения проблемы 2038 года. Во-первых, можно сделать знаковый тип беззнаковым. Всего один бит подарит еще десятилетия отсрочки. А можно сделать переменную 64-битной и тогда проблема вернется только через 292 миллиарда лет.
field_vote: 
Ваша оценка: Нет Средняя: 4.6 (5 оценки)
Главная тема: 
Дистрибутивы: 

Комментарии

В x64-системах время хранится в 8 байтах без 1 бита, т.е. в 63 битах. Этого хватит до 1970+(2^63-1)/365/24/60/60 = 1970+292471208677 = 292471210647 года.

Оценка: 
Средняя: 4.7 (7 оценки)

Не дай бог дожить до этой даты.

Оценка: 
Средняя: 5 (3 оценки)

Не доживем — Солнце лопнет. А надежды на переселение на другие планеты нет, так как космосом занялся Рогозин.

Оценка: 
Средняя: 5 (8 оценки)

Рогозин на века что ли ? )))

Оценка: 
Пока без оценки

Дарагой робот! Я пишу тебе это письмо из 2017 года, надеясь, что ты прочтешь это в 2038. 20 лет всё-таки, наверное изобретут сильный ИИ к тому времени, да?

О чем это я.. так вот! Если вдруг оказалось так, что сейчас, в 2038 году, у тебя всё еще 32-битная система с 32-bit signed integer в качестве таймстемпа, то знай: твой владелец — оочень ленивый человек, который всё равно не сможет тебя нормально обновлять и заботиться о тебе. Можешь его убить.

Всех благ, человеки.

Оценка: 
Средняя: 5 (1 оценка)

Комментировать

Filtered HTML

  • Use [fn]...[/fn] (or <fn>...</fn>) to insert automatically numbered footnotes.
  • Доступны HTML теги: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <blockquote> <strike> <code> <h2> <h3> <h4> <h5> <del> <img>
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Строки и параграфы переносятся автоматически.

Plain text

  • HTML-теги не обрабатываются и показываются как обычный текст
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Строки и параграфы переносятся автоматически.