ГлавнаяКонтактыКарта сайта
ЕПОС
О компанииКомпьютерная криминалистикаВосстановление информацииЗащита информацииПроизводство и ITСервисНаши разработки

Расследование инцидентов, компьютерная криминалистика, информационная безопасность

Книжная серия Взгляд на жесткий диск изнутри




Архив статей


06.11.1999
Правда о «железном» решении проблемы 2000 года

Вячеслав ОВСЯННИКОВ
ведущий специалист фирмы «ЕПОС»

Специалист подобен флюсу.
Его знания о проблеме 2000 однобоки.

Народный ЕПОС

По мере приближения 2000 года становится все горячее. Это заметно по задаваемым вопросам. Еще совсем недавно вопросы задавали, в основном, владельцы домашних компьютеров. Услышав сильный шум по поводу проблем в 2000 году, они волновались: не опасно ли в этот период держать дома компьютер? Масло в огонь подлили, наверное, и наши предыдущие статьи: о сути проблемы «Железная проблема 2000 года», и о некоторых трудностях с ее решением с помощью специализированных контроллеров «Железное решение железной проблемы».

Сейчас проблемой 2000 года интересуются, как правило, профессионалы. Видимо, даже по нашим меркам пора этим заняться уже всерьез. Судя же по вопросам, есть только три категории специалистов, занятых данной проблемой. К первой категории относятся те, кто все равно не верит в само существование этой проблемы. Видимо, до первого января они уже и не поверят. Вопросы они задают из праздного любопытства. Вторая категория это те, кто слепо верят, что, достаточно установить какой-либо широко разрекламированный контроллер, чтобы не волноваться. Для нас это благодатный клиент. Он закупает контроллеры пачками. По всей видимости, пытается этим устройством решить даже свои семейные проблемы. Как правило, его изумление по поводу того, например, что проблемы могут быть еще и с программами, бывает неподдельным. И, наконец, те, кто серьезно вник в суть проблемы 2000 года. Они (совершенно справедливо) озабочены подготовкой программного обеспечения. Они хорошо знают состояние своих компьютеров и (может и справедливо, но не всегда) считают, что успеют купить необходимое количество контроллеров, чтобы прямо перед Новым Годом установить их в «не Ready» компьютеры.

На самом же деле, задача подготовки компьютера (коррекция BIOS) имеет свои сложности. В предновогоднюю ночь можно просто не успеть. Не будем сейчас касаться сложностей, которые встречают разработчики средств коррекции ошибки. Сложности ведь есть и у владельцев компьютеров. Их, вообще говоря, немного.

Сложность первая: тестирование

Вопросам тестирования компьютера на предмет готовности его к 2000 году посвящено достаточно много публикаций. Детально расписаны процедуры проверки; как с помощью специальных тестовых программ, так и без их применения. Тем не менее, позвольте несколько практических советов. В основном эти советы относятся к вопросам, почему-то вызывающим трудности.

Тестирование с помощью программ

Конечно, сколько программ, столько и особенностей их применения. Остановимся только на двух, наиболее применяемых. Это AMI2000.com, разработанная фирмой American Megatrends, и 2000.ехе («Ymark2000»), разработанная NSTL (National Software Testing Laboratories).

Программа AMI2000.exe позволяет выполнить выборочную проверку различных узлов компьютера. Она работает не только в среде DOS, но и в среде Windows9x. Поэтому ее применение весьма удобно. Однако я еще не встречал компьютера (даже из самых современных), в котором бы тест AMI2000.exe показал, что часы реального времени RTC готовы к работе в 2000 году.

Давайте, наконец, поставим точку над «i». Часы реального времени имеют право быть не готовыми к 2000 году, если это компьютер IA (интеловской архитектуры). В стандартной конфигурации RTC (изначально, микросхема Motorola MC146818) имеют только два разряда для отображения значения текущего года. Поэтому за правильное значение даты отвечает BIOS компьютера, и только BIOS. Компьютер считается готовым к работе в 2000 году, если BIOS способна корректно представлять дату в момент перехода в 2000 год и в течении 2000 года. RTC здесь совершенно не причем. Конечно, существует возможность программно обратиться непосредственно к RTC, и некоторые программисты пользуются этой возможностью. Страшно. Но не пытайтесь исправить ошибку RTC.

