Проблема 2000 года компьютеры

Обновлено: 03.07.2024

Благодаря панике одни стали прислушиваться к программистам, а другие заработали на страшилках.

В конце девяностых годов мировое общество боялось наступления 1 января 2000 года. Эксперты и ИТ-специалисты полагали, что из-за бага электроника может автоматически перевести дату на 1900 год, что вызовет сбои во множестве систем.

Предрекали всё: от краха банков и отключения электросетей до падения самолётов и пусков ракет — и это на фоне наступления «миллениума», который сам по себе вызывал страх у параноиков.

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

Ещё в 50-60 годах программисты использовали только последние два знака для обозначения года в датах, например, 14.08.57 вместо 14.08.1957. Это позволяло сэкономить и так небольшую память компьютеров, которые читали код с перфокарт.

Программы должны были быть компактными и эффективными, и на тот момент было достаточно, что цифра 57 обозначает 1957 год — другие века компьютеры не понимали.

Со временем мощность вычислительных систем росла, появились жесткие диски и дискеты для хранения данных, но большие объёмы памяти оставались слишком дорогими: в 1980 году 1 ГБ стоил более $6 млн, в 1990 году — около $100 тысяч.

Поэтому в ход шла оптимизация: код в вычислительных системах не переписывали — ведь до 2000 года было ещё далеко, объём баз данных продолжал расти, а новые приложения должны были быть совместимы со старыми.

Таким образом ограничение в два символа на запись года сохранялось десятилетиями и распространилось практически на всё, что имело внутри микропроцессор, включая самолёты, заводы, спутники и электростанции.

В 1978 году программист IBM Питер де Ягер задумался: «А что случится 1 января 2000 года? (01.01.00) Компьютеры определят дату как 1900 год или не распознают её вообще и начнут неверно обрабатывать данные?».

Любой основанный на дате расчет окажется некорректным — например, финансовые документы, решил он.

Ещё одна попутная проблема с переходом даты — 2000 год был високосным (делится на 400), а 1900 — нет, поэтому в случае перевода часов на 1900 год «потеряется» 29 февраля: после 28 февраля в системе наступит 1 марта.

Ягер поделился беспокойством с боссом, но в ответ получил лишь насмешку.

Ты беспокоишься о проблеме, которая не наступит ещё 22 года? Расслабься, к тому времени кто-нибудь это уже исправит.

В канун Нового года 1990-го Ягер сам столкнулся с ошибкой. Он проверил, что будет, если перевести время на 31 декабря 1999 года — и в итоге из строя вышла система IBM PROFS. Она использовала для обозначения года один символ и сбросила дату.

Из любопытства я установил на компьютере дату на 31 декабря 1999 года незадолго до полуночи, выключил его, подождал несколько минут, включил и взглянул на время. На часах был 1984 год — и тут я занервничал.

В 1993 году Ягер написал статью о проблеме 2000 года в Computerworld, крупнейшем ИТ-журнале того времени. Редакция озаглавила статью «Судный день 2000» — поначалу программиста высмеивали, но по мере приближения середины девяностых проблема привлекла всеобщее внимание.

New York Times назвала Ягера «городским глашатаем 2000 года» — рассказы про «ошибку 2000» и поиск путей её исправления стали его основной задачей и заработком.

Во второй половине девяностых годов проблемой стали вплотную заниматься на корпоративном и межгосударственном уровне.

Например, бывший президент США Билл Клинтон в 1998 году создал совет по борьбе с ошибкой, её опасность обсуждали на саммите «Большой восьмёрки» в том же году. В 1999 году ООН открыл международный кооперативный центр решения проблемы, а США и Россия — «центр стратегической стабильности», чтобы предотвратить случайные ракетные атаки друг на друга.

Компании же создавали отдельные группы инженеров и аналитиков, проводили стресс-тесты, обновляли и меняли оборудование и ПО, тратя на это десятки и сотни миллионов долларов.

Большая часть из них решила модернизироваться и обезопаситься собственными силами, а не нанимать аутсорсеров или «программистов-пенсионеров», знакомых с устаревшим софтом, пишет CNET.

Банки и финансовые организации на случай сбоя подготовили наличность — например, Федеральная резервная система США напечатала бумажных денег на $70 млрд, на случай, если жители страны решат снять свои вклады.

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

Аналитическая фирма Gartner оценивала глобальные расходы на подготовку к 2000 году в $300 млрд, а Питер де Ягер — в $600 млрд.

В США потратили на профилактику и исправление около $100 млрд, из которых $9 млрд — правительство, а остальное — банки, авиакомпании, телекоммуникационные компании и другие корпоративные структуры.

В середине 1997 года Chrysler на время закрыла сборочный завод в Мичигане, перевела часы на 31 декабря 1999 года — и получила «множество сюрпризов», рассказывал глава компании Роберт Итон.

На заводе отключилась система безопасности, которая заблокировала двери — никто не мог выйти или войти. А из-за сломанных часов людям не могли выплатить зарплату за отработанное время.

Де Ягер утверждает, что некоторые банки тратили на обновление инфраструктуры до $100 млн. AT&T в конце 90-х на проблему выделяла по $500 млн ежегодно, что не нравилось её гендиректору Майклу Армстронгу. Он заявлял, что команда по решению проблемы 2000 года «умудрялась превысить даже безграничный бюджет».

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

