Бочаров Олег
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еожиданно программы обнаружат, что на календаре установлено время, даже меньшее, чем то, когда они были написаны. Как будто кто-то приклеил "Моментом" к отрывному календарю несуществующие виртуальные листки. Для любой мало-мальски умной программы это означает лишь одно: "пользователь жулик, и методом подделки времени пытается меня одурачить, гад такой!".