Rambler's Top100
 
 
  02 декабря 2008 года Компьюлента
CIO
Терралаб
Бизнес-журнал
в поле зрения | обзоры и тесты | своя игра | интерактив
Тридцать бит тому назад
Автор: Евгений Золотов
Опубликовано 22 декабря 2003 года

Новость, попавшая в поле зрения популярной компьютерной прессы под конец минувшей недели, должна вызвать ощущение дежа-вю у каждого, кому довелось пережить компьютерную лихорадку на сломе тысячелетий. Суть сообщения проста: американская компания PTC выпустила несколько "заплаток" для ранних версий ряда своих программных продуктов, которые призваны исправить странное поведение этих программ - в некоторых случаях отказывающихся нормально работать с данными, датируемыми началом 2004-го года и сроками, отстоящими ещё дальше. Жалоб на работу программ пока поступило немного, но учитывая, что клиентов у компании несколько десятков тысяч, ситуация может стать катастрофической менее чем через месяц. Источник проблемы известен: в некоторых продуктах PTC для хранения даты, выражаемой в секундах, использована 30-битная переменная. За нулевую точку отсчёта принято 1 января 1970 года (стандартное правило для UNIX-систем), так что 30 бит оказываются переполненными по прохождении немногим более одного миллиарда секунд (230). Результат - некорректная работа софта.

Правда, звучит знакомо? Да, выявленный программистами PTC баг не уникален и принадлежит к целому классу "ошибок Y2K". Название его представляет собой сокращение от "Year 2 K", где "K" символизирует тысячу. Особенно много шуму по поводу возможного проявления одной из таких ошибок было четыре года назад, когда смена даты с 1999 на 2000-й год обещала множество различных проблем для вычислительных машин самого разного свойства: во многих компьютерных программах системная дата записывалась двумя десятичными разрядами, хранившими две последних цифры года. Как известно, тогда всё обошлось малой кровью - благодаря миллиардным суммам, вложенным в проверку и коррекцию программного обеспечения по всему миру, ни государственные, ни частные объекты не пострадали. Но это лишь один, считающийся классическим пример. Класс ошибок Y2K, представители которого порождаются всегда одним и тем же допущением (программист, создающий очередной продукт, предполагает, что его программа вряд ли проработает дольше некоторого, кажущегося разумным срока, либо просто не задумывается о будущем своего детища), включает в себя множество примеров. Это и "финальная дата" в UNIX-системах (во многих из них для хранения системной даты отведены 32 бита, что, считая посекундно от 1970-го, должно привести к переполнению счётчика в 2038 году), это и финальная дата в Microsoft Excel (поле, отведённое для даты, в некоторых случаях может переполниться в 2079 году), это и уже прошедшее 9 сентября 1999 года (9/9/99 может быть спутано с кодом 9999, обозначавшим в некоторых старых системах конец файла) и мн.др. Из-за многочисленности таких дат, им даже дали общее название горизонта событий: незримой границы, пересечение которой равноценно гибели.

Но что самое любопытное, впервые на потенциальную опасность слишком вольного обращения с датами было указано отнюдь не в конце 90-х, а на четыре десятка лет раньше! Именно тогда Боб Бемер (Bob Bemer), один из классиков компьютерной эпохи, разработавший основу для современных форматов представления данных в компьютерной памяти (он считается отцом ASCII и дедушкой языка программирования COBOL) призвал программистов использовать для кодирования даты четыре десятичных разряда вместо двух. Увы, тогда его призыв не был воспринят всерьёз, чем Бемер полвека спустя сам и воспользовался, основав компанию Bigisoft, предлагавшую услуги по профилактике проблемы Y2K. Но, взирая на инцидент с программами PTC, похоже, что и сегодня сиюминутные заботы остаются важней перспективы. Пока гром не грянет?..

ТАКЖЕ В РАЗДЕЛЕ
18 февраля 2004 года
Его Величество Баг 
17 февраля 2004 года
Жизнь за окном 
16 февраля 2004 года
Гигабайтом меньше 
13 февраля 2004 года
Делай порно 
12 февраля 2004 года
Великолепная Шестерка 
11 февраля 2004 года
Есть смысл 
 
/  бумажный номер

Тема номера: Кризис в ИТ Читайте на сайте тему номера "Кризис в ИТ" и другие статьи из журнала "Компьютерра" от 04 ноября 2008 года
  Архив номеров журнала

О проекте | Реклама на сайте | Рассылки сайта | КПК–версия | RSS-трансляция

© ООО «Компьютерра–Онлайн», 1997 — 2008.
При цитировании и использовании любых материалов ссылка на портал «Компьютерра–Онлайн» обязательна (для Интернет–изданий — www.computerra.ru)
Редакция сайта: site@computerra.ru
Техподдержка сайта: websupport@computerra.ru
Редакция журнала: inform@computerra.ru
Отдел рекламы: reklama@computerra.ru
Телефон: (495) 232–22–61, (495) 232–22–63
Работает на «Битрикс: Управление сайтом»
Почта защищена сервером «СПАМОРЕЗ»
Трилан — продвижение сайта,
поисковая оптимизация сайта

Сайт работает на сервере DEPO Computers
Rambler's Top100