Крупные компании требовали от поставщиков подтверждения, что их сервисы и компьютеры безопасны — и заставляли брать на себя ответственность, если что-то случится, пишет How to Geek. Многие организации выбрали «экстренное» исправление, которое обманывало ПО и «отодвигало» начало 21-века, пишет New York Times.

«Проблема 2000 года» породила около 400-600 стартапов — из них 200-300 в США. Они продавали услуги консалтинга, исправления или обновления ПО, тестирования, отладки, инвентаризации и планирования — на случай непредвиденных обстоятельств, вызванных ошибкой. Было написано около 300 книг и выпущены десятки наборов для ремонта ПК.

Пик стартапов пришелся на 1998 год — к 1999 году большинство крупных фирм уже справилось с ошибкой. Например, выручка раннего «лидера» на рынке услуг «2000 год» Peritus Software Services снизилась на 63% — с 5,3 млн в третьем квартале 1998 года до $1,96 млн годом позже. А её акции стоили всего $0,08.

Продавцы корпоративного ПО сыграли на страхе и продавали как ненужные программы, так и консультационные услуги, утверждает программист Крис Уэстон, исправлявший «ошибку 2000» в девяностых годах.

Клиенты Gartner в 1996 году потратили 5% бюджета на ИТ «на ошибку 2000», в 1998 году — от 15 до 30% бюджета, а в 1999 году — 30-40%, заявлял глава по исследованиям компании Дейл Веккьо.

Популяризатор проблемы 2000 года Питер де Ягер стал «народным героем», писал New York Times. Он проводил конференции, консультировал компании, читал лекции на собрании руководителей крупнейших банков в Швейцарии, свидетельствовал перед Конгрессом США и зарабатывал на своём имени.

Только в 1998 году заработок де Ягера составил $1,5 млн, стоимость его часового выступления выросла с $4 тысяч до $10 тысяч. Его блог — центр новостей о проблеме — посещало 600 тысяч человек в месяц, в среднем он давал более пяти интервью в день.

А американская биржа в марте 1997 года запустила индекс акций компаний De Jager Year 2000, который «позволял управлять рисками, связанными с проблемой 2000 года».

Для компьютерного и офисного оборудования проблема смены тысячелетий заключается в возможной неверной работе модуля Real Time Clock (RTC, Таймер Реального времени), который отвечает за изменение даты и времени, использующегося при работе системы, например, при записи файлов на диск.

Проблема с RTC состоит в том, что изменяются только две последние цифры в написании года, а цифры, указывающие на значение текущего тысячелетия, не изменяются. Хотя модуль и поддерживает все значения, он не поддерживает переход от одного тысячелетия к другому. В результате, когда часы покажут 00:00, 1 Января, 2000 года, системный таймер не сможет переключиться с 1999 года на 2000 , а перейдет с 1999 на 1900 , так как изменяются только последние две цифры.

Непредсказуемым и опасным эффект от этой ошибки может стать потому, что и сама система и все программы работают с учетом того, что время может двигаться только вперед, что естественно, а не назад!

Истоки проблемы 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 года?

Но можно обойтись и без специальных тестовых программ.

Проверка ОС

  1. Для выполнения теста желательно загрузить операционную систему до монитора командной строки без каких-либо драйверов и резидентных программ, а также отключить компьютер от локальной сети.
  2. С помощью команд date и time (или предназначенных для этого команд вашей ОС) установить системную дату на 31 декабря 1999 года, а время — на 23:59 (для DOS и Windows это команды date 31-12-1999 и time 23:59).
  3. Проверить правильность установки даты и времени (для DOS и Windows это те же команды без аргументов).
  4. Подождать более одной минуты.
  5. Проверить системную дату еще раз. Если она соответствует 1 января 2000 года, то ваша ОС не имеет "ошибки 2000 года".

Проверка BIOS

  1. Войти в BIOS Setup (здесь надо отметить, что имеется в виду программа Setup, располагающаяся в ПЗУ BIOS, а не внешняя, запускаемая из операционной системы. Если запущена последняя, то на результат теста может влиять сама ОС).
  2. Установить дату на 31 декабря 1999 года и время на 11:59PM (в большинстве BIOS формат времени и даты соответствует американскому).
  3. Подождать более одной минуты, наблюдая за изменением даты. Если она корректно меняется на 1 января 2000 года, то ваша BIOS не содержит "ошибки 2000 года".

Проверка аппаратного таймера (RTC)

  1. Войти в BIOS.
  2. Установить дату на 31 декабря 1999 года и время на 11:59PM.
  3. Выйти из программы Setup с сохранением установок. Выключить компьютер. Подождать более одной минуты, включить компьютер и, не допуская загрузки ОС, войти в BIOS Setup.
  4. Если дата установлена на 1 января 2000 года, то аппаратный таймер вашего компьютера не содержит "ошибки 2000 года".

Проверку можно выполнить и для других "опасных" дат.

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

Есть ли еще критические даты?

  • 08.09.1999 — 09.09.1999,
  • 09.09.1999 — 10.09.1999,
  • 31.12.1999 — 01.01.2000,
  • 28.02.2000 — 29.02.2000,
  • 29.02.2000 — 01.03.2000.

Решение проблемы 2000 года