Несмотря на встречающиеся рекламные заявления о том, что какое-то устройство корректирует работу RTC, такое просто невозможно. Исправить их (часов) работу можно только с помощью паяльника (это приспособление, с помощью которого можно выбросить из платы одну микросхему, а на ее место поместить другую). Тем не менее, если BIOS работает корректно, то он раньше любой прикладной программы успеет проверить дату и, при необходимости, изменить значение регистра столетия (это не физически реализованный регистр, а одна из ячеек энергонезависимой памяти). Так что, в любом случае достаточно корректной работы BIOS.

Программа Ymark2000 считается эталоном при оценке готовности компьютера к 2000 году. К программе идет обширный README на 11 страницах, в котором расписано все, что нужно для проверки. Отметим только два ключевых момента. Во-первых, программа вообще не проверяет готовность RTC к 2000 году. Она проверяет только совместимость установленных на плате часов со стандартной структурой микросхемы MC146818. Естественно, часы стандартной структуры и не будут автоматически переходить в 2000 год. Во-вторых, логика работы программы такова, что если по результатам тестирования программа определила, что компьютер «READY», то он действительно «READY». По крайней мере, до сих пор другого не встречалось. Если же результаты тестирования отрицательны, то окончательное решение можно принять только после ручного тестирования. Такой вот интересный парадокс. Выверив компьютер по эталону, начинайте делать проверку вручную.

Ручное тестирование

С методикой ручного тестирования в печати, похоже, вообще все запутали. Даже в тех вопросах, которые были понятны. Многие замечают, что в процессе получения даты участвует несколько часов. Это аппаратные часы RTC и программные часы BIOS и операционной системы. Соответственно, рекомендуется все их проверять. Приводятся подробные методики проверки взаимодействия каждой пары часов, в том числе в ряде случаев рекомендуется проверять значение даты в SETUP BIOS.

Не надо этого ничего делать.

Более того, в некоторых случаях манипуляции с SETUP BIOS могут только ввести в заблуждение. Дело в том, что в микросхеме ПЗУ, которую все привыкли отождествлять с BIOS, на самом деле хранится 4 совершенно независимые программы:

  • программа самодиагностики (POST);
  • программа SETUP;
  • собственно BIOS;
  • начальный загрузчик.

Это разные программы. Задача программы SETUP, в частности, заключается только в том, чтобы дать возможность владельцу компьютера корректно занести все сведения о конфигурации системы, включая текущую дату, в энергонезависимую память. Если BIOS имеет ошибку в работе с датами, то и SETUP обычно имеет ошибку. Но кто обещал, что ошибки в двух независимых программах будут одинаковы?

Есть и другая причина, по которой нет необходимости выполнять многочисленные тесты. Если только Вы не попытаетесь самостоятельно разобраться, как работает компьютер, то Вам по большому счету нет разницы, которые из часов врут. Вам важно знать: в целом компьютер готов к 2000 году или нет? Это и проверяйте!

Установите средствами операционной системы дату 31 декабря 1999 г. и время 23:59. Тут же выключайтесь и подождите одну минуту. Затем включите компьютер и средствами операционной системы проверьте текущую дату. Если это 1 января 2000 г., то у Вашего компьютера все в порядке. Если нет, то срочно ищите средство коррекции BIOS. Только будьте осторожны, если Вы используете программы с ограниченным сроком действия. Лучше, от греха подальше, сделать загрузочную DOS дискету и выполнять проверку с ней. Не забудьте по окончании теста установить правильные значения системного времени и даты. И не надо заходить ни в какой SETUP.

Если Ваш компьютер предназначен для круглосуточной работы (например, почтовая машина), то и проверять ее надо во включенном состоянии. Для этого установите дату 31 декабря 1999 г. и время 23:59. Подождите одну минуту, не выключая компьютера. Если после этого Вы запросите дату, то получите значение 1 января 2000 года практически всегда. Но это заслуга операционной системы, а не BIOS. Нужно перегрузиться и посмотреть, какая теперь установится дата. Опять же, не нужно входить в SETUP. Если получите дату 1 января 2000 года, то все прекрасно. Если нет, то нужно искать какое-либо другое средство.

