А ВЫ ГОТОВЫ К 2000 КОМПЬЮТЕРНОМУ ГОДУ?

Кандидат технических наук А. КОЛЕСОВ, обозреватель компьютерного еженедельника PC Week/RE ("Компьютерная неделя/Россия").

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

В Интернете на сайте www.millenium.ru был проведен конкурс "Эмблема Третьего Тысячелетия". Несколько работ его участников иллюстрируют статью о проблеме 2000 года. Все эмблемы можно увидеть по Веб-адресу www.millenium.ru/project/komitet/galery.htm.
Наука и жизнь // Иллюстрации
Наука и жизнь // Иллюстрации
Наука и жизнь // Иллюстрации

В дискуссии на тему Y2K можно выделить два полюса мнений. На одном из них царит убеждение, что это действительно серьезная проблема, грозящая многочисленными бедами человечеству, а на другом - не менее стойкая уверенность, что весь вопрос искусственно раздут компьютерщиками и другими заинтересованными лицами, чтобы выкачать из пользователей побольше денег. На самом же деле истина, как обычно, лежит где-то посередине. А может быть, даже несколько в другой стороне. В целом проблема Y2K - довольно типичная задача по текущему сопровождению и модернизации информационных систем. При всей своей глобальности она не уникальна. Можно вспомнить, например, о грандиозной модернизации экономических программ в России в 1997 году в связи с деноминацией рубля и преобразованием банковских планов счетов. В Европе была проделана огромная работа по переходу на евро. И все это выполнялось без шумихи, сопровождающей Y2K. Так что никаких обещанных катаклизмов, скорее всего, не будет.

Приведем пример типичного "доказательства" значимости "проблемы-2000". В одном известном периодическом издании сообщалось, что в США зафиксирована первая ошибка, связанная с Y2K, - был выписан неверный счет на оплату автомобиля, где перепутаны года 2000 и 1900. Однако в США ежедневно выписываются миллионы (скорее, десятки миллионов!) счетов в день. Среди них, естественно, встречаются ошибочные, в том числе из-за разнообразных сбоев техники и ошибок персонала. Если за день происходит даже тысяча таких ошибок - процент все равно получается небольшой. Если же, действительно, как пишет автор, встретилась первая ошибка в выписке счета, связанная с проблемой Y2K (одна из сотен тысяч других ошибок!), то это означает лишь одно: данная проблема далеко не самая главная в вопросе надежной работы вычислительных систем.

Что делать домашним пользователям

Для начала напомним очевидную для опытных компьютерных пользователей истину: о надежной работе компьютера необходимо заботиться постоянно, а не только в преддверии нового года. Ведь компьютер - как любая сложная система - изначально подвержен риску появления неисправностей. При этом компьютер принципиально отличается от бытовой техники тем, что в ходе работы на нем накапливается ваша уникальная информационная база. Если вы активно проработали на своем компьютере хотя бы год (писали статьи, делали курсовые работы, выполняли какие-то расчеты, обрабатывали фотографии), и вдруг, не дай Бог, случается какая-либо неисправность, обнаруживается, что самое ценное в компьютере - не техника, а ваша информация, сформировавшаяся в результате десятков и сотен часов творческой работы.

Большинство домашних пользователей компьютеров вообще не заметит наступления нового года (с точки зрения вычислительных проблем). Однако для собственного спокойствия все же стоит заранее убедиться в готовности вашего ПК к 2000 году.

Три источника, три составные части Персонального Компьютера

Начнем с того, что понятия "компьютер" и соответственно "надежность компьютера" весьма условны. Работая на ПК, вы используете некоторые прикладные программы (игры, текстовые и графические редакторы, броузеры). Прикладные программы, в свою очередь, выполняются в среде некоторой операционной системы (сегодня чаще всего Windows, реже DOS), которая уже имеет дело с самим компьютером, точнее, с процессором и через него со всеми остальными техническими узлами.

Так что, если у вас произойдет сбой во время работы в текстовом редакторе, попробуйте ответить на вопрос: к кому нужно обращаться с претензиями - к сборщикам ПК, разработчикам ОС или создателям прикладной программы? Готов уверить вас, что будет очень трудно выяснить и тем более доказать, кто из них конкретно виноват в возникновении сбоя. Кстати, вполне возможно, что в этом виноваты вы сами - например, из-за неверной установки программ или дополнительных устройств.

Однако вопрос защиты прав потребителей - это отдельная большая тема. Здесь важно отметить лишь то, что для обеспечения надежной работы вашего компьютера, и в частности для проверки его готовности к 2000 году, нужно четко разделить "компьютер" на три логические компоненты: техника (системный блок), операционная система и прикладные программы.

Проверка Операционной системы

У абсолютного большинства домашних пользователей дома стоит компьютер на базе процессоров x86. Последние в ряду этого семейства - Pentium II/III, Celeron (производитель Intel), K6, Athlon (компания AMD). На них в 99,9% случаев установлена операционная система Microsoft Windows (NT 4.0, 98, 95 или 3.1), разработанная на базе классической MS-DOS.

