
| Процессоры | Системные платы | Видеосистема | Носители информации | Мультимедиа | Периферия | Коммуникации | Поиск по сайту |
Проблема 2000 года и пути ее решенияДля компьютерного и офисного оборудования проблема смены тысячелетий заключается в возможной неверной работе модуля Real Time Clock (RTC, Таймер Реального времени), который отвечает за изменение даты и времени, использующегося при работе системы, например, при записи файлов на диск.
Непредсказуемым и опасным эффект от этой ошибки может стать потому, что и сама система и все программы работают с учетом того, что время может двигаться только вперед, что естественно, а не назад! Истоки проблемы 2000 годаНаличием аппаратной "проблемы 2000 года" в компьютерах класса IBM PC мы обязаны двум компаниям - Motorola и IBM. Первой - за то, что ею была создана микросхема аппаратных часов реального времени (RTC - Real-Time Clock) MC146818, не содержащая двух старших разрядов года, а второй - за то, что именно эта микросхема была использована при разработке компьютера IBM PC AT (PC XT и более ранние модели не имели энергонезависимых часов вовсе). В разных вариантах исполнения и под разными названиями (DS1287, КР512ВИ1) эту микросхему или ее модификации производили многие компании. Все эти устройства давным-давно не применяются при разработке новых компьютеров, однако для сохранения программной совместимости архитектура этого таймера полностью повторяется производителями интегрированных чипсетов на протяжении уже почти четверти века. Производители микросхем RTC (а основными на сегодня являются Dallas Semiconductor, Benchmarq Technology, SGS-Thomson и VIA Technologies) выпускают сегодня широчайшую номенклатуру устройств, имеющих полноразрядные счетчики года и коррекцию високосных лет. Однако совместимость - вопрос очень тонкий, и многие производители чипсетов и системных плат предпочитают использовать старую архитектуру, чтобы избежать изменений в BIOS и возможной несовместимости со старым ПО. Делается это с целью полной гарантированной совместимости со старым программным обеспечением. Как узнать, есть ли проблема 2000 года?Запустить тест, например NSTL. Или выбрать в Интернете любую тестовую программу, вот список специализированных сайтов:
Но можно обойтись и без специальных тестовых программ. Проверка ОС
Проверка BIOS
Проверка аппаратного таймера (RTC)
Проверку можно выполнить и для других "опасных" дат. Не следует, впрочем, считать, что при правильном выполнении всех этих тестов ваш компьютер неуязвим для "проблемы 2000 года". Не забывайте о возможных ошибках в прочем программном обеспечении. Верно также и обратное: непрохождение некоторых тестов вовсе не означает, что компьютер нужно менять. Есть ли еще критические даты?Наиболее критичными и подлежащими обязательному тестированию переходами дат являются следующие:
Решение проблемы 2000 года
Производителей BIOS немного, поэтому укажем кратко, какие версии их продуктов не имеют проблем с 2000 годом. AMI BIOSВсе версии AMI BIOS, выпущенные до 15 июля 1995 года корректно воспринимаю даты после 2000 года, но не осуществляют автоматической коррекции. Поэтому в компьютерах, имеющих BIOS этих версий, придется один раз скорректировать дату. Сделать это надо будет уже после наступления 2000 года, например 1 января. Все версии имеющие дату после 15 июля 1995 года должны автоматически произвести коррекцию. Должны по тому, что некоторые производители системных плат вносят изменения в BIOS, поэтому при возможности лучше проконсультироваться с конкретным разработчиком. Список производителей можно найти в Интернете, на сайте AMI. Award BIOSВсе версии Award BIOS, выпущенные до 26 апреля 1994 года корректно воспринимаю даты после 2000 года, но не осуществляют автоматической коррекции. Поэтому в компьютерах, имеющих BIOS этих версий, придется один раз скорректировать дату вручную. Сделать это надо будет уже после наступления 2000 года, например 1 января. Все версии Award BIOS, выпущенные с 26 апреля 1994 года по 31 мая 1995 года не воспринимают даты после 1999 года и требуют переустановки системного времени при каждой перезагрузке системы. Исправленную версию нужно получить у производителя системной платы или, в крайнем случае, обратиться непосредственно в Award Software. Все версии имеющие дату после 31 мая 1995 года правильно обрабатывают даты после 2000 года и автоматически производят необходимую коррекцию. Заметим, что версии Award BIOS, выпущенные в период с 31 мая 1995 года по 18 ноября 1996 года могут не пройти тест NSTL, но это не означает, что имеет место проблема 2000 года. Это виноват сам тест NSTL. Phoenix BIOSPhoenix BIOS, имеющие версию 4.0 Release 5 и старше корректно воспринимаю даты после 2000 года и автоматически производят переход от 1999 года к 2000 году. Все более ранние версии Phoenix BIOS правильно воспринимают даты после 2000 года, но требуют однократной корректировки даты вручную. Сделать это надо будет уже после наступления 2000 года, например 1 января. ALi BIOSИнформация от самой компании ALi пока недоступна. Поэтому придется все проверить опытным путем. Достоверно известно только то, что биосы от Acer с версией от 2.0 проблем не имеют. Некоторые системные платы имеют версии BIOS не обновляемые программно, т.е. не Flash. Для таких плат их производители выпустили специальные утилиты. Эти утилиты загружаются в оперативную память компьютера и, оставаясь в ней резидентно, производят корректировку даты при переходе к 2000 году. Эту TSR программу нужно запустить один раз, после перехода из 1999 в 2000 год. Эти программы, как и новые версии BIOS можно загрузить бесплатно из Интернета. Некоторые фирмы предлагают аппаратное решение, исключающее проблему на уровне RTC и BIOS: установку дополнительной платы, содержащей корректно работающие часы реального времени и собственную микросхему BIOS (разумеется, не замещающую BIOS самого компьютера, а добавляющую процедуры работы с новым RTC). Принцип работы этих устройств аналогичен коррекции, применяемой в новых версиях BIOS: перехват обращений к функциям, связанным с датой, проверка ячейки CMOS, содержащей значение века, и ее коррекция при необходимости. Подобные устройства имеет смысл применять в случаях, когда по каким-либо причинам невозможно обновление BIOS, - они не требуют драйверов и устанавливаются в один из слотов системной платы. Разумеется, такое решение стоит денег. Но гораздо проще и дешевле загрузить бесплатные обновления BIOS из Интернета и, в случае необходимости, произвести ручную корректировку даты. Если проблема 2000 года так легко решается, то почему такой шум в прессе по этому поводу?Эта проблема решается легко для аппаратного обеспечения Вашей системы и только для некоторого программного обеспечения. Но существует огромное число баз данных и приложений, например, бухгалтерских, которые используют только 2 цифры для представления значения года. В основном, эти системы используются банками, государственными учреждениями и другими крупными конторами. Именно в этом случае проблема 2000 года может проявить себя в полной мере. Последствия от неподготовленности программ, могут оказаться непредсказуемыми. И если в случае использования их индивидуальными пользователями, ничего страшного произойти не должно, то возникновение проблемы Y2K в массовом масштабе может повлечь за собой значительные потери. Также много электрического оборудования использует RTC. Опять таки, использование такого оборудования в быту, даже на стыке столетий, вряд ли может вызовать какие-либо серьезные последствия, однако неподготовленное промышленное оборудовании может вызвать прямо или косвенно большие проблемы. Для поиска решения проблемы для этих систем необходимо потратить много времени и денежных средств, но и то и другое люди тратить не любят. И вместо попыток инвестировать деньги и время для решения этой проблемы большинство пытается закрыть на нее глаза и надеяться на лучшее. Что же, по оценкам западных экспертов Россия сможет справиться с последствиями проблемы Y2K только к середине 2000 года. ДополнениеМногочисленными тестами установлено, что RTC старого образуа имеет одну существенную погрешность: при переходе от 31 декабря 1999 к 1 января 2000 года значение тысячелетия (хранящееся в ячейке с адресом 32h) остается неизменным (19 вместо 20). Все современные BIOS умеют корретно отрабатывать данную ситуацию, и в случае использования программ, которые получают значение даты, используя прерывания BIOS, данная проблема не дает о себе знать. Тем не менее существует потенциальная опасность использования программ, которые получают значение даты путем прямого ("аппаратного") чтения значений из CMOS. В результате может быть получено значение года 1900 вместо 2000. Наиболее неприятным является то, что данная проблема возникает только во включенном состоянии компьютера. Если компьютер в момент перехода дат находился в выключенном состоянии, то BIOS при начальном тесте откорректирует данную проблему. Поэтому необходимо тщательно подбирать материнские платы для систем, работающих в непрерывном режиме (например, серверы различного назначения). Первый вариант проверки (визуальное наблюдение).
Второй вариант проверки (специальные тесты) 1. Navratyl Software System Inform v0.42c при тесте BIOS отображает наличие "бага" в RTC и способность BIOS'a его корректировать
2. RTCDATE (программа сертификации по Проблеме 2000)
проверяет корректность аппаратного перехода по набору дат, отлавливаает
"баг" RTC.
Игорь Шоков (igors@k-systems.ru, K-Systems)
7 сентября 1999 г. Павел Соколов (pavel@ixbt.com) |

| Процессоры | Системные платы | Видеосистема | Носители информации | Мультимедиа | Периферия | Коммуникации | Поиск по сайту |
Copyright (c) by iXBT, 1999. Produced by pavel@ixbt.com & gavric@ixbt.com Дизайн (с) 1998 студия РусАрт |