Не упускайте из виду того, что многие компьютеры не могут самостоятельно «перебраться» в 2000 год, но если в 2000 году установить правильно дату, то компьютер дальше будет работать корректно. Чтобы это проверить, достаточно средствами операционной системы установить любую дату в 2000 году и перегрузиться. Если дата в результате теста не изменилась, то компьютер в 2000 году потребует только один раз скорректировать дату, и на этом его «шалости» с датами прекратятся. Во многих случаях конечному пользователю этого достаточно, и закупать какие-либо средства коррекции не надо. Но если речь идет о многих компьютерах в организации, то Вы гарантированно забудете это сделать на нескольких машинах. Вам решать, стоит ли Ваше личное спокойствие небольшой суммы денег за контроллеры.

Сложность вторая: тестирование

Если описанные выше тесты показали, что компьютер не готов к 2000 году, то Вас может утешить только то, что и многим другим тоже не повезло. Нужно что-то делать. Сама эта неприятность не пройдет. Для начала можно, например, попробовать заменить BIOS. Если вы сами найдете BIOS для Вашей платы, то наверняка можно найти и программатор, чтобы занести новую BIOS в ПЗУ. Но будьте внимательны! По западным оценкам, к 2000 году в мире выпущено больше 2000 версий BIOS. Для Вас может подойти только одна из них. Если есть возможность, то лучше обратиться в специализированный сервисный центр (добро пожаловать в наш сервисный центр). Как правило, это лучший вариант для подготовки одного-двух компьютеров. Если же речь идет об исправлении ошибки в десятке компьютеров или больше, то организационные проблемы замены BIOS могут стать неподъемными.

Гораздо практичнее будет установить в компьютеры специализированный контроллер, позволяющий корректировать работу BIOS. И вот здесь не расслабляйтесь. Так же как не все йогурты одинаково полезны, так и не все контроллеры способны решить Вашу проблему. Типов контроллеров раз-два и обчелся, а разновидностей некорректной работы BIOS – не перечесть. Поэтому купите вначале один контроллер, и тщательно протестируйте его на всех Ваших компьютерах. Но перед тестированием обязательно вспомните простую житейскую мудрость: «Если Вы думаете, что тест прошел успешно, подумайте еще раз».

Никогда не пользуйтесь тестовыми программами для оценки готовности к 2000 году компьютера с установленным контроллером.

Контроллер изменяет логику работы BIOS, на что тестовые программы не рассчитаны. На некоторых материнских платах контроллер может не корректировать ошибку. Тем не менее, в отдельных случаях тесты и в этом случае покажут, что компьютер «Ready». Тесты покажут даже, что RTC корректно и совершенно самостоятельно начали переходить в 2000 год. (Не на этом ли факте основаны заверения некоторых производителей контроллеров, что их изделие корректирует работу RTC?). Нет смысла глубоко вдаваться в принципы функционирования таких контроллеров, но поверьте: убедиться в том, что контроллер решает проблему 2000 года, можно только вручную.

Никогда не входите в SETUP, при оценке готовности к 2000 году компьютера, с установленным контроллером. Любой контроллер пытается решить проблемы с BIOS, но никак не с SETUP. Проблемы с SETUP не решить даже с помощью паяльника. Любознательные могут это проверить. На плате с процессором DX4-100 или даже 5х86, может быть BIOS Award v.4.50. Этот компьютер «очень круто не Ready». При установленном контроллере Е2000 (про другие не говорю, далеко не каждый контроллер способен решить проблемы с данной BIOS), все проверки покажут, что компьютер готов к 2000 году. Он действительно готов. Контроллер честно делает свое дело. Но, установив дату, например, 2000 год и войдя в SETUP, Вы увидите дату 2094 год. Это не должно Вас шокировать. Просто не верьте глазам своим.

Никогда не ограничивайте количество тестов, оценивая готовность к 2000 году компьютера с установленным контроллером.

Обязательно проверьте при установленном контроллере как правильность перехода в 2000 год, так и правильность вычисления високосных годов хотя бы до 2005 года. В этом диапазоне только 2000 и 2004 года високосные. Обязательно проверьте корректность перехода из 2000 в 2001 год.