Распространено мнение, что персональные компьютеры обеспечивают хранение только двух последних цифр года. Связывают это с тем, что на заре вычислительной эры машинам не хватало памяти, и ради ее экономии программисты применяли всевозможные способы сокращенного обозначения часто повторяющихся параметров и в частности усечение первых двух цифр в обозначении года. Вероятно, это действительно имело место в каких-нибудь особо "древних" операционных системах. Однако сейчас большинство из них представляет лишь исторический интерес. Поэтому остановимся на архитектурной линии Microsoft, доминирующей сегодня в области компьютеров (по крайней мере для домашних пользователей). Так вот: еще в самой первой версии MS-DOS, появившейся в 1982 году, было предусмотрено хранение года в диапазоне с 1980 по 2099 год (начало отсчета - 1980 год). Последняя ошибка с ведением календаря была выявлена и устранена в 1984 году в версии MS DOS 2.1, появившейся в начале 80-х годов. Ошибка была связана не со счетчиком года, а с определением дней недели в високосном году. В MS-DOS наряду с полноформатным четырехзначным вводом даты (19.10.1999) для удобства пользователя предусматривался и сокращенный двузначный ввод (19.10.99).

Таким образом, никаких проблем с текущей системной датой в операционных системах уже давно нет - вплоть до 2099 года. А все спекуляции на эту тему (типа "Windows 95 не очень готова") сводятся к следующему вопросу: как интерпретировать двузначное обозначение года? Во всех ОС до Windows 95 включительно при вводе двух знаков автоматически прибавлялись "19" и в результате из "12" получалось "1912". Однако едва ли можно отнести это к серьезной проблеме - установку даты мы выполняем не так часто, можно ввести и четыре цифры.

В Windows 98 Microsoft сделала "революционное" (лучше скажем, тривиальное) усовершенствов ание, введя понятие "логического столетия", которое по умолчанию установлено в диапазоне 1930-2029. То есть, числа 0-29 будут автоматически отнесены к 21 веку, а 30-99 - к 20-му. При этом пользователь может сам менять границу между "столетиями" в окне "Панель инструментов|Время и Дата".

Для работы собственно с Windows эти возможности не слишком актуальны, но для прикладных программ, использующих описанные выше принципы ввода даты, они могут быть весьма полезны.

Проверка системного блока

Проблема с системным блоком заключается в наличии двух механизмов, отвечающих за правильность ведения календаря. Когда компьютер включен, отсчет часов и даты выполняет специальная микросхема, по старинке называемая BIOS (Basic Input-Output System - базовая система ввода-вывода), хотя ее функции уже давно вышли за пределы функций ввода-вывода. Операционная система вообще не занимается часами - она только читает их значение из BIOS или записывает туда новое, по желанию пользователя.

Так вот, в работе самой BIOS вас не ожидают никакие проблемы. Вопрос в другом: откуда BIOS получает начальное значение времени в момент включения ПК?

В первых моделях ПК, включая IBM PC XT (выпускались до 1988 года), по умолчанию устанавливалась дата 01.01.1980, которую пользователю приходилось корректировать вручную при каждой загрузке компьютера.

Начиная с модели IBM PC AT (процессор i286), появившейся в середине 80-х годов, в состав BIOS входит специальный блок памяти (CMOS) для хранения набора параметров, которые управляют режимами работы BIOS. Внутри CMOS есть встроенные электронные часы, которые работают постоянно, в том числе и при выключенном ПК, питаясь от специального аккумулятора. Именно их значение устанавливается в программных часах BIOS при включении ПК.

В первых модулях CMOS, выпускавшихся до 1994 года, действительно есть ошибка: после 1999 года дата автоматически сбрасывается в 1900 год, а при запуске ПК BIOS переводит ее в 1980 год. Решается эта проблема элементарно - нужно вручную ОДИН РАЗ установить 2000 год, и дальше все будет работать нормально.

Проверить правильность работы CMOS можно с помощью простой процедуры тестирования.

Тест 1. Проверка системных часов BIOS

1. Перед началом тестирования подготовьте архивные копии своих данных (подробнее об этом мы еще расскажем). Если ваш ПК подключен к какой-то локальной сети - отключите сетевой кабель (это не относится к телефонному шнуру в модеме).

2. Загрузите свой ПК в режиме DOS. Лучше всего используйте для этого загрузочную дискету (а заодно проверьте, не забыли ли вы ее сделать и работоспособна ли она). Если вы попали в Windows 3.x, завершите сессию Windows. При работе с Windows 95/98 необходимо перегрузиться в режиме DOS (или прервать процесс загрузки, нажав клавишу F8, и выбрать в меню режим Safe Mode).

3. С помощью двух DOS-овских команд date и time установите "предкритическую дату":

date 12-31-99 time 23:58

(дата имеет формат мм-дд-гг, который принят для команды date).

