Сброс даты POSIX (UNIX-время) или проблема 2038 года

Пятница, 21 Января 2011 г. 06:08 + в цитатник

Оригинал: на HellMix

Копался в настройках WEB сервера, искал как заставить жить сессию аутентификации пользователей на заданное время и ограничить срок жизни cookies на стороне клиента.  Другими словами – сократить срок  сессии с момента логина и за период бездействия, а также срок жизни cookies в том случае , если при входе юзер поставил галочку «запомнить меня», сохранив тем самым у себя данные сессии.  Вся это борода интересовала меня на основе PHP сессий и SQL верификации юзверов на сайте. Ну.. как обычно и всегда без могучего и непобедимого Гугла не обошлось.

Но написать я хотел совсем не об этом… Наткнулся я в поиске на очень интересную статью, о которой я раньше  и не знал. Статья рассказывает о проблеме 2038 года в вычислительной технике. Проблема затрагивает программы и системы, в которых используется представление времени по стандарту POSIX (UNIX-время), которое представляет собой количество секунд, прошедшее с 1 января 1970 года. Такое представление времени — это стандарт для Unix-подобных операционных систем (из-за повсеместного использования языка Си).

Проблема 2038 года

Пример, сброс даты (в 03:14:08 UTC 19 января 2038 года).

На большинстве 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-битных систем всё ещё вводятся в строй в 2010 году, в том числе и во встраиваемых системах. Вызывает сомнение, что они все будут заменены к 2038 году. Несмотря на то, что современные компьютерные системы могут модернизироваться раз в 18-24 месяцев (по «Закону Мура»), встроенные компьютеры могут действовать без модернизации весь срок, который работают системы, ими управляемые. Например, компьютеры управления процессами модели IBM 1800, выпуск которых был начат в 1965 году, всё ещё использовались на одной из атомных станций в Канаде в 2006 году.

В дополнение к этому, 32-битный формат time_t также включён в спецификации форматов файлов, таких как повсеместно распространённый архивный формат ZIP. Формат файла может существовать в течение времени, за которое сменятся многие поколения компьютеров, а это означает, что Проблема 2038 останется актуальной.

Введение 64-битного формата вносит новую дату «закольцевания» через примерно 290 миллиардов лет, в 15:30:08 UTC в воскресенье, 4 декабря 292 277 026 596 года.

Проблема 2038 года актуальна и для 32-разрядных версий Windows, так как значительная часть самой ОС и большое число программ для неё написано на C/C++. Разработчики Windows говорят, что исправили большинство багов, связанных с этой проблемой, однако, они не могут дать никаких гарантий по поводу стороннего ПО.

материал взят из ru.wikipedia.org

Рубрики:  I T
Метки:  

Жузявочка   обратиться по имени Вторник, 24 Января 2012 г. 22:01 (ссылка)
Я уже второй раз этот пост читаю, но без специальных знаний туго продвигается. Причем. самое интересное - в первый раз я его прочитала в прошлом году. =) Во второй раз сначала подумала дежавю. =)

Но в основном смысл понятен. Необходимо переходить на 64-битный формат. =)))
Ответить С цитатой В цитатник
Перейти к дневнику
Перейти к дневнику

Вторник, 24 Января 2012 г. 22:30ссылка
Чего смеёшься? =)))
Перейти к дневнику

Вторник, 24 Января 2012 г. 22:30ссылка
буду 64-битная! =))))
Перейти к дневнику

Вторник, 24 Января 2012 г. 22:35ссылка
тогда уж 128 битная ))
Перейти к дневнику

Вторник, 24 Января 2012 г. 22:40ссылка
А такие нагрузки не опасны? =)

Но если это круто, то я согласна. =))))))))
Перейти к дневнику

Среда, 25 Января 2012 г. 01:39ссылка
многовато ))) 64 самое то
 

Добавить комментарий:
Текст комментария: смайлики

Проверка орфографии: (найти ошибки)

Прикрепить картинку:

 Переводить URL в ссылку
 Подписаться на комментарии
 Подписать картинку