Что такое проблема 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 миллиарда лет.
Ваша оценка: Нет Средняя оценка: 5 (4 votes)

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

Ваша оценка: Нет Средняя оценка: 4.7 (7 votes)

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

Ваша оценка: Нет Средняя оценка: 5 (3 votes)
pomodor

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

Ваша оценка: Нет Средняя оценка: 5 (8 votes)
Texnoline

О Рогозине, зачетно!;)

Ваша оценка: Нет Средняя оценка: 5 (1 vote)

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

Ваша оценка: Нет
Texnoline

292 миллиарда с хвостом лет, хм, больше возраста Вселенной;)

Ваша оценка: Нет Средняя оценка: 4 (2 votes)

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

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

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

Ваша оценка: Нет Средняя оценка: 5 (1 vote)
Отправить комментарий
КАПЧА
Вы человек? Подсказка: зарегистрируйтесь, чтобы этот вопрос больше никогда не возникал. Кстати, анонимные ссылки запрещены.
CAPTCHA на основе изображений
Enter the characters shown in the image.
Счетчики
  • Самый популярный сайт о Linux и Windows 10
  • Индекс цитирования