С точки зрения аппаратной части PC проблема 2000 года решается довольно просто. Если микросхема RTC не использует полный формат записи значения года, но при этом BIOS поддерживает запись в полном формате значения года и поддерживает переход из 1999 в 2000 год, то потребуется всего лишь единовременная коррекция даты. Все современные версии BIOS производят такую коррекцию автоматически.

Производителей 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 BIOS

Phoenix 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. Опять таки, использование такого оборудования в быту, даже на стыке столетий, вряд ли может вызовать какие-либо серьезные последствия, однако неподготовленное промышленное оборудовании может вызвать прямо или косвенно большие проблемы.

Дополнение

Многочисленными тестами установлено, что RTC старого образца имеет одну существенную погрешность: при переходе от 31 декабря 1999 к 1 января 2000 года значение тысячелетия (хранящееся в ячейке с адресом 32h) остается неизменным (19 вместо 20). Все современные BIOS умеют корретно отрабатывать данную ситуацию, и в случае использования программ, которые получают значение даты, используя прерывания BIOS, данная проблема не дает о себе знать. Тем не менее существует потенциальная опасность использования программ, которые получают значение даты путем прямого ("аппаратного") чтения значений из CMOS. В результате может быть получено значение года 1900 вместо 2000. Наиболее неприятным является то, что данная проблема возникает только во включенном состоянии компьютера. Если компьютер в момент перехода дат находился в выключенном состоянии, то BIOS при начальном тесте откорректирует данную проблему. Поэтому необходимо тщательно подбирать материнские платы для систем, работающих в непрерывном режиме (например, серверы различного назначения).

  1. Загрузить компьютер в режиме MS-DOS.
  2. Установить при помощи команды date дату 31 декабря 1999
  3. Установить при помощи команды time время 23:59
  4. Запустить программу CMOS.EXE (18 Кб), и в реальном времени наблюдать изменение (или неизменение) значения в ячейке 32h (Century in BCD). При этом в ячейках с 00h по 09h будет отображаться текущее время.

Второй вариант проверки (специальные тесты)

1. Navratyl Software System Inform v0.42c при тесте BIOS отображает наличие "бага" в RTC и способность BIOS'a его корректировать

2. RTCDATE (программа сертификации по Проблеме 2000) проверяет корректность аппаратного перехода по набору дат, отлавливаает "баг" RTC.

На этой странице показываются непроверенные изменения

У этой страницы нет проверенных версий, вероятно, её качество не оценивалось на соответствие стандартам.

. Загорятся реки, взорвутся дороги, калькуляторы превратятся в ядерные боеголовки.

. Из-за не устранённых вовремя ошибок, связанных с «проблемой 2000 года», корпорация Microsoft отложила выпуск Windows 2000 до 1-го квартала 1901 года









Проблема 2000, она же Y2K (Year 2 kilos, то есть год 2 тысячи, иногда транслитерируется на расовый русский как «Удвак») — внезапное выпиливание всех компьютеров в мире, которое ожидалось в первую миллисекунду 2000 года.

Виной тому — жадные программисты прошлого тысячелетия, которые поскупились выделить лишний байт для хранения даты; в результате, 1999 год должен был смениться на 1900 или 19100 [1] , ставя человечество на грань временного парадокса и деления на ноль. Градус добавляли вполне реальные подобные баги в самых разнообразных программах, неоднократно вылезавшие боком.

Предчувствуя глобальную катастрофу и возможный попил бабла, лучшие умы человечества объединились, чтобы дать бой этой напасти. Был разработан хитрый план, отпечатаны более 9000 книг по борьбе с недостающим байтом, а число патчей к различному софту исчислялось миллионами. В результате «проблема 2000» была полностью побеждена, и человечество возликовало. Несколько омрачал радость тот факт, что ни единого разрыва не произошло даже в тех странах, которые с проблемой не боролись, правительственных комиссий не создавали, книг не печатали и патчей не выпускали. И главное, миллиарды денег за новые, проверенно-сертифицированные версии разнообразных маздаёв никому не платили. Но прогрессивным людям недосуг оглядываться на такие мелочи, ведь впереди ещё много трудностей, о разрешении которых нужно начинать думать уже сейчас. Например, проблема 10000, проблема 2100 года (исчерпание EUI-48) или хотя бы 2038.

Содержание

К 2011 году проблема возникла у жадных тайваньцев. Она связана с тем, что в Тайване в официальных целях используется календарь, ведущий отсчёт с 1912 года, поэтому 2011 год по нормальному белому календарю будет соответствовать сотому году по календарю узкоглазому, что могло вызвать проблемы в программах, в которых для хранения дат используются только две цифры, что на самом деле не редкость там. В итоге частный сектор не пострадал совсем, госучреждения же вовремя успели внести поправку на жадность.

Ещё одна люто, бешено ожидаемая ошибка, связанная с инкрементирующим оверлоудом счётчика секунд, прошедших с начала эпохи C. Все программы, использующие 32-разрядное время библиотеки <time.h>, 19 января 2038 в 3:14 удивят юзера кто во что горазд: одни больше не станут запускаться, другие упадут, третьи заглючат, четвёртые покажут 13 декабря 1901 года и лишь немногие продолжат нормально работать.