Все эти тесты нужно делать только вручную. И не тревожьте SETUP! Несмотря на Ваше желание сделать «как лучше, получится как всегда».

Без установленного контроллера (на этапе первичной оценки готовности компьютера) такой тщательности не требуется. Во-первых, если ошибка есть, то она обнаружится уже на этапе проверки правильности перехода в 2000 год. Во-вторых, несмотря на общепринятое мнение, ошибки с определением високосного года в компьютере не может быть хотя бы потому, что этого не может быть никогда. Часы компьютера (RTC) это просто счетчик с переменным коэффициентом деления. В этом счетчике год отображается только двумя цифрами. Поэтому в таком счетчике не может быть применен усложненный алгоритм вычисления високосного года и, следовательно, не может быть сделано ошибки. Все RTC считают год високосным, если значение года делится без остатка на 4. Теоретически, это не правильно, но практически, год 2000 будет правильно определен как високосный, также как и 2001 год, к примеру, будет правильно определен как не високосный.

Когда же мы устанавливаем контроллер, то мы должны понимать, что на самом деле мы заставляем выполняться программу, записанную в ПЗУ контроллера. В отличие от RTC, эта программа работает с датами в полном четырехзначном формате. И я не могу придумать ни одной причины, почему Вы должны верить в правильность работы программы, не убедившись в этом лично.

Совет проверить корректность перехода из 2000 в 2001 год связан с некоторыми особенностями возможной реализации контроллеров и логики работы BIOS. Не убедившись лично в корректности перехода в 2001 год, Вы рискуете 1 января 2001 года увидеть дату 1 января 2000 года или, к примеру, 1 января 2094 года. Такое поведение наиболее вероятно, например, для компьютеров с процессорами 5х86. Этот компьютер, скорее всего, и в 2001 году Вы не выбросите как устаревший. Но кому нравится перспектива встретиться с проблемой в то время, когда все другие уже не помнят о ее существовании?

Сложность третья: тестирование

Выражение «работать с компьютером» не совсем точно. На самом деле человек всегда работает с какой-либо программой. А вот уже программа, каким-либо способом, взаимодействует с элементами компьютера: или непосредственно, или через BIOS. Устанавливая контроллер, корректирующий работу BIOS, вы грубо вмешиваетесь в личную жизнь компьютера. Как компьютер отреагирует на такое вмешательство заранее сказать невозможно. Поэтому, тестируя компьютер с установленным контроллером, необходимо проверить также и корректность работы всех программ, которые Вы используете.

Это совет не из желания «перестраховаться». С таким эффектом мы реально сталкивались. На одной из материнских плат с BIOS Award v.4.51 при установке нашего контроллера версии 2.0 перестали корректно выполняться некоторые программы, работающие под управлением FoxPro. Данный конкретный недостаток в настоящее время устранен. С версией контроллера Е2000 3.0 и выше FoxPro работает корректно. В настоящее время нам неизвестны другие факты некорректной работы контроллера Е2000 версии 3.0. Вот это и настораживает. Поскольку основная часть контроллера это программа, зашитая в ПЗУ, то, следуя логике программистов, или этот контроллер уже никому не нужен, или в нем есть еще необнаруженная ошибка.

Может реклама поможет?

Это смотря кому. Безусловно, поможет рекламодателю. Он хочет что-то продать. Конечно, поможет издателю, публикующему рекламу. А вот для Вас может быть польза, только если Вы умеете читать между строк. А читать нужно так:

Если в рекламе сказано, что контроллер РЕШАЕТ ПРОБЛЕМУ 2000 ГОДА, не верьте! Проблема 2000 далеко не ограничивается проблемами с BIOS. А вмешаться в работу операционной системы или прикладной программы никакой контроллер просто не имеет права.

Если в рекламе сказано, что контроллер решает проблему 2000 года на уровне BIOS, то это гораздо лучше, но все равно, не верьте! Ну откуда производитель контроллера узнал, какая в Вашем конкретном компьютере материнская плата, и какая BIOS.

