Помните, какую шумиху подняли правительства и частные компании в конце XX века? Людей пугали «проблемой 2000», предвещая кризис мировой экономики и жуткие техногенные катастрофы. Виной всему была недоработка программистов Microsoft. К счастью, IBM- машины почти не используются в серверах. Навигационные и коммуникационные серверы используют Unix-системы. Поэтому ажиотаж, поднятый политиками, газетчиками и экономистами, лишь обогатил международных мошенников. Мы так и не увидели падавших самоле- трв, прорванных плотин и хаоса техногенной катастрофы. Но пророчества кликуш еще могут сбыться. В ближайшее время (относительно ближайшее) человечество ожидает повторение «ошибки 2000».

19 января 2038 года системы Unix столкнутся с той же проблемой, что IBM. Если пользователи Windows боялись 2000 года, то пользователи Unix с ужасом ожидают наступления 2038 года.

Что же порождает такие проблемы времени? Системы Unix измеряют время очень просто — они считают секунды. Точкой отсчета является 00:00:00 1 января 1970 (время по Гринвичу). Подсчет секунд ведется в Kernel (в ядре системы Unix). Это особый системный код, непонятный простому человеку, поэтому особый файл преобразует строки кода в понятный нам вид: Пон. 10 мая 19:54:19 2004.

Большинство программ используют так называемую библиотеку стандартного времени (time.h). Эта библиотека создает стандартный 4-байтовый формат для сохраняемых значений времени. Кроме того,, она преобразует, отображает и подсчитывает временные значения. Ровно в полночь 1 января 1970 года это 4-байтное значение времени было «0».

Мы знаем, что предельным значением 4-байтного значения является число 2,147,483,647. Преобразовав его в понятный нам вид, мы получим зловещую дату: 19 января 2038 г. Ровно в 3:14:07 (по Гринвичу) все серверы мира собьются с подсчета времени. Системы выдадут сообщения об ошибках, и начнется ма-аленький армагеддец.

Конечно, нас от этой даты отделяет больше четверти века, и если операционные системы Unix станзт 64-битными, проблема отступит почти на столетие.

Какие же памятные даты нас ожидают в будущем? Итак я воссяду на треножник, как Нострадамус, и изреку вам свои пророчества, а вы внимайте им с благоговением

2030 года — переломная точка для ОС Windows. 2029 год останется для них 2029… а 2030 будет интерпретироваться как 1930.

30 сентября 2034 года — ОС Unix испытают переполнение в функции времени.

19 января 2038 года — «ошибка времени» для систем Unix.