А разгадка проста: на 32-битных системах тип time_t представляет собой знаковое 32-битное число, которое показывает количество секунд с начала 1970 года, поэтому его максимальное значение равно 2 147 483 647, а добавив к этому числу единицу, мы получим минус 2 147 483 648 из-за переполнения. Если проблема 2000 касалась больше пользовательских интерфейсов, то проблема 2038 затронет внутренние потроха системных программ, так как всякие таймауты и временные интервалы проще считать именно через Unix-время, чем любым другим способом. Это может вызвать уже гораздо более заметный пиздец, особенно если современные 32-битные программы без доработок доживут до того времени. Если не большинство, то заметная их доля написана без учёта проблемы 2038.

С переходом на 64 разряда этот сценарий конца света становится неактуальным (вернее, переносится на 4 декабря 292277026596 года. Это, конечно же, очень всех беспокоит, но ссылку на пока ещё пустой шаблон Проблема_292277026596_года в Википедии уже поставили).

Очевидно, что не только быдла, но и быдлокода без учёта этой особенности over 9000. Да кстати стоит добавить то, что в Windows XP времяисчисление ограничено до 2099 года, следовательно, когда настанет 2100 год, ваш компьютер покажет, что сейчас 1985 год, и вы нахрен в прошлое улетели. Что характерно, ошибка 2100 не исправлена ни в Висте, ни в семёрке и даже не в 8 и 8.1. В Windows 10 таки поправили. Этакая проблема Y21C (Year Twenty-One Hundred, Year Twenty-One Centoes, отсюда и Y21C, C = cento, сто, 100 (ну как K = Kilo, кило, 1000), неправильно Y2K100, Y2K1C, ибо 2100 — Twenty-One Hundred, двадцать одна сотня, но никак не две тысячи сто) актуальна в некоторых версиях Windows. Но актуальна она не только лишь для операционок, но и для программ, использующих и по сей день число года двумя цифрами. Как бы не захотели, после 99-го года (XXI века только!) 100 не будет, будет 00 и программа решит, что снова наступил Миллениум, грубо говоря комп вас вернёт на сто лет назад, в 2000 год, хотя на самом деле наступил новый, XXII век.

2107-й год является последним годом, поддерживаемым файловой системой FAT (включая новомодную проприетарную до мозга костей exFAT). Эта файловая система используется на флэшках, отформатированных под Windows.

20 ноября 2286 количество секунд, прошедших с начала эпохи Си, перевалит за 10 миллиардов. Тогда потребуется уже 11 цифр, чтобы хранить это значение. Соответственно, полетит весь софт, который сейчас тупо проверяет, что таймштапмы содержат 10 цифр. Плюс к этому обломаются все, кто хранит секунды тупо в виде числа в таблице с ограничением в 10 цифр.

Так что если в Новом Году у Вас при взгляде на ГОД на любимых часиках возникнет стойкое ощущение, что явилась Белка и пора бежать сдаваться - не пугайтесь. Баг не у Вас, а у Этой Реальности. И даже скажу больше - Это не баг - это фича!(с)Nokia.

Иногда так бывает, что сутки заканчиваются не в 23:59:59, а в 23:59:60 (либо же в 23:59:58), дабы учесть влияние Луны на скорость вращения Земли. Но увы, не всякое ПО способно корректно переварить лишнюю секунду. Особенно этим грешат прыщесерверы, которые попросту зависают, приводя к локальным пиздецам в банковской и не очень сфере. В последний раз такой пиздец случился в ночь с 31 декабря 2016 на 1 января 2017 года. ЦБ РФ нервничает.

Ещё одна пасхалка в микросхеме таймера (которой можете лично глумонуться над знакомыми в конце февраля) связана с сигналами сброса счётчика дней и инкремента счётчика месяцев. Делается таким образом:

1. Ставим на часах високосный год.

2. Выставляем 29 февраля.

3. Возвращаем реальный год.

Результатом таких нехитрых манипуляций получим то, что часы педантично отсчитают в феврале от 31 до 39 дней, при этом всерьёз считая, что их совсем не глючит и март реально будет позже.

У многих может возникнуть впечатление, что проблема была высосана из пальца и реально никакой угрозы, тем более глобальной, не существовало. Однако следует учитывать местную специфику. Пока в этой стране ударными темпами пытались построить коммунизм к 1980 году и клеили танчики, проклятые капиталисты пытались выкинуть на улицу без выходного пособия существовавший у них уже тогда офисный планктон, внедряя в стране эльфов, Цюрихе, Лондоне и прочих интересных местах, первые банковские компьютеры на базе мейнфреймов. Софт для этих монстров в связи с отсутствием 1С писался на таких интересных языках, как COBOL, MUMPS и прочих радостях гиков, которые большинство современных программистов считают вымершими из-за отсутствия статей про них на хабре.

В этой стране естественный выпил большинства мамонтов отечественного компьютеростроения произошел в начале 90-ых из-за проигрыша зарубежным аналогам в результате естественного отбора. Более того, всеобщее нищебродство оттянуло момент тотальной компьютеризации до того времени, когда 640К памяти уже хватало далеко не всем. Тем не менее банковским ИТшникам пришлось оторваться от сапера, дабы разобраться с ДОСовскими программами, купленными в первой половине 90-ых у благополучно развалившихся наследников советских кооперативов.

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