4. Через три минуты с помощью команд date и time (без параметров) проверьте время и дату. Если вы увидели дату типа "Sa, 01.01.2000" (с точностью до формата представления данных в различных национальных версиях) и время - первые минуты после полуночи, это значит, что BIOS (и ОС) работает нормально.

Тест 2. Тестирование часов CMOS

Повторите предыдущий тест, но только после шага 3 выключите ПК и включите его через три минуты (в новом году!). Проверьте дату: если она попала в 2000 год, то электронные часы вашего компьютера также работают нормально.

Если же вы увидите какую-то другую дату, то введите самостоятельно 01.01.2000 командой date и выключите компьютер. Затем включите его и еще раз проверьте дату. Если вы увидите 1 января 2000 года, значит, проблема решается очень просто - при первом включении ПК после нового года (обратите внимание: даже если ваш компьютер был включенным ровно в полночь!) нужно самостоятельно откорректировать дату, но только ОДИН РАЗ.

Чтобы убедиться в беспочвенности страшилок о разных других критических датах (10.01.2000, 29.02.2000 и прочих), можете проделать приведенные здесь тесты применительно к ним.

При завершении тестирования не забудьте восстановить текущую системную дату.

Что делать, если тесты выявили проблемы

Это говорит о том, что у вас либо просто дефектный компьютер, либо очень древний. В первом случае (если вы его купили два-три года назад) нужно обратиться с претензиями к продавцу, во втором - подумать о замене ПК, по крайней мере его системной платы (толку от такого компьютера все равно мало, независимо от правильности работы часов).

Но даже с этими дефектами можно работать.

Если у вас не прошел тест 1 (что представляется просто невероятным), то понадобится ручная установка даты в начале каждого года или каждый день.

Если не прошел тест 2, то придется устанавливать дату при каждом включении ПК (или не выключать его). В конце концов, потратить на эту операцию 10 секунд в день - не так уж много.

Можно просто установить дату 01.01.99 и прожить 1999 год еще раз. Но это не очень хороший вариант, так как вы просто запутаетесь в старых и новых файлах. К тому же у вас могут появиться проблемы с общением по электронной почте - телекоммуникационные системы будут автоматически вылавливать и удалять ваши письма как "очень старые".

Если после проведения тестов у вас все же останутся сомнения в правильности работы системных часов в 2000-м и последующих годах, воспользуйтесь специальной программой, которая будет следить за этим при каждом включении компьютера. Программ таких существует великое множество, одну из них - утилиту TestDate - можно найти по Web-адресу: http://www.visual.2000.ru/y2k/. Там же находятся ее описание и правила подключения к системе.

Проверка прикладных программ

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

1. Обратитесь к продавцу программного продукта (или производителю) с вопросом о его готовности к 2000 году. Перепроверьте эту информацию у независимого эксперта. Если в программе есть ошибка, то разработчик всегда сообщит о ней. Проблема в другом - под совершенно пустяковым предлогом продавец может попробовать уговорить вас купить обновление, которое вам в действительности не нужно.

2. Проверьте, поддерживает ли данная программа четырехзначное представление года при вводе-выводе. Может быть, вы привыкли работать с двузначным форматом и даже не догадываетесь о существовании расширенного варианта. Проверьте, по какому алгоритму программа производит преобразование двузначного формата в четырехзначный (см. раздел "Операционная система").

3. При тестировании на новую дату используйте для хранения тестовых данных (файлов) специально созданный каталог на диске, чтобы после тестирования аккуратно удалить их. Смешивание реальных и тестовых данных вам помешает в дальнейшей работе. Если проверку можно проводить только при наличии уже существующей базы данных (например, в бухгалтерской системе), сделайте отдельную копию, на которой и проводите эксперименты.

О чем нужно помнить и после 2000 года

Постоянно следите за сохранностью данных на вашем ПК, которая достигается простой операцией - периодическим созданием резервной копии. Копировать нужно не программы (копии которых у вас уже наверняка есть, в любом случе их можно еще где-то найти), а именно ваши данные. Чтобы упростить эту процедуру, следуйте простому правилу: храните программы и данные в разных местах. Например, выделите для хранения данных отдельный логический диск. Вы увидите, что эта информация не очень большого объема, но ценность ее для вас - чрезвычайно высока.

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

Итак - с новым, 2000 годом! Успешной вам работы на компьютере в новом и последующих годах.

См. в номере на ту же тему

А. ШИШЛОВА - Y2K и прочие "баги".

Проблема 2000 года и законы Мерфи

А. КОЛЕСОВ - Работа с календарем требует особого внимания.

Другие статьи из рубрики «Человек и компьютер»

Портал журнала «Наука и жизнь» использует файлы cookie и рекомендательные технологии. Продолжая пользоваться порталом, вы соглашаетесь с хранением и использованием порталом и партнёрскими сайтами файлов cookie и рекомендательных технологий на вашем устройстве. Подробнее