Если в рекламе сказано, что контроллер решает проблемы для BIOS Award v.4.50, то это уже прекрасно, но не верьте! BIOS Award v.4.50 встречается на платах различных производителей: как с 486-м процессором, так и с процессорами Pentium. И везде ведет себя по-разному. Никто не может заранее утверждать, что контроллер будет корректировать работу BIOS Award v.4.50 на любой плате. А что прикажите делать с BIOS Award v.4.51?

Если в рекламе сказано, что контроллер какой-либо фирмы решает проблемы гораздо лучше, чем обычный контроллер, то... это мы уже проходили со стиральным порошком.

Да и вообще, не надо слепо верить рекламе. Ну, вспомните, хотя бы, чего нам обещал к 2000 году Леня Голубков?

Давайте не будем винить рекламных менеджеров. В конце концов, они просто старательно выполняют свою работу. Если Вы должны решать проблему 2000 года, то это уже Ваша работа. Чтобы ее хорошо сделать, смотрите на рекламу только как на источник информации о существовании того или иного контроллера. Чтобы выбрать хороший контроллер, нужно побывать на фирме, предлагающей его, и поговорить с техническими специалистами. Если таких специалистов нет, или эти специалисты будут утверждать, что контроллер решает проблему с любыми компьютерами, то, может, это и не специалисты вовсе... Иными словами, будьте бдительны!

Я понимаю, что эту статью прочитают и те, кто предлагает контроллеры. Наверное, они после этого произнесут правильную фразу: «Контроллер решает проблему со всеми платами, которые нам встречались». Но утешит ли Вас эта правильная фраза? Сочувствую, но у Вас есть только один путь: купить (выпросить на время, взять под залог и т.п.) один-два контроллера и, засучив рукава, методично пройти с ними описанные выше три этапа тестирования.

И торопитесь. Пока еще «ЕПОС» успевает дорабатывать контроллер для устранения вновь обнаруженных проблем. Но в новогоднюю ночь с этим вопросом будет туго.

Так наступит ли конец света?

Точно не знаю, но если и наступит, то уж не по вине компьютеров.

А вот неприятностей будет много. И поза страуса здесь неуместна. Проблема-то действительно серьезная. Встретимся мы с ней еще до Нового Года. Не будем трогать серьезные вещи: атомные электростанции, железную дорогу и т.п. Возьмем что попроще. Очень во многих фирмах, например, эксплуатируются очень старые бухгалтерские программы. Чаще всего они в принципе не допускают ввод значения года больше 1999, не говоря уже о корректных действиях с датами. А если потребуется занести в базу данных какие-либо сведения, относящиеся к будущему? Даже не к далекому. Январь 2000 года вполне подойдет.

Следующий удар, уже серьезнее, проблема 2000 нанесет в первых числах января. Тогда мы узнаем, наконец, правду о готовности собственно компьютеров к 2000 году. Может быть, это быстро и легко решаемый вопрос, но ведь он возникнет у всех в один день! Сможете ли Вы быстрее других решить его в январе? Да и по поводу легкой решаемости вопроса. Я знаю только один действительно надежный способ технического решения проблемы 2000 года: выдернуть шнур компьютера из розетки. Все другие способы требуют обязательного выполнения трех шагов: тестирование, тестирование и еще раз тестирование. Иначе можно и не успеть.

Я понимаю, наша бедность и наш менталитет не позволяют нам тратить ни копейки на предотвращение катастрофы. У нас есть деньги только на устранение ее последствий. Но ведь беда-то общая. Не думайте, что не решив у себя проблемы, Вы поставите под удар только себя. В нашем мире все взаимосвязано. Не трогая почту, телеграф и телефон, приведу пример более близкий. Представьте себе крупную оптовую базу. Идет непрерывная выписка счетов, накладных и т.п. Из-за неготовности компьютеров к 2000 году этот процесс может нарушиться. И что? Бог с ними, с потерями владельцев этой базы. Но ведь на рынок поступит меньше товаров, значит и цена поднимется. А за что мы-то, не имеющие вообще компьютеров, должны страдать?

И таких примеров взаимосвязи можно привести множество. Проблема будет еще долго давать о себе знать. Так что если Вы ночью спите хорошо, то, наверное, просто еще не поняли проблемы 2000 года.


Поделиться информацией