В игре Metal Gear Solid 2: Sons of Liberty проблема Y2K была обыграна довольно занятно. Патриоты под видом патчей, решающих эту проблему, подсунули всем программы-цензоры, дабы получить полный контроль над информацией.

В винрарнейшей игре SkiFree начиная ровно с дистанции 2000 метров за тобой начинает гоняться снежный человек.

Вот как в январе 1999 года описывал грядущую перспективу журнал Vanity Fair: «Сейчас полночь, 1 января 2000 года. В некоторых городах нет электричества. Банковские хранилища и тюремные ворота раскрыты настежь. Больницы не работают. Многие страны погрязли в беспорядках и революциях. Никто не сможет осознать масштаб последствий до тех пор, пока они не наступят. Несомненно одно: удивительные машины, которые управляют нашей жизнью и упрощают ее, не будут знать, что делать».

Но вот год закончился: часы пробили полночь в каждом часовом поясе по всему земному шару — и почти ничего не произошло.

Много потраченных на подготовку усилий — и примерно столько же истерии. Эта история показала, что на самом деле мы мало что знаем о мощности или хрупкости массивных информационных сетей и еще меньше — о том, что ждет нас в будущем.

«Похмелье для бизнеса»

Все началось полвека назад, на заре компьютерных технологий, когда для хранения информации использовали перфокарты — бумажные карточки размером 8 на 19 см, которые вставляли в вычислительные машины. Память стоила дорого и занимала много места — бесчисленные комнаты в случае с первыми компьютерами. Поэтому количество записываемой информации сводилось к минимуму. Годы решили указывать всего двумя цифрами. Записанные подобным образом однажды, они и дальше вводились в систему именно так.

В 1964 году IBM сделала компьютер необходимым устройством для бизнеса, представив машину System/360. Эти аппараты были сравнительно компактными, но все еще превосходили по размерам холодильники. В них также использовался стандартный двузначный формат года. «Я один из тех, кто виновен в возникновении этой проблемы, — свидетельствовал бывший экономический консультант перед конгрессом в 1998 году. — Я писал эти программы еще в 1960-е и 1970-е годы и так гордился тем, что мне удалось сохранить немного места, не приписывая «19» до точного года». Этим бывшим консультантом был Алан Гринспен, председатель Федеральной резервной системы.

В 1984 году сотрудница страховой компании в Иллинойсе ввела на своем компьютере дату аннуитетного платежа, которая приходилась на начало 2000-х годов. Компьютер посчитал, что это год веком ранее, и вместо расчетов выдал бессмыслицу. Впоследствии она и ее супруг написали книгу «Кризис компьютеров: как предотвратить грядущий мировой коллапс компьютерных систем». Мало кто обратил на нее внимание. Но к концу 1980-х годов сотрудники федерального управления социального обеспечения США обнаружили, что они также не могут рассчитать даты после 2000 года. К 1994 году управление начало анализировать миллионы строк компьютерного кода, чтобы найти решение проблемы. Министерство обороны столкнулось с похожими трудностями и запустило похожий проект. Один из высокопоставленных чиновников министерства как-то сказал: «Если бы мы строили дома так же, как мы разрабатываем программное обеспечение, первый же дятел разрушил бы цивилизацию».

Во второй половине 1990-х годов тревога о грядущих изменениях в датах приобрела массовый характер. Конгресс, как и полагается, начал исследовать вопрос, но не смог принять законопроекты, которые решали бы проблему. В 1998 году Вашингтон наконец приступил к действию: президент Билл Клинтон подписал исполнительный указ о создании совета по решению проблемы 2000 года. Главой совета Клинтон назначил Джона Коскинена, который до этого был заместителем директора управления по административным вопросам и бюджету. Клинтон заявил американцам, что «любую компанию, которая в преддверии Нового года вооружается только шампанским и хлопушками, наутро ждет тяжелейшее похмелье». Крупный бизнес к тому времени уже и сам выделял много денег на профилактические меры для решения проблемы 2000 года. В частности, телекоммуникационная компания AT&T тратила в конце 1990-х годов по $500 млн в год. Гендиректор компании Майкл Армстронг жаловался на команду, занимавшуюся «Проблемой 2000-го года»: «У них был безграничный бюджет, и они все равно ухитрились его превысить».

President's Council on Year 2000 Conversion Chairman John Koshinen at a press conference in December, 1999 in Washington, D.C. · Фото Getty Images

Предсказание Билла Гейтса

Это была золотая эра для IT-специалистов, специалистов по выживанию и особенно христиан последних дней. Консультант по информационным технологиям Питер де Ягер сделал «Проблему 2000-го года» своей специальностью и стал настолько известен благодаря своим выступлениям и семинарам, что американская фондовая биржа запустила индекс акций компаний, связанных с «Проблемой 2000-го года», и назвала его «Индекс 2000 года де Ягера». The New York Times называла де Ягера «Полом Ревиром компьютерного кризиса 2000 года». Оглядываясь назад десять лет спустя, старший вице-президент технического отдела компании Ace Hardware отметил: «Проблема 2000-го года привлекла всеобщее внимание к IT». Директор по инвестициям одной компании, занимающейся бурением на шельфе, согласился: «Это был поворотный момент, одно из лучших времен для IT». Топ-менеджер AMC Computers ностальгически вспоминал: «Мы столько заработали на этом. Многие думали, что эти легкие деньги никогда не кончатся».

