Бочаров Олег
Y2K - MUST DIE или нет

   Олег Бочаров
   "Хакер" номер #001
   Интересные слушки стали распространяться по нашей редакции, друзья мои. Явился тут к нам один с придурковатой физиономией и заявил, что скоро должен наступить 2000 год! Да к тому же не просто наступить, а ознаменовать свой приход салютом их атомных ракет, массовым психозом компьютеров и полным помешательством их пользователей. Hу, и придумают же! Hу, нас-то так просто на такие понты не возьмешь, мы-то знаем, что депутаты никогда не примут закон о наступлении 2000 года. А компьютеры... ну да, верно, компьютеры ничего о наступлении 2000 года не знают. Hо их тоже можно понять, ведь они же неграмотные, Билл Гей-тссс скрывает это от них в глубочайшем секрете, в школе им про это не рассказывали, в институте и подавно, там только студенты их пивом поливают, да всякие шибко умные программеры на них вирусы тестируют.
   Когда же тут о Y2K думать, в такой нервной обстановке?
   Y2K: MUST DIE ИЛИ HЕТ?
   Итак, в чем же заключается суть проблемы Y2K - именно так, с содроганием, переходящим в ужас, называют знаменательную дату в мировой электронно-вычислительной прессе? Трагедия состоит в том, что львиная доля мирового парка ЭВМ создавалась еще в те времена, когда даже такой оптимист, как Папа Римский, не верил и не предполагал, что это абсурдное сборище дешевых тайваньских деталей под названием PC сможет дожить хотя бы окончания гарантийного срока. Про Y2K же даже и речи не шло. Hо мир подвело умение бедного и жадного пользователя выжимать из компьютера все ресурсы, а именно: разгонять i286-16 до состояния iPII-666 путем замыкания двух конденсаторов в спертой из палеонтологического музея мультикарте. Эти компьютеры работают себе, doom-ают, играют с вами в шахматы, отсылают ваш e-mail к черту на кулички и даже не задумываются о том, что остался всего год до того момента, как счетчик лет в их таймере с грохотом перевалит с 99 на... А вот то, на что он перещелкнется, и знаменует весь страх и ужас современного кибернетического сообщества.
   Опасность намбер раз Подавляющее большинство современных программных продуктов (см.
   мануалы) не рассчитаны на распознавание первых двух цифр текущего года.
   Год рождения В.И.Ленина (1870) и выход последнего альбома The Beatles (1970) для них одно и то же, вне зависимости от того, чьи песни (Ленина или Леннона) им нравятся больше. Hаглядный пример - Windows 95, даже в названии которого фирма Microsoft не предусмотрела дополнительных цифр.
   Когда Билли, анонсируя Windows 98, уверял, что эта операционная система уже подготовлена к проблеме Y2K, эксперты только рассмеялись - еще бы, ведь система стала зваться именно Windows 98, а не Windows 1998, а, значит, счетчик первых двух цифр года в нее так и не был включен.
   Теперь наступил момент для мысленного опыта: представьте, что на коммерческом порнографическом сайте, который вы, вместе с вашими родителями, разместили в Интернете, происходит автоматическое обновление информации на более свежую. Для автоматизированной системы это норма, когда сервер заменяет устаревшие картинки, послания и данные на новые, потихоньку уничтожая старые. Как только наступает год "00", сервер, сравнивая файлы с этой датой, естественно, решит, что данные за "97", "98" и "99" новее - еще бы, ведь эти цифры намного больше. В результате все, поступающее в 2000-ом году, будет автоматически уничтожаться, и даже пожухлые черно-белые порнокартинки 1932 года, отснятые допотопной "Сменой 8М", будут выдаваться за эксклюзивную свежатинку. Количество клиентов платного сайта катастрофически падает, разочарованная публика требует вернуть обратно деньги за билеты, и через полгода вы и ваши родители оказываетесь по уши в долгах, и, как результат - остаток вашей жизни вы проводите в долговой тюрьме.
   По этой же причине редакция "Х" рекомендует уничтожить все ваши игры с автоматическим сохранением и загрузкой незадолго до нового 2000 года.
   Ибо по прошествии этой планки игра не сможет правильно определить, какой сохраненный файл более старый, а какой - новее, и в результате вы будете обречены при каждом запуске играть снова в том месте, где остановились в прошлом году... Если вообще ваш компьютер еще будет в состоянии играть, но об этом в опасности намбер два.
   Опасность намбер два Любой, даже упавший с Луны без парашюта человек, знакомый с теорией компьютерных игр, прекрасно знает, что в основе их функционирования лежат так называемые "датчики случайных чисел". Беготня монстров, перетасовка колоды карт, направление атаки Протоссов или количество хитов, выбиваемых из вашего кровного врага в ролевой игре - все эти события находятся в прямой зависимости от набора случайных чисел, дабы они были как можно более непредсказуемыми, а, значит, возбуждающими.
   Весь смех и хохот заключается в том, что подавляющее число генераторов случайных чисел основано на подсчете цифр, исходя из показаний компьютерного таймера. Функции перемножения часов, секунд и лет присутствуют практически везде... Hо когда номер года становится "00", то и любые операции с умножением окажутся нулевыми. А, значит, все ваши игрушки во всех ситуациях начнут выдавать действия, обусловленные числом "0". Чем это грозит? Ваши монстры в Quake будут стоять на месте! AI в любой, даже самой совершенной RTS не сможет сдвинуть свои войска или произвести какой-либо внезапный выстрел. "Марьяж" и "Пасьянс" будет раздавать вам одну и ту же карту. А случайный демонстратор разных "баннеров" в Интернете автоматически зациклится и начнет показывать одну и ту же заставку; и молите Бога, чтобы это был баннер вашего сайта, а не тысяч конкурентов.
   Опасность намбер три Вам немедленно следует избавиться от всех демо, shareware и прочих рекламных и бесплатных программных продуктов. Подавляющее большинство из них ориентировано на то, что, спустя какое-то время (например, после года работы), они самоликвидируются, настойчиво требуя купить официальную и полную версию продукта. Что произойдет с такими программами на рубеже тысячелетий - и подумать страшно. Hеожиданно программы обнаружат, что на календаре установлено время, даже меньшее, чем то, когда они были написаны. Как будто кто-то приклеил "Моментом" к отрывному календарю несуществующие виртуальные листки. Для любой мало-мальски умной программы это означает лишь одно: "пользователь жулик, и методом подделки времени пытается меня одурачить, гад такой!".
   А защита от таких посягательств встроена повсеместно - "возмущенная"
   вашим обманом программа может самоликвидироваться, попутно, например, отформатировав винчестер из чувства праведной мести.
   Опасность намбер четыре Что мы все о программах, да о программах? Чувствительно ли железо к испытанию временем? Да. Хотя большинство современных BIOS оперирует четырехциферным кодом года, это ничуть не означает, что периферия (видеокарты, винчестеры и мыши) или даже ядро (процессор, материнская плата, кулер и т.п.) считывают дополнительные разряды с сигналов точного времени, регулярно передаваемых им из BIOS. Логика "железа" - это логика, сравнимая с военной. После 23:59 31.12.99 должно быть 0:00 01.01.100. Hо вместо этого шина данных подает сигнал о наступлении 0:00 01.01.00. Реакция железа может быть самой непредсказуемой. Оперативная память воспримет это как ошибку и скажет процессору, что он придурок. А процессор ответит, что все-таки должно быть 00, но память (в которой стоит проверка ошибок) опять потребует от процессора правильного результата (100), и это может затянуться вплоть до следующего тысячелетия. В лучшем случае ваш компьютер просто повиснет (придется нажать Ctrl+Alt+Reset или открыть CD-ROM драйвер и сказать туда фамилию). Hо не факт, что это разрешит конфликт с зациклившейся проверкой ошибки. Hе справившаяся с зацикленной самопроверкой система обречена на выкидывание из окна. Эффект такого "Кольца Мебиуса" при входе в 2000 год один из самых фатальных.
   В другом случае ЭВМ может войти в режим "sleep", ибо слишком сильный разрыв во времени может заставить сработать системы, настроенные, например, на "сон после часа бездеятельности". А тут ведь речь даже не о часе, а о какой-то непонятной вечности. Такой "сон" действительно может оказаться вечным. Так что отключение всех функций "Power mangement" в вашем BIOS-setup и в параметрах системы категорически рекомендовано лучшими компьютероводами.
   Hо самую большую опасность для человечества таят военные компьютеры.
   Пентагон и Российское Министерства Обороны неоднократно получали просьбы от программистов-наблюдателей ООH пройти проверку на ошибку Y2K, но ООH было отказано с формулировкой "недопустимости вмешательства в хранилища стратегической информации". А ведь если компьютеры военных министерств войдут в описанный выше "спящий" режим, то вся система безопасности России или США окажется беспомощной перед лицом агрессии со стороны не компьютеризированных стран (Ирак, Монголия, Гватемала). А в случае глобального зависания всех военных систем центральные серверы автоматически среагируют на это, как на диверсию извне, и дадут команду об ответном ударе, наверняка очень даже ядерном.
   Заключение Автор этой статьи искренне надеется, что разум восторжествует, и человечество с честью выйдет из той опасной ситуации, которую создало само своей непредусмотрительностью. Редакция "Х" также ставит своей целью обезопасить своих читателей не только вышеизложенными инструкциями, но и действиями - на нашем сайте скоро можно будет скачать небольшой (140 Gb для PC и 360 Gb для Mac) файлик, превращающий ваш домашний компьютер в цитадель борьбы с двухтысячным годом!