Меж тем, незамеченным не остался тот факт, что 2000 год знаменовал второе тысячелетие с рождения Христа и что Откровение можно истолковать так, что смена тысячелетия означает конец времен. Пастор и телепроповедник Джерри Фалвелл объявил, что «с помощью проблемы 2000 года Господь, возможно, пытается привести эту страну в чувство, усмирить ее», «начать возрождение, которое охватит весь мир к восторгу церкви». Он запустил продажи видеозаписи под названием «Руководство христиан по сбою тысячелетия» по $28 за копию и начал запасаться едой и боеприпасами. «Я хочу быть уверен, что смогу убедить остальных не связываться с нами», — объяснял он. Его коллега, проповедник Пэт Робертсон, предупреждал: «Нет сомнения, нас ждут серьезные беспорядки». Ему вторил Джеймс Добсон, основатель христианской организации Focus on the Family: «Нас ждут суровые времена, которые нам придется пережить».

A skeleton crew monitors the National Command Center for Mastercard on January 3, 2000. The center processed 18 million transactions totalling $1.8 billion for the busy New Year’s Eve weekend. No Y2K problems were encountered. · Фото Getty Images

В феврале 1999 года ООН основала международный центр кооперации по проблеме 2000 года. В декабре 1999 года США и Россия создали совместный центр стратегической стабильности 2000 года, чтобы предотвратить случайные пуски ракет или ядерные атаки. Компания из Массачусетса продавала за $89 «Набор для выживания в 2000 году» для индивидуальной защиты, куда входили счеты, фонарик и компас. Но были и оазисы спокойствия. Глава Microsoft Билл Гейтс заявил, что ожидает наступления периода, когда «люди будут обеспокоены всей этой подготовкой, но на самом деле возможные проблемы не вызовут и близко такой паники, о которой говорят».

Новый год

По мере приближения Нового года Федеральная резервная система распорядилась напечатать бумажные деньги на $70 млрд — примерно по $255 на каждого жителя США, на случай, если вкладчики массово решат забрать деньги из банков. Chase Manhattan Bank создал 27 координационных центров, чтобы круглосуточно следить за своей сетью. Citigroup открыл центральный координационный центр, местоположение которого держалось в секрете.

Наконец, часы пробили полночь — прежде всего на юге тихоокеанского региона. В Новой Зеландии, как описывал позднее преподаватель философии Денис Даттон, «всплеск интереса вызывали только шампанское и фейерверки, поскольку телефоны, банкоматы, автомобили, компьютеры и самолеты продолжали работать как обычно». Постепенно полночью наступала по всему миру. В Австралии машина для печати автобусных билетов ошиблась в дате. В Италии срок наказания некоторых тюремных заключенных был ненадолго увеличен на столетие. В Англии сломался приливометр. В США шпионский спутник на протяжении нескольких часов работал в резервном режиме. В Гонконге перестали работать полицейские алкотестеры — надо признать, это было совсем не вовремя. По всему миру тут и там кассовые аппараты вместо корректной даты пробивали «1900 год» и выдавали покупателям чеки, которые те могли бы сохранить как сувенир.

Италия занялась проблемой 2000 года позже, чем многие другие страны, и при этом сделала намного меньше. Многие пессимисты ожидали, что в стране, известной своим принципом dolce far niente (итал. «сладкое ничегонеделание»), хаос приобретет особый размах. Однако даже в Италии сбоев было мало, не считая того инцидента с заключенными. В полночь остановились все поезда, поскольку, как объяснил представитель перевозчика, «итальянцы были настроены скептически, и мы заявили, что ничего не случится. Но мы не могли рисковать». Лоренцо Робустелли, один из руководителей организации празднования Святого года в Риме, выразил сочувствие остальному миру: «Мне очень жаль, но иногда в Италии все работает».

People line up at a HSBC branch to get cash on December 30, 1999. British banking giant HSBC allayed Asian millennium bug fears, saying no problems were expected with the company's bank cards following reports of problems in Europe. · Фото Getty Images

В Словении наступление 2000 года прошло настолько непримечательно, что высокопоставленного государственного служащего обвинили в преувеличении опасности и уволили. «Тех, кому поручили устранить неполадку тысячелетия, проклинали бы, если бы возникли серьезные проблемы, и проклинают сейчас, потому что проблем так и не возникли», — отмечала BBC 4 января.

Полезная паника

Были и те, кто в последующем скорее положительно оценивал произошедшую панику. «В конечном счете проблема 2000 года оказалась выгодна для экономики США», — говорил Ларри Кудлоу, в то время экономист в инвестиционном банке. «Люди вроде как разочарованы», — отмечал Майкл Гранатт, один из руководителей британской инициативы по предотвращению проблемы 2000 года. Он добавлял: «Все происходит так, как нужно, не случайно. Это возможно благодаря надлежащему планированию». Джон Коскинен, которому Клинтон поручил заняться проблемой 2000 года, сетовал, что «единственная возможность стать героем — это если бы половина мира замерла, а потом каким-то образом снова вернулась к работе, что не было нашей целью. Как часто и бывает в управлении, если все хорошо работает, люди не обращают на это внимания». Разочарованным остался и специалист по выживанию в сложных условиях Бен Леви, который построил дом в Колорадо, чтобы пережить апокалипсис. «В каком-то смысле я на это надеялся, — позднее рассказывал он в радиопередаче Marketplace. — Это было бы весело: мне действительно казалось, что я бы справился с вызовом».

Несомненно, тревога по поводу катастрофы, которая так и не случилась, в разгар технологической революции побудила правительства и компании обновить системы, о которых долгое время никто не вспоминал. Одно из преимуществ этой деятельности стало очевидно, когда менее чем через два года в Америке произошла настоящая трагедия. В 2005 году Алан Гринспен говорил: «После 11 сентября 2001 года мы обнаружили, что подготовка к 2000 году имела гораздо большее значение, чем мы полагали. В ретроспективе она, очевидно, напрямую определила успешное функционирование систем в кризисных условиях после атак». Лоис Слэвин, курировавшая программу системного дизайна и управления в Массачусетском технологическом институте, придерживалась того же мнения. Она писала, что «избыточные элементы систем, разработанные в преддверии так и не случившегося сбоя 2000 года позволили городскому транспорту и сектору телекоммуникаций оказать услуги на высочайшем уровне в условиях страшных разрушений» 11 сентября.

Одним из тех, кто помогал Нью-Йорку готовиться к приходу 2000 года, был Ричард Рескорла, вице-президент службы безопасности Morgan Stanley. В 1999-м он встретил приход Нового года в бункере, откуда вместе с коллегой, как вспоминал другой сотрудник банка, «выходил осматривать Всемирный торговый центр, проверяя этаж за этажом всю ночь, чтобы выяснить, может ли где-то возникнуть проблема». Двадцать один месяц спустя, утром 11 сентября 2001 года, Рескорла вывел сотрудников Morgan Stanley из задымленной Южной башни и по пути распевал песни через рупор, чтобы подбодрить их. Около 3700 человек тогда смогли спастись. Рескорла вернулся, чтобы поискать пропавших людей, и погиб, когда здание обрушилось.

Теракты 11 сентября были катастрофой, которую никто не мог предвидеть. Чему мы должны были научиться благодаря другой катастрофе, которую миллионы предвидели, но которая так и не случилась? Были ли мы осмотрительны и мудры? Не слишком ли легко мы ударились в панику? На десятую годовщину новозеландский философ Дэнис Даттон опубликовал колонку в The New York Times, в которой он утверждал: «Фиаско 2000 года — это не простая осмотрительность. Многие религии — от зороастризма до христианства, от иудаизма до сект НЛО — построены на идее греха и конца света. Угроза 2000 года перекликалась с этими концепциями… Идея, будто наши хитроумные изобретения однажды нас уничтожат, остается популярной в художественной литературе по меньшей мере со времен «Франкенштейна» Мэри Шелли».

«Когда мы превращаем практические проблемы в катаклизмы космического масштаба, мы отдаляемся от их решения», — писал он. Но затем он делал шаг к выводу, который может оказаться абсолютно неверным: «На мой взгляд, это применимо к вздымающимся волнам, бурям, засухам и массовым вымираниям живых существ, о которых говорят сторонники модного климатического катастрофизма. Такие увлекательные образы имеют меньше отношения к научной климатологии, чем к распространенному мнению, будто современность и ее расточительный комфорт приближают нас к библейскому Судному дню».

Будущее всегда более загадочно, чем нам бы хотелось считать. Дэнис Даттон был мудрым человеком, но он не мог предвидеть, как экологические проблемы, которые он описывал с таким пренебрежением, будут влиять на нас уже сегодня. Он не мог знать и того, что из-за злой насмешки судьбы The New York Times опубликует его некролог ровно через год после его статьи о проблеме 2000 года: он стал жертвой рака простаты. Сложно не улыбнуться, наблюдая за теми перегибами, которые случались в те лихорадочные дни перед жутковатым спокойствием ночи 31 декабря 1999 года, но не причинили большого вреда и, возможно, сделали наши информационные сети более крепкими, устойчивыми и гибкими. Эти сети и сегодня, даже в большей степени, чем 20 лет тому назад, остаются центральной нервной системой цивилизации. Нельзя переоценить важность ухода за ними.

Перевод Натальи Балабанцевой

Черные лебеди—2020: какие глобальные катаклизмы ударят по России и рублю в новом году

Черные лебеди—2020: какие глобальные катаклизмы ударят по России и рублю в новом году

В ночь с 4 на 5 октября 2021 года произошёл один из масштабнейших сбоев в истории интернета. Легли Facebook, Instagram, WhatsApp, ВКонтакте, были проблемы у YouTube и Tik-Tok. За эти шесть часов в сети поднялась настоящая паника, распространяемая через выстоявшие Twitter и Telegram. Последний даже получил 50 миллионов новых пользователей, вот настолько все испугались. Всё это очень смешно и похоже на ту самую серию «Саус Парка», где мир моментально деградировал без интернета. Но как представляли такие страхи раньше?


Самый масштабный пример – так называемая «Проблема 2000». Паническое пророчество о том, что в 2000 году в мире остановится вся техника. Всё это удачно совпало с другими апокалиптическими настроениями, которыми жил мир в ожидании миллениума. Но сейчас, спустя 20 с лишним лет, мы почему-то не вспоминаем 2000 год как день, когда Земля остановилась. Нет, мы просто до смерти пугаемся, что инста прилегла поспать. Так чего же все боялись и почему это не стало реальностью?

Что вообще такое «Проблема 2000»?

Начнём с того, что любой ранний компьютер уступал по вычислительной мощности и объёму памяти вашему телефону. Программировали и хранили информацию тогда на перфокартах – кусках бумаги определённого размера, с которых вычислительные машины считывали нужные данные. Поскольку объём памяти был мал, айтишники прошлого избегали лишнего. А лишним могло оказаться всё – вплоть до каждого символа.


Именно этот фактор сказался на том, что для записи годичной даты использовались всего две цифры. То есть, пятое июля 1977 года записывалось так – 05.07.77. Это автоматически означало, что вся вычислительная техника была рассчитана исключительно на работу в своём столетии. Последняя возможная дата, считываемая системой – 31.12.99, то есть последний день 1999 года. А дальше – пустота.


О несовершенстве техники знали с конца 1950-х, но в публичном поле эта история всплыла в середине 1980-х, когда сотрудница американской страховой фирмы попыталась внести в компьютер данные с прогнозом на начало нулевых. Адская машина подумала, что 00 – это 1900 год, поэтому отказалась работать корректно и выдала полную чушь. Позже с этим столкнулись айтишники по всему миру.


Просто задумайтесь: вся вычислительная техника на планете отказывалась воспринимать новое столетие. Проблема становилась серьёзнее с каждым годом не только потому, что приближался 2000 год, а потому что влияние компьютеров по всему миру росло. Особенно страдали те отрасли, для которых было необходимо дать прогноз на отдалённое будущее.

В 90-х по проблеме 2000 развели настоящую панику

О ней были написаны многие книги. Кто-то предлагал свои методы решения или оценивал возможные экономические убытки, а другие были уверены, что «Проблема 2000» – явный маркер скорого апокалипсиса. СМИ подхватывали эту панику, давая трибуну и тем, и другим. Но, как это обычно бывает, голоса IT-специалистов звучали сильно тише, чем у проповедников конца света.

В США и России «Проблемой 2000» на государственном уровне серьёзно занялись только в конце 90-х. Да, специалисты из разных компаний писали новый софт, уже учитывающий четырёхзначные даты, и пересаживали на него свои корпоративные ресурсы, но многие журналисты и политики всё равно ожидали паники и беспорядков. В Штатах даже решили напечатать побольше бумажных денег на случай, если обеспокоенные граждане начнут выводить средства из банковских систем. А народ тогда ожидал всего – от отключения электричества до невозможности снять деньги со счёта.


При этом звёзды индустрии особо не паниковали. Тот же Билл Гейтс спокойно предсказывал, что в реальности «Проблема 2000» окажется гораздо более мягкой, чем о ней говорят. Но его (вот сюрприз) считали антихристом задолго до истерии по коронавирусу и вышкам 5G, так что слова главы Microsoft мало влияли на основных паникёров.


Корпорации, кстати, вообще не разводили панику, а спокойно выделяли ресурсы на внутреннее решение «Проблемы 2000». Всё, что нужно было сделать – пересесть на новый софт, не потеряв старые данные. Но двадцать лет назад это было довольно проблематично и дорого. Тогдашние инвесторы держали открытым «индекс Де Ягера», запущенный чтобы отслеживать корпоративные риски, связанные с входом в 2000 год. Суммарно в мире было потрачено более 300 миллиардов долларов на решение «Проблемы 2000». Были последствия и для фондовой биржи.

Что случилось 1 января 2000 года?

Практически ничего. Билл Гейтс оказался прав. Да, в мире действительно зарегистрировали технические проблемы в местах, где всё ещё стояла старая вычислительная техника. Так, в некоторых городах США перестали работать игровые автоматы, в Австралии пострадала система транспорта, в Японии телекоммуникационные компании и система радиационного мониторинга.



Мир выстоял, а пострадавшие страны и компании постепенно пересели на новое оборудование и софт. Массовые переживания проиграли плановой подготовке и потраченным ресурсам. Хотя многие боялись даже более ранней даты – 9 сентября 1999 года. Всё из-за того, что комбинация 9999 использовалась либо для обозначения неизвестной даты в будущем, либо как конец файла в старых языках программирования.

Была ли проблема на самом деле?

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


Настоящий феномен «Проблемы 2000» не в том, что 1 января 2000 года должны были встать все компьютеры, и не в расходах государств и корпораций, а в раздутой вокруг этого события панике. Зато человечество вошло в новое тысячелетие с осознанием, что цифровизация – это важно и навсегда, но для подавляющего большинства населения мир IT неотличим от мира магии.

Сегодня мы можем увидеть следы этой истории сразу в нескольких кейсах. В том числе это касается массовой истерии из-за сбоя Facebook, Instagram и всего остального. Люди до сих пор не знают, что делать, если привычные вещи вдруг перестанут работать.

Отчасти «Проблема 2000» существует до сих пор. Только называется она теперь «Проблемой 2038», о чём вам в подробностях расскажет любой ближайший айтишник. Ожидается, что 19 января 2038 года начнутся сбои в 32-битном программном обеспечении, где время считается по стандарту POSIX, то есть по количеству секунд с 1 января 1970 года. На ютубе полно разборов и этого апокалиптического предсказания, хотя реальные специалисты уверены, что к тому времени проблема потеряет актуальность.

Читайте также: