В конце девяностых мир переживал за компьютерные системы, которые обещали вот-вот отказать. Эксперты запугивали, что при наступлении 2000 года софт не сможет корректно обработать дату, и мир погрузится в хаос: отключатся платёжные системы, биржи встанут, откажет любая электроника. В реальности новый век наступил без каких-либо проблем, переживания оказались напрасны.
Именно так ошибку 2000 года восприняло общественное сознание. К примеру, британский политик-брекзитёр заявил, что опасения о влиянии роли Брекзита на экономику похожи на панику бага Y2K.
Об ошибке тысячелетия забыли почти сразу после наступления 2000 года. Даже в непрофильных изданиях месяцами обсуждали баг Y2K, но уже в первые дни нового года внимание к теме угасло. Завораживающая смена числа с 1999 на 2000 не создала катастроф, которыми так пугали. Скептики объявили, что деньги на устранение бага потратили впустую.
Происходящее за кулисами важнее представлений неспециалистов. Градус общественной паники действительно ушёл выше уровня, которого заслуживала ситуация. Реальная опасность компьютерных сбоев по всему миру 1 января 2000 года существовала и требовала вмешательства разработчиков ПО. Целые отделы программистов годами устраняли проблему Y2K.
Источник проблем
В повседневной жизни мы не записываем первые два символа года — они почти всегда одинаковые. Схожая логика продиктовала правило экономии места на накопителях ранних компьютеров: если век неважен, его можно отбросить. Вместо восьми цифр дата записывается в шесть. Экономия кажется мизерной, но если дат миллионы, то счёт идёт на мегабайты памяти, которых у первых ЭВМ было немного.
Книга «Punched Cards Their Applications To Science And Industry» («Перфокарты, их применение в науке и технике») от 1958 года в первую очередь рассказывает про электромеханические устройства для чтения перфокарт. Оформление списка литературы на стандартной перфокарте IBM. В колонках 15 и 16 указываются последние две цифры года издания. В другом фрагменте книга мотивирует выбор краткого формата года тем, что большинство записей предназначены для XX века.
Человек родился 1 января XX20 года, а умер 2 января XX20. Прожил ли он полноценную жизнь или внезапно умер после родов? Без контекста это установить невозможно, поэтому мы переспросим, ушёл ли из жизни необычный долгожитель или младенец. Похожим образом без указания века компьютер не отличит 2000 год от 1900. В этом и состоит суть ошибки Y2K.
Простая иллюстрация: срок действия на банковской карте указывается в виде MM/YY, и некоторые простейшие алгоритмы платёжных систем проверяли просроченность арифметическим сравнением чисел YYMM. Контрпример для такого алгоритма — любая карта, действительная позднее 2000 года. В 1999 году наивный алгоритм назовёт недействительной карту со сроком действия 12/01, до декабря 2001 года.
Кажется странным, что вредная привычка сокращать век дожила до конца девяностых. Часто говорят, что источник проблем — махровое легаси первых компьютеров и языков программирования, которые по какой-то глупой причине работали почти 40 лет без изменений. Это правда лишь отчасти: заря компьютерной эпохи в первую очередь заложила традиции разработки, которые живут до сих пор. К примеру, современная среда разработки шире, чем 80 колонок перфокарт, но ограничение в 80 символов на строчку кода из Linux убрали лишь три месяца назад.
Даже к концу семидесятых характеристики ЭВМ в бизнесе оставались скромными. При этом от них уже требовали реальных применений в автоматизации. Из мейнфрейма с процессором на 0,9 миллиона операций в секунду, 1,5 МиБ ОЗУ и 2 ГиБ дискового хранилища как-то приходилось выжимать 20 тысяч транзакций в час, идущие от 300—500 одновременных пользователей. И эти слабенькие вычислительные машины обходятся в сотни тысяч, миллионы долларов. Лишь к 1990 году гигабайт данных на жёстком диске дешевеет ниже 10 тысяч долларов.
А ещё не каждому предприятию по карману флагманские семейства S/360, S/370 или S/390. Для клиентов поменьше IBM разработала вычислительные машины S/3, S/32, S/34, S/36, S/38, AS/400 со значительно более скромными характеристиками. Максимальная ёмкость жёсткого диска бизнес-ЭВМ IBM System/32 — это 13 мегабайтов, в которые нужно уместить не только код, но и данные.
Однопользовательская ЭВМ IBM System/32, 1975 год. Машина с экраном на 6 строчек предназначена для задач уровня бухгалтерии. Фото: Computer History Museum.
В таких условиях возмутительная раздутость уровня XML или JSON появиться просто не может. Какие тут текстовые форматы — счёт шёл на каждый байт.
Похожим образом дату записывали на Коболе, одном из старейших языков программирования бизнес-приложений. Здесь YY — две цифры года, MM — номер месяца, DD — день.
01 EMP-HIRE-DATE.
03 EMP-HIRE-DATE-YY PIC 99.
03 EMP-HIRE-DATE-MM PIC 99.
03 EMP-HIRE-DATE-DD PIC 99.
Здесь дата представлена в виде 3 байтов, по 4 бита на каждую из цифр. Кобол настолько древний, что даже числа в нём десятичные (если не указано обратное, USAGE IS COMPUTATIONAL).
Стандартизированного поля даты в Коболе нет, но самописные реализации всё же чем-то руководствовались. Код ACCEPT todays-date FROM DATE
возвращает текущую дату системы в виде 6-значного числа формата YYMMDD. Если его сравнить с числом из представления выше, то легко понять, наступил этот день или нет. Функция CENTURY-DATE, которая возвращала дату в виде 8-значного числа YYYYMMDD с указанием века, появится в более поздних стандартах языка.
По дате формата YYMMDD удобно сортировать: сравнение, что случилось раньше, сводится к арифметической операции.
С наступлением нового века сортировка сломается: год 00 должен быть позднее 99, а не наоборот. Число 000101 окажется меньше, чем 991231, то есть 1 января 2000 года программа скажет, что 31 декабря 1999 ещё не наступило. Попытка вычислить срок между этими датами вернёт почти 100 лет, а не 1 сутки.
Даже при обновлении старых систем формат даты не меняли, чтобы сохранить совместимость с существующими базами данных и другими компонентами. Программист не задумывался, что его софтом будут пользоваться через 20—30 лет. Для него «ошибка 2000 года» звучит ещё более отдалённо, чем для нас «переполнение 32-битного Unix-времени». Последнее случится уже в 2038 году и исправлено в Linux для 32-битных систем только с версии ядра 5.6. Но почему-то мы не торопимся обновлять старые маршрутизаторы.
Часть «вины» лежала на распространении двоично-десятичного кода (BCD), в котором каждый разряд десятичного числа будет записан 4 битами. Двоично-десятичный код обязан популярности банковской сфере из-за скорости и предсказуемости при округлении чисел — в нём невозможна ситуация, когда 0.1 + 0.2
выдаст ответ 0.30000000000000004. Бухгалтеры и финансисты слегка нервничают, когда появляются артефакты округления двоичных чисел с плавающей запятой. Поэтому процессоры для бизнес-применений поддерживали нативную обработку двоично-десятичного кода, и переводить числа между формами записи приходилось меньше.
Дата из 6 цифр уместится в 3 байта. Конечно, надёжнее будет сконвертировать дату в одно двоичное целое число. Но конвертация потребует сложных математических действий: это долгие циклы или таблицы. Такое сложнее перевода BCD в десятичный код за линейное время, иногда даже одной машинной инструкцией, предусмотренной производителем чипа. Двоично-десятичный код добавляет в запись даты лишь 1—2 лишних байта, но избавляет от 5—10 ассемблерных инструкций, в которых тяжело разобраться и легко запутаться.
В восьмидесятые программисты мира бизнес-приложений ЭВМ размером с шкаф переходили на настольные персональные компьютеры, но сохраняли выработанный менталитет. На ранних 8- и 16-битных персоналках их встречала знакомая аппаратная поддержка двоично-десятичного кода.
Наконец, часть проблем касалась уже календаря. Если 2000 год високосный (он делится на 400), то 1900 — нет. В реальном 2000 году есть 29 февраля. Если компьютер посчитает, что на дворе 1900, после 28 февраля наступит сразу 1 марта.
Ранние предупреждения
Внимание общественности к ошибке смены веков привлёк канадский программист Питер де Ягер. В 1978 году он, на тот момент сотрудник IBM, заметил, что компьютер может принять два нуля за 1900 год. На жалобу Питера руководство отмахнулось: зачем думать о проблеме, которая не актуальна в ближайшие 22 года? К 2000 году ошибку точно исправят, говорили ему.
К 1989 году ситуация не изменилась. На тот момент де Ягер работал в компании, которая развернула у себя продукт Professional Office Systems. 1 января 1990 года система «слегла»: в приложении на год была отведена одна цифра. Вновь вспомнивший про 2000 год Питер ради эксперимента сдвинул время на личном компьютере на несколько минут до полуночи 31 декабря 1999 года. Через десять минут дата сменилась на 1984 год.
В 1993 году де Ягер пишет в журнал Computerworld статью на три страницы, с которой всё и началось. Заголовок «Doomsday 2000» («Судный день 2000») привлёк всеобщее внимание к Y2K. Поначалу красочные описания грядущей беды не воспринимали всерьёз, но с приближением 2000 года де Ягер завоевал репутацию эксперта в вопросах цифрового армагеддона. С тех пор Питер занимался исключительно проблемой дат.
Обложка журнала «Тайм» от 18 января 1999 года
Впрочем, странности обработки дат в индустрии замечали и без каких-либо статей. Мартин Томас, управлявший командой устранения бага Y2K в Deloitte Consulting, рассказывал, как в конце восьмидесятых британская сеть продуктовых магазинов получила партию консервов. Система учёта приняла срок годности 01/00 за январь 1900 года и потребовала утилизировать 80-летний неликвид.
В середине 1997 года автокомпания «Крайслер» для теста перевёла все часы сборочного завода в Стерлинг-Хайтсе на 31 декабря 1999 года, что преподнесло немало сюрпризов. Невозможно было выплатить зарплату. Система безопасности просто отключилась: никто не мог ни зайти, ни выйти.
К концу десятилетия в компаниях появляются команды инженеров, которые занимаются только анализом и исправлением ошибки Y2K. Проблему вывели даже на межгосударственный уровень: в 1998 году на саммите «Большой восьмёрки» все участники согласились с опасностью бага. 19 октября 1998 года президент США принимает акт «Year 2000 Information and Readiness Disclosure Act». В России вопросом совместимости Y2K занимались государственный комитет по связи и информатизации и специальная правительственная комиссия.
Не обошлось без паники. Популярность сценариев конца света присутствовала в американском сознании на протяжении всех девяностых. Журналисты и писатели с упоением начали рисовать картину цифрового Судного дня. Даже крупные и уважаемые новостные издания рекомендовали запасаться водой и продовольствием.
Y2K-постапок с элементами советов домохозяйке
Литература ошибки 2000 года варьировалась от подробных руководств по выживанию до художественных романов о мире после глобального компьютерного сбоя. Фикшн-произведения рисовали чудовищное будущее. 1 января из неба выпадают осадки в виде пассажирских авиалайнеров, а на каждой атомной электростанции случается Чернобыль местного масштаба. Взрывается бытовая техника, схлопывается глобальная финансовая система, отключаются электросети и телефоны. Затем из этих ингредиентов сооружается сценарий депрессивного разложения цивилизации в голодное полуфеодальное общество с разгулом жестокой организованной преступности.
Короткометражка с Леонардом Нимоем эксплуатирует популярную тему страха ошибки Y2K
Справочники выживальщика подробно расписывали, как спасаться при упадке цивилизации. Они почти ничего не говорили о попытках исправить баг и мало обсуждали теорию за ошибкой 2000. Вместо этого книги сразу же углублялись в страшилки и советы для мира после закрытия банков и разгула безработицы. Кто-то просто советовал покупать золото. Остальные тратили страницы на перечисление предметов и ресурсов, которыми нужно срочно запасаться.
Впрочем, как вспоминают работники книжных магазинов, эта литература не пользовалась популярностью и исчезла с полок после наступления 2000 года.
Наборы переживальщика Y2K — постарались предприимчивые дельцы — имели хотя бы какую-то практическую ценность. Сухой паёк сохранит питательные качества вне зависимости от формата компьютерных данных, пусть даже его продают по завышенной цене, пытаясь оседлать волну истерии.
Готовая к апокалипсису 2000 года семья из Колорадо
Типы исправлений
Добавление двух цифр решает проблему на 8000 лет.
01 EMP-HIRE-DATE.
03 EMP-HIRE-DATE-YR.
05 EMP-HIRE-DATE-CC PIC 99.
05 EMP-HIRE-DATE-YY PIC 99.
03 EMP-HIRE-DATE-MM PIC 99.
03 EMP-HIRE-DATE-DD PIC 99.
Но длина записи в Коболе ограничена. Если нужно вставить два байта по центру, придётся переписать весь файл с нуля в новый и заменить оригинал исправленной копией. Код приложения, которое обрабатывает этот файл, тоже придётся скорректировать. Процесс сулит долгое тестирование и отключения. Не всегда базу данных получается вот так тормознуть.
Относительно небольшое обновление кода программы не так изящно и добавляет лишь несколько десятилетий жизни, но менее затратно по времени. Пусть если год меньше 50, то это уже новый XXI век.
IF EMP-HIRE-DATE-YY > 50
MOVE 19 TO PRINT-HIRE-DATE-CC
ELSE
MOVE 20 TO PRINT-HIRE-DATE-CC.
Не каждые данные допускают уверенность, что даты до 1950 или после 2050 года невозможны. В некоторых случаях такие «костыли» продлевали жизнь всего на 20 лет. Это выяснилось в этом январе: кому-то приходили счета из 1920 года, не работало некоторое ПО.
Квитанция с ошибкой пришла в начале января 2020 года
В некоторых случаях Y2K исправляли не до 10 000 года, а на 9 столетий. Если 3 байта даты хранились в 4-битном знаковом числе, то в неиспользуемые полбайта влезет одна цифра для подписи века. Программы с таким патчем подвержены проблеме либо 2100, либо 2900 года.
Дату можно представить в виде числа дней, прошедших от точки отсчёта в прошлом. Число дней записывается в двоичное 14-битное число. Так можно представить 16 384 различных лет. Конкретные ограничения задаются выбором эпохи.
Иногда запись года не исправляли вовсе. Формат TLE командования воздушно-космической обороны Северной Америки описывает объекты на орбите Земли. До сих пор в нём указаны лишь 2 последних символа года. Любопытно, что на ситуацию непрямым образом могут повлиять компании спутникового Интернета, которые планируют запускать десятки тысяч аппаратов на орбиту. TLE рассчитан на пятизначное число объектов, поэтому истощение пула номеров потребует пересмотра всего формата данных.
Детали патчей военного оборудования по понятным причинам остаются секретом. Чаще всего в СМИ выпускали сообщения об успешной проверке на готовность к Y2K с помощью симуляторов и специальной тестовой среды. Иногда проходили полноценные боевые испытания. 1 мая 1999 года ВМС США запустили крылатую ракету «Томагавк». За день до пуска время на ракете было установлено на 29 февраля 2000 года, чтобы заодно проверить обработку високосного года.
Лаконичный стикер готовности оборудования к 2000 году
А вот масштабного возвращения программистов-ветеранов с пенсии не произошло. Вместо ожидаемого призыва легионов коболистов компании часто ограничивались штатными работниками или аутсорсили исправления. При подготовке к 2000 году американские компании влили миллиарды в дешёвый труд фирм Infosys, Wipro и TCS. Неожиданным последствием Y2K стала популяризация фирм из Индии. В последующие годы индийский аутсорс станет нормой.
Жизнь после 23:59:59 31 декабря 1999 года
Сильно беспокоились об ошибке 2000 года всего 7 % американцев. Опрос в декабре 1999 показал, что лишь каждый пятый планировал запасаться наличными. Кто-то боялся летать в последний день года. Питер де Ягер рассказывает, что 31 декабря провёл в полёте, чтобы показать безопасность патчей.
Утро 1 января «неприятно» удивило. Перебоев электричества не возникло, всё так же исправно шли финансовые транзакции, компьютерный баг не запустил межконтинентальные баллистические ракеты. Немедленно начался подсчёт потраченного «впустую». Точную сумму назвать затруднительно, хотя сам де Ягер оценивает мировые затраты в 300—400 миллиардов долларов. Некоторые банки, с его слов, тратили до 100 миллионов долларов.
Критика всё же имела под собой основания. Комиссии и эксперты перестарались и обещали откровенно несбыточное.
Мир не пал из-за неисправимых микросхем, в которых год представлен двумя знаками. Среди них — чипы BIOS некоторых компьютеров и многие микроконтроллеры. Их слишком много, все не заменить, утверждала страшилка. На деле эксперты Y2K как правило не имели опыта разработки аппаратного обеспечения — в лучшем случае они понимали в софте. Они не задумывались, что на этих микросхемах перевода и сравнения дат просто не происходит.
Постеры про Y2K от Geek Squad в стиле фильмов категории «Б» пятидесятых планировали расклеивать на автобусных остановках, но лишний маркетинг просто не потребовался. Фото: Best Buy.
Другой пугающий сценарий предполагал развитие каскада отказов, распространяющихся от программы к программе и перекидывающихся на готовые к 2000 году компоненты. В реальности если одна подсисистема ошибочно выдаст год 1900, то другая, взаимодействующая с ней, либо передаст год 1900 дальше, либо выдаст ошибку, либо пометит год неверным.
Легко представить, как готовый к Y2K и уязвимый к багу 2000 года самолёты из-за неучтённого високосного дня 29 февраля 2000 года получают от компьютера разрешение на посадку на одну и ту же полосу. Но в веб-приложении одна неправильная запись в базе данных не начнёт гулять по всей системе словно вирус.
Обыватель не ощутил ни подготовку к багу, ни бессонную ночь на рубеже веков для команд технической поддержки, ни последствия непропатченных систем. Очевидцы и руководители команд устранения Y2K вспоминают незначительные сбои, но ничего катастрофичного или хотя бы особо интересного. Некоторые из принимавших участие в устранении бага объясняют малое число сообщений о сбоях тем, что компании просто не захотели бы трубеть о собственных неудачах.
Часть проблем всё же просочилась в СМИ. Вот лишь несколько компьютерных сбоев. Ни один из них не угрожал жизни людей.
- Некоторые объекты использования атомной энергии сообщали о неполадках. Отказы датчиков температуры морской воды на АЭС в Японии описываются без подробностей, но характеризуются как мелкие и неопасные. На другой японской АЭС в полночь отключилась система оповещения. Похожие инциденты произошли на атомных электростанциях США. Неполадки быстро исправили.
- Несколько спутников-шпионов США отключились и не работали трое суток. Вызвано это было не багом Y2K, а патчем для его исправления.
- Пострадали финансовые учреждения. Сообщалось о многочисленных отказах при обработке транзакций старыми версиями софта CyberCash. Один из банков Чикаго был вынужден перевести выплаты медицинским страховщикам в ручной режим — на дискеты. Тысячи клиентов некоего голландского банка испытывали проблемы с софтом от Apple. Налоговики США с задержкой в сутки обработали 700 тысяч долларов.
- Всё остальное создавало легко устранимые неудобства. В Австралии автоматы напечатали на автобусных билетах неправильную дату, и сканер билетов их не принял. Бессрочные банковские карты небольшого числа членов Golden 1 Credit Union по неизвестной причине истекли 31 декабря 1999 года.
- Производители десктопного софта часто патчили только новые версии. К примеру, неправильно обрабатывает дату после 2000 года Access версии 2.0 (1994) и старше. Последнее было неприятно для пользователей Windows 3.0, в которой новые версии Access работали хуже. С другой стороны, эта операционка на тот момент уже выходила из употребления.
Кроме мелких неполадок в медиа сообщали о курьёзных случаях.
- Первого новорождённого в 2000 году в Дании зарегистрировали столетним.
- Клиент салона видеопроката в Нью-Йорке вернул кассету с фильмом «Генеральская дочь» вовремя, но получил штраф в 91 250 долларов за просрочку длиной в век. Ошибку немедленно исправили.
- Перевод в 6 миллионов долларов от 30 декабря 1899 года поступил на банковский счёт жителя Германии. История умалчивает, как долго он продержался миллионером.
- Подверженная багу 2000 года полицейская система превратила подростков в стариков. Криминальные сводки рассказывали о сексуальных домогательствах в отношении 83-летней женщины от 80-летнего мужчины и двух пропавших подростках в возрасте 83 и 84 лет.
Есть как минимум один случай серьёзной медицинской ошибки из-за бага Y2K. В одном из регионов Англии через несколько месяцев после наступления 2000 года было отмечено необычно много детей, рождённых с синдромом Дауна. Программа оценки неправильно посчитала возраст 154 беременных женщин и некорректно выставила группу риска для последующих исследований анмиоцентезом. Всего у матерей с неправильно определённой низкой группой риска появились 4 ребёнка с синдромом Дауна. Из-за неверной оценки высокого риска 2 аборта были проведены по ошибке.
В новом тысячелетии мир немедленно забыл про компьютерный баг обработки дат. Про него напоминали только стикеры «Y2K Compliant», которые клеились на готовую к новому веку технику.
Внешне ошибка 2000 года мало отличается от смены табло обменных пунктов c четырёх- на пятисимвольные при падении рубля. Уточнение даты до четырёх знаков выглядит как небольшое, пусть и дорогое в масштабах всей экономики исправление.
На корректировку ошибки потратили сотни миллиардов долларов. Без наглядных катастрофичных последствий усилия по патчу Y2K выглядели избыточными и излишне дорогими. Специалисты оправдывались, что проблема существовала и была исправлена. Кто-то просто радовался общественному вниманию к критической инфраструктуре и апгрейдам.
События, когда кончаются знаки, происходили и будут случаться в будущем. Переход с IPv4 на сети IPv6 призван избавить мир от дефицита интернет-адресов. Когда-то к телефонным номерам добавят ещё одну цифру. 19 января 2038 года для непропатченных Unix-систем наступит либо 1 января 1970 года, либо, из-за использования знаковой переменной, 13 декабря 1901 года.
У любого информационного проекта есть ограничения. Но этого не нужно бояться. Если система выходит за рамки заложенных в неё допущений, это лишь свидетельствует о её незапланированной популярности.
По материалам Stack Exchange, Stack Overflow, архива минобороны США (1, 2), CelesTrak (1, 2), Popular Mechanics, блога Криса Уэстона, How-To Geek, Mental Floss, «Би-би-си», cs.swarthmore.edu, Fast Company, Inc.com, Computerworld, Cnet и Slate.
The year 2000 problem, also known as the Y2K problem, Y2K scare, millennium bug, Y2K bug, Y2K glitch, Y2K error, or simply Y2K refers to potential computer errors related to the formatting and storage of calendar data for dates in and after the year 2000. Many programs represented four-digit years with only the final two digits, making the year 2000 indistinguishable from 1900. Computer systems’ inability to distinguish dates correctly had the potential to bring down worldwide infrastructures for computer reliant industries.
In the years leading up to the turn of the century (millennium), the public gradually became aware of the «Y2K scare», and individual companies predicted the global damage caused by the bug would require anything between $400 million and $600 billion to rectify.[1] A lack of clarity regarding the potential dangers of the bug led some to stock up on food, water, and firearms, purchase backup generators, and withdraw large sums of money in anticipation of a computer-induced apocalypse.[2]
Contrary to published expectations, few major errors occurred in 2000. Supporters of the Y2K remediation effort argued that this was primarily due to the pre-emptive action of many computer programmers and information technology experts. Companies and organizations in some countries, but not all, had checked, fixed, and upgraded their computer systems to address the problem.[3][4] Then-U.S. president Bill Clinton, who organized efforts to minimize the damage in the United States, labeled Y2K as «the first challenge of the 21st century successfully met»,[5] and retrospectives on the event typically commend the programmers who worked to avert the anticipated disaster.
Background[edit]
Y2K is a numeronym and was the common abbreviation for the year 2000 software problem. The abbreviation combines the letter Y for «year», the number 2 and a capitalized version of k for the SI unit prefix kilo meaning 1000; hence, 2K signifies 2000. It was also named the «millennium bug» because it was associated with the popular (rather than literal) rollover of the millennium, even though most of the problems could have occurred at the end of any century.
Computerworld‘s 1993 three-page «Doomsday 2000» article by Peter de Jager was called «the information-age equivalent of the midnight ride of Paul Revere» by The New York Times.[6][7][8]
The problem was the subject of the early book Computers in Crisis by Jerome and Marilyn Murray (Petrocelli, 1984; reissued by McGraw-Hill under the title The Year 2000 Computing Crisis in 1996). Its first recorded mention on a Usenet newsgroup is from 18 January 1985 by Spencer Bolles.[9]
The acronym Y2K has been attributed to Massachusetts programmer David Eddy[10] in an e-mail sent on 12 June 1995. He later said, «People were calling it CDC (Century Date Change), FADL (Faulty Date Logic). There were other contenders. Y2K just came off my fingertips.»[11]
The problem started because on both mainframe computers and later personal computers, storage was expensive, from as low as $10 per kilobyte, to in many cases as much as or even more than US$100 per kilobyte.[12] It was therefore very important for programmers to minimize usage. Since computers only gained wide usage in the 20th century, programs could simply prefix «19» to the year of a date, allowing them to only store the last two digits of the year instead of four. As space on disc and tape was also expensive, these strategies saved money by reducing the size of stored data files and databases in exchange for becoming unusable past the year 2000.[13]
This meant that programs facing two-digit years could not distinguish between dates in 1900 and 2000. Dire warnings at times were in the mode of:
The Y2K problem is the electronic equivalent of the El Niño and there will be nasty surprises around the globe.
- — John Hamre, United States Deputy Secretary of Defense[14]
Options on the De Jager Year 2000 Index, «the first index enabling investors to manage risk associated with the … computer problem linked to the year 2000» began trading mid-March 1997.[15]
Special committees were set up by governments to monitor remedial work and contingency planning, particularly by crucial infrastructures such as telecommunications, utilities and the like, to ensure that the most critical services had fixed their own problems and were prepared for problems with others. While some commentators and experts argued that the coverage of the problem largely amounted to scaremongering,[16] it was only the safe passing of the main event itself, 1 January 2000, that fully quelled public fears.
Some experts who argued that scaremongering was occurring, such as Ross Anderson, professor of security engineering at the University of Cambridge Computer Laboratory, have since claimed that despite sending out hundreds of press releases about research results suggesting that the problem was not likely to be as big as some had suggested, they were largely ignored by the media.[16] In a similar vein, the Microsoft Press book Running Office 2000 Professional, published in May 1999, accurately predicted that most personal computer hardware and software would be unaffected by the year 2000 problem.[17] Authors Michael Halvorson and Michael Young characterized most of the worries as popular hysteria, an opinion echoed by Microsoft Corp.[18]
Programming problem[edit]
The practice of using two-digit dates for convenience predates computers, but was never a problem until stored dates were used in calculations.
Bit conservation need[edit]
I’m one of the culprits who created this problem. I used to write those programs back in the 1960s and 1970s, and was proud of the fact that I was able to squeeze a few elements of space out of my program by not having to put a 19 before the year. Back then, it was very important. We used to spend a lot of time running through various mathematical exercises before we started to write our programs so that they could be very clearly delimited with respect to space and the use of capacity. It never entered our minds that those programs would have lasted for more than a few years. As a consequence, they are very poorly documented. If I were to go back and look at some of the programs I wrote 30 years ago, I would have one terribly difficult time working my way through step-by-step.
—Alan Greenspan, 1998[19]
Business data processing was done using unit record equipment and punched cards, most commonly the 80-column variety employed by IBM, which dominated the industry. Many tricks were used to squeeze needed data into fixed-field 80-character records. Saving two digits for every date field was significant in this effort.
In the 1960s, computer memory and mass storage were scarce and expensive. Early core memory cost one dollar per bit. Popular commercial computers, such as the IBM 1401, shipped with as little as 2 kilobytes of memory.[a] Programs often mimicked card processing techniques. Commercial programming languages of the time, such as COBOL and RPG, processed numbers in their character representations. Over time, the punched cards were converted to magnetic tape and then disc files, but the structure of the data usually changed very little.
Data was still input using punched cards until the mid-1970s. Machine architectures, programming languages and application designs were evolving rapidly. Neither managers nor programmers of that time expected their programs to remain in use for many decades, and the possibility that these programs would both remain in use and cause problems when interacting with databases — a new type of program with different characteristics — went largely uncommented upon.
Early attention[edit]
The first person known to publicly address this issue was Bob Bemer, who had noticed it in 1958 as a result of work on genealogical software. He spent the next twenty years fruitlessly trying to raise awareness of the problem with programmers, IBM, the government of the United States and the International Organization for Standardization. This included the recommendation that the COBOL picture clause should be used to specify four digit years for dates.[21]
In the 1980s, the brokerage industry began to address this issue, mostly because of bonds with maturity dates beyond the year 2000. By 1987 the New York Stock Exchange had reportedly spent over $20 million on Y2K, including hiring 100 programmers.[22]
Despite magazine articles on the subject from 1970 onward, the majority of programmers and managers only started recognizing Y2K as a looming problem in the mid-1990s, but even then, inertia and complacency caused it to be mostly unresolved until the last few years of the decade. In 1989, Erik Naggum was instrumental in ensuring that internet mail used four digit representations of years by including a strong recommendation to this effect in the internet host requirements document RFC 1123.[23] On April Fools’ Day 1998, some companies set their mainframe computer dates to 2001, so that «the wrong date will be perceived as good fun instead of bad computing» while having a full day of testing.[24]
While using 3-digit years and 3-digit dates within that year was used by some, others chose to use the number of days since a fixed date, such as 1 January 1900.[25] Inaction was not an option, and risked major failure. Embedded systems with similar date logic were expected to malfunction and cause utilities and other crucial infrastructure to fail.
Saving space on stored dates persisted into the Unix era, with most systems representing dates to a single 32-bit word, typically representing dates as elapsed seconds from some fixed date, which causes the similar Y2K38 problem.
Resulting bugs from date programming[edit]
Webpage screenshots showing the JavaScript .getYear() method problem, which depicts the year 2000 problem
Storage of a combined date and time within a fixed binary field is often considered a solution, but the possibility for software to misinterpret dates remains because such date and time representations must be relative to some known origin. Rollover of such systems is still a problem but can happen at varying dates and can fail in various ways. For example:
- An upscale grocer’s 1997 credit-card caused crash of their 10 cash registers, repeatedly, due to year 2000 expiration dates, and was the source of the first Y2K-related lawsuit.[26]
- The Microsoft Excel spreadsheet program had a very elementary Y2K problem: Excel (in both Windows and Mac versions, when they are set to start at 1900) incorrectly set the year 1900 as a leap year for compatibility with Lotus 1-2-3.[27] In addition, the years 2100, 2200, and so on, were regarded as leap years. This bug was fixed in later versions, but since the epoch of the Excel timestamp was set to the meaningless date of 0 January 1900 in previous versions, the year 1900 is still regarded as a leap year to maintain backward compatibility.
- In the C programming language, the standard library function to extract the year from a timestamp returns the year minus 1900. Many programs using functions from C, such as Perl and Java, two programming languages widely used in web development, incorrectly treated this value as the last two digits of the year. On the web this was usually a harmless presentation bug, but it did cause many dynamically generated web pages to display 1 January 2000 as «1/1/19100», «1/1/100», or other variants, depending on the display format.[citation needed]
- JavaScript was changed due to concerns over the Y2K bug, and the return value for years changed and thus differed between versions from sometimes being a four digit representation and sometimes a two-digit representation forcing programmers to rewrite already working code to make sure web pages worked for all versions.[28][29]
- Older applications written for the commonly used UNIX Source Code Control System failed to handle years that began with the digit «2».
- In the Windows 3.x file manager, dates displayed as 1/1/19:0 for 1/1/2000 (because the colon is the character after «9» in the ASCII character set). An update was available.
- Some software, such as Math Blaster Episode I: In Search of Spot which only treats years as two-digit values instead of four, will give a given year as «1900», «1901», and so on, depending on the last two digits of the present year.
Similar date bugs[edit]
4 January 1975[edit]
The date of 4 January 1975 overflowed the 12-bit field that had been used in the Decsystem 10 operating systems. There were numerous problems and crashes related to this bug while an alternative format was developed.[30]
9 September 1999[edit]
Even before 1 January 2000 arrived, there were also some worries about 9 September 1999 (albeit less than those generated by Y2K). Because this date could also be written in the numeric format 9/9/99, it could have conflicted with the date value 9999
, frequently used to specify an unknown date. It was thus possible that database programs might act on the records containing unknown dates on that day. Data entry operators commonly entered 9999 into required fields for an unknown future date, (e.g., a termination date for cable television or telephone service), in order to process computer forms using CICS software.[31] Somewhat similar to this is the end-of-file code 9999
, used in older programming languages. While fears arose that some programs might unexpectedly terminate on that date, the bug was more likely to confuse computer operators than machines.
Leap years[edit]
Normally, a year is a leap year if it is evenly divisible by four. A year divisible by 100 is not a leap year in the Gregorian calendar unless it is also divisible by 400. For example, 1600 was a leap year, but 1700, 1800 and 1900 were not. Some programs may have relied on the oversimplified rule that «a year divisible by four is a leap year». This method works fine for the year 2000 (because it is a leap year), and will not become a problem until 2100, when older legacy programs will likely have long since been replaced. Other programs contained incorrect leap year logic, assuming for instance that no year divisible by 100 could be a leap year. An assessment of this leap year problem including a number of real-life code fragments appeared in 1998.[32] For information on why century years are treated differently, see Gregorian calendar.
Year 2010 problem[edit]
Some systems had problems once the year rolled over to 2010. This was dubbed by some in the media as the «Y2K+10» or «Y2.01K» problem.[33]
The main source of problems was confusion between hexadecimal number encoding and binary-coded decimal encodings of numbers. Both hexadecimal and BCD encode the numbers 0–9 as 0x0–0x9. BCD encodes the number 10 as 0x10, while hexadecimal encodes the number 10 as 0x0A; 0x10 interpreted as a hexadecimal encoding represents the number 16.
For example, because the SMS protocol uses BCD for dates, some mobile phone software incorrectly reported dates of SMSes as 2016 instead of 2010. Windows Mobile is the first software reported to have been affected by this glitch; in some cases WM6 changes the date of any incoming SMS message sent after 1 January 2010 from the year 2010 to 2016.[34][35]
Other systems affected include EFTPOS terminals,[36] and the PlayStation 3 (except the Slim model).[37]
The most important occurrences of such a glitch were in Germany, where up to 20 million bank cards became unusable, and with Citibank Belgium, whose digipass customer identification chips failed.[38]
Year 2022 problem[edit]
Known as the Y2K22 bug. The maximum value of a signed 32-bit integer, as used in many computer systems, is 2147483647. Systems using an integer to represent a 10 character date-based field, where the leftmost two characters are the 2-digit year, ran into an issue on 1 January 2022 when the leftmost characters needed to be ’22’, i.e. values from 2200000001 needed to be represented.
Microsoft Exchange Server was one of the more significant systems affected by the Y2K22 bug. The problem caused emails to be stuck on transport queues on Exchange Server 2016 and Exchange Server 2019, reporting the following error:
The FIP-FS "Microsoft" Scan Engine failed to load. PID: 23092, Error Code: 0x80004005. Error Description: Can't convert "2201010001" to long.
[39]
Year 2038 problem[edit]
Many systems use Unix time and store it in a signed 32-bit integer. This data type is only capable of representing integers between −(231) and (231)−1, treated as number of seconds since the epoch at 1 January 1970 at 00:00:00 UTC. These systems can only represent times between 13 December 1901 at 20:45:52 UTC and 19 January 2038 at 03:14:07 UTC. If these systems are not updated and fixed, then dates all across the world that rely on Unix time will wrongfully display the year as 1901 beginning at 03:14:08 UTC on 19 January 2038.
Programming solutions[edit]
Several very different approaches were used to solve the year 2000 problem in legacy systems. Several of them follow:
- Date expansion
- Two-digit years were expanded to include the century (becoming four-digit years) in programs, files, and databases. This was considered the «purest» solution, resulting in unambiguous dates that are permanent and easy to maintain. This method was costly, requiring massive testing and conversion efforts, and usually affecting entire systems.
- Date windowing
- Two-digit years were retained, and programs determined the century value only when needed for particular functions, such as date comparisons and calculations. (The century «window» refers to the 100-year period to which a date belongs.) This technique, which required installing small patches of code into programs, was simpler to test and implement than date expansion, thus much less costly. While not a permanent solution, windowing fixes were usually designed to work for many decades. This was thought acceptable, as older legacy systems tend to eventually get replaced by newer technology.[40]
- Date compression
- Dates can be compressed into binary 14-bit numbers. This allows retention of data structure alignment, using an integer value for years. Such a scheme is capable of representing 16384 different years; the exact scheme varies by the selection of epoch.
- Date re-partitioning
- In legacy databases whose size could not be economically changed, six-digit year/month/day codes were converted to three-digit years (with 1999 represented as 099 and 2001 represented as 101, etc.) and three-digit days (ordinal date in year). Only input and output instructions for the date fields had to be modified, but most other date operations and whole record operations required no change. This delays the eventual roll-over problem to the end of the year 2899.
- Software kits
- Software kits, such as those listed in CNN.com’s Top 10 Y2K fixes for your PC:[41] («most … free») which was topped by the $50 Millennium Bug Kit.[42]
- Bridge programs
- Date servers where Call statements are used to access, add or update date fields.[43][44][45]
Documented errors[edit]
Before 2000[edit]
- In late 1998, Commonwealth Edison reported a computer upgrade intended to prevent the Y2K glitch caused them to send the village of Oswego, Illinois an erroneous electric bill for $7 million.[46]
- On 1 January 1999, taxi meters in Singapore stopped working, while in Sweden, incorrect taxi fares were given.[47]
- At midnight on 1 January 1999, at three airports in Sweden, computers that police used to generate temporary passports stopped working.[48]
- On February 8, 1999, while testing Y2K compliance in a computer system monitoring nuclear core rods at Peach Bottom Nuclear Generating Station, instead of resetting the time on the external computer meant to simulate the date rollover a technician accidentally changed the time on the operation systems computer, which had not yet been upgraded, causing all the computers at the station to crash. It took approximately seven hours to restore all normal functions, during which time workers had to use obsolete manual equipment to monitor plant operations.[46]
- In November 1999, approximately 500 residents in Philadelphia received jury duty summonses for dates in 1900.[49]
- In December 1999, in the United Kingdom, a software upgrade intended to make computers Y2K compliant prevented social services in Bedfordshire from finding if anyone in their care was over 100 years old, since computers failed to recognize the dates of birth being searched.[50][51]
- In late December 1999, Telecom Italia (now Gruppo TIM), Italy’s largest telecom company, sent a bill for January and February 1900. The company stated this was a one-time error and that it had recently ensured its systems would be compatible with the year rollover.[52][53]
- On 28 December 1999, 10,000 card swipe machines issued by HSBC and manufactured by Racal stopped processing credit and debit card transactions.[16] This was limited to machines in the United Kingdom, and was the result of the machines being designed to ensure transactions had been completed within four business days; from 28 to 31 December they interpreted the future dates to be in the year 1900.[54] Stores with these machines relied on paper transactions until they started working again on 1 January.[55]
- On 31 December, at 7:00 pm EST, as a direct result of a patch intended to prevent the Y2K glitch, computers at a ground control station in Fort Belvoir, Virginia crashed and ceased processing information from five spy satellites, including three KH-11 satellites. The military implemented a contingency plan within 3 hours by diverting their feeds and manually decoding the scrambled information, from which they were able produce a limited dataset. All normal functionality was restored at 11:45 pm on 2 January 2000.[56][57][58]
On 1 January 2000[edit]
When 1 January 2000 arrived, there were problems generally regarded as minor.[59] Consequences did not always result exactly at midnight. Some programs were not active at that moment and problems would only show up when they were invoked. Not all problems recorded were directly linked to Y2K programming in a causality; minor technological glitches occur on a regular basis.
Reported problems include:
- In Australia, bus ticket validation machines in two states failed to operate.[59]
- In Japan:
- machines in 13 train stations stopped dispensing tickets for a short time.[60]
- at two minutes past midnight, the telecommunications carrier Osaka Media Port found date management mistakes in their network. A spokesman said they had resolved the issue by 02:43 and did not interfere with operations.[61]
- NTT Mobile Communications Network (NTT Docomo), Japan’s largest cellular operator, reported that some models of mobile telephones were deleting new messages received, rather than the older messages, as the memory filled up.[61]
- In Ishikawa, the Shika Nuclear Power Plant reported that radiation monitoring equipment failed at a few seconds after midnight. Officials said there was no risk to the public, and no excess radiation was found at the plant.[62][63]
- In South Korea:
- at midnight, 902 ondol heating systems and water heating failed at an apartment building near Seoul; the ondol systems were down for 19 hours and would only work when manually controlled, while the water heating took 24 hours to restart. Additionally, two hospitals in Gyeonggi Province reported malfunctions with equipment measuring bone marrow and patient intake forms, with one accidentally registering a newborn as having been born in 1900, four people in the city of Daegu received medical bills with dates in 1900, and a court in Suwon sent out notifications containing a trial date for 4 January 1900.[64][65][66]
- a video store in Gwangju accidentally generated a late fee of approximately 8 million won (approximately $7,000 US dollars) because the store’s computer determined a tape rental to be 100 years overdue. South Korean authorities stated the computer was a model anticipated to be incompatible with the year rollover, and had not undergone the software upgrades necessary to make it compliant.[67]
- In Hong Kong, police breathalyzers failed at midnight.[68]
- In Jiangsu, China, taxi meters failed at midnight.[69]
- In Germany:
- at the Deutsche Oper Berlin, the payroll system interpreted the new year to be 1900 and determined the ages of employees’ children by the last two digits of their years of birth, causing it to wrongly withhold government childcare subsidies in paychecks. To reinstate the subsidies, accountants had to reset the operating system’s year to 1999.[70]
- a bank accidentally transferred 12 million Deutsche Marks (equivalent to $6.2 million) to a customer and presented a statement with the date 30 December 1899. The bank quickly fixed the incorrect transfer.[71][72]
- In Egypt, three dialysis machines briefly failed.[60]
- In Greece, approximately 30,000 cash registers, amounting to around 10% of the country’s total, printed receipts with dates in 1900.[73]
- In Denmark, the first baby born on 1 January was recorded as being 100 years old.[71]
- In France, the national weather forecasting service, Météo-France, said a Y2K bug made the date on a webpage show a map with Saturday’s weather forecast as «01/01/19100».[59] Additionally, the government reported that a Y2K glitch rendered one of their Syracuse satellite systems incapable of recognizing onboard malfunctions.[64][74]
- In Italy, courthouse computers in Venice and Naples showed an upcoming release date for some prisoners as 10 January 1900, while other inmates wrongly showed up as having 100 additional years on their sentences.[69][68]
- In Norway, a day care center for kindergarteners in Oslo offered a spot to a 105 year old woman because the citizen’s registry only showed the last two digits of citizens’ years of birth.[75]
- In Spain, a worker received a notice for an industrial tribunal in Murcia which listed the event date as 3 February 1900.[59]
- In Sweden, the main hospital in Uppsala, a hospital in Lund, and two regional hospitals in Karlstad and Linkoping reported that machines used for reading electrocardiogram information failed to operate, although the hospitals stated it had no effect on patient health.[64][76]
- In Sheffield, United Kingdom, a Y2K bug that was not discovered and fixed until 24 May caused computers to miscalculate the ages of pregnant mothers, which led to 154 patients receiving incorrect risk assessments for having a child with Down syndrome. As a direct result two abortions were carried out, and four babies with Down syndrome were also born to mothers who had been told they were in the low-risk group.[77]
- In Brazil, at the Port of Santos, computers which had been upgraded in July 1999 to be Y2K compliant could not read three-year customs registrations generated in their previous system once the year rolled over. Santos said this affected registrations from before June 1999 that companies had not updated, which Santos estimated was approximately 20,000, and that when the problem became apparent on 10 January they were able to fix individual registrations, «in a matter of minutes».[78] A computer at Viracopos International Airport in São Paulo state also experienced this glitch, which temporarily halted cargo unloading.[78]
- In Jamaica, in the Kingston and St. Andrew Corporation, 8 computerized traffic lights at major intersections stopped working. Officials stated these lights were part of a set of 35 traffic lights known to be Y2K non-compliant, and that all 35 were already slated for replacement.[79]
- In the United States:
- the US Naval Observatory, which runs the master clock that keeps the country’s official time, gave the date on its website as 1 Jan 19100.[80]
- the Bureau of Alcohol, Tobacco, Firearms, and Explosives could not register new firearms dealers for 5 days because their computers failed to recognize dates on applications.[81][82]
- 150 Delaware Lottery racino slot machines stopped working.[59]
- In New York, a video store accidentally generated a $91,250 late fee because the store computer determined a tape rental was 100 years overdue.[83]
- In Tennessee, Oak Ridge National Laboratory stated that a Y2K glitch caused an unspecified malfunction in a system for determining the weight and composition of nuclear substances at a nuclear weapons plant, although the United States Department of Energy stated they were still able to keep track of all material. It was resolved within three hours, no one at the plant was injured, and the plant continued carrying out its normal functions.[83][84]
- The credit card companies MasterCard and Visa reported that, as a direct result of the Y2K glitch, for weeks after the year rollover a small percentage of customers were being charged multiple times for transactions.[85]
- Microsoft reported that, after the year rolled over, Hotmail e-mails sent in October 1999 or earlier showed up as having been sent in 2099, although this did not affect the e-mail’s contents or the ability to send and receive e-mails.[86]
After January 2000[edit]
On 29 February and 1 March 2000[edit]
Problems were reported on 29 February 2000, Y2K’s first Leap Year Day, and 1 March 2000. These were mostly minor.[87][88][89]
- In New Zealand, an estimated 4,000 electronic terminals could not properly authenticate transactions.
- In Japan, around five percent of post office cash dispensers failed to work, although it was unclear if this was the result of the Y2K glitch. In addition, 6 observatories failed to recognize 29 February while over 20 seismographs incorrectly interpreted the date 29 February to be 1 March, and data from 43 weather bureau computers that had not been updated for compliance was corrupted, causing them to release inaccurate readings on 1 March.
- In Singapore, on 29 February subway terminals would not accept some passenger cards.
- In Bulgaria, police documents were issued with expiration dates of 29 February 2005 and 29 February 2010 (which are not leap years) and the police computer system defaulted to 1900.
- In Canada, on 29 February a program for tax collecting and information in the city of Montreal interpreted the date to be 1 March 1900; although it remained possible to pay taxes, computers miscalculated interest rates for delinquent taxes and residents could not access tax bills or property evaluations. Despite being the day before taxes were due, to fix the glitch authorities had to entirely turn off the city’s tax system.[90][91]
- In the United States, on 29 February the archiving system of the Coast Guard’s message processing system was affected.
- At Reagan National Airport, on 29 February there were significant delays when a computer program for curbside baggage handling initially failed to recognize the date, forcing passengers to use standard check-in stations.[92]
- At Offutt Air Force Base south of Omaha, Nebraska, on 29 February records of aircraft maintenance parts could not be accessed or updated by computer. Workers continued normal operations and relied on paper records for the day.
On 31 December 2000 or 1 January 2001[edit]
Some software did not correctly recognize 2000 as a leap year, and so worked on the basis of the year having 365 days. On the last day of 2000 (day 366) and first day of 2001 these systems exhibited various errors. Some computers also treated the new year 2001 as 1901, causing errors. These were generally minor.
- The Swedish bank Nordbanken reported that its online and physical banking systems went down 5 times between 27 December 2000 and 3 January 2001, which was believed to be due to the Y2K glitch.[93]
- In Norway, on 31 December 2000, the national railroad company Vy reported that all 29 of its new Signatur trains failed to run because their onboard computers considered the date invalid, causing some delays. As an interim measure, engineers restarted the trains by resetting their clocks back by a month and used older trains to cover some routes.[93][94][95]
- In South Africa, on 1 January 2001 computers at the First National Bank interpreted the new year to be 1901, affecting approximately 16,000 transactions and causing customers to be charged incorrect interest rates on credit cards. First National Bank first became aware of the problem on 4 January and fixed it the same day.[96]
- A large number of cash registers at the convenience store chain 7-Eleven stopped working for card transactions on 1 January 2001 because they interpreted the new year to be 1901, despite not having had any prior glitches. 7-Eleven reported the registers had been restored to complete functionality within two days.[93]
- In Connecticut, in early January the Connecticut Department of Motor Vehicles sent duplicate motor vehicle tax bills for vehicles that had their registrations renewed between 2 October 1999 and 30 November 1999, affecting 23,000 residents. A spokesman stated the Y2K glitch caused the affected vehicles to be double-entered in their system.[97]
- In Multnomah County, Oregon, in early January approximately 3,000 residents received jury duty summonses for dates in 1901. Due to using two-digit years when entering the summons dates, courthouse employees had not seen that the computer inaccurately rolled over the year.[93]
Since 2000[edit]
Since 2000, various issues have occurred due to errors involving overflows. An issue with time tagging caused the destruction of the NASA Deep Impact spacecraft.[98] In April 2019, a «Y2K-like bug» due to an overflow caused a New York City government wireless system to go down for 10 days because of a GPS system’s date-rollover problem.[99][100] Infrastructure affected included «traffic lights, license-plate readers used by cops and other key functions.»
Some software used a process called date windowing to fix the issue by interpreting years 00-19 as 2000–2019 and 20–99 as 1920–1999. As a result, a new wave of problems started appearing in 2020, including parking meters in New York City refusing to accept credit cards, issues with Novitus point of sale units, and some utility companies printing bills listing the year 1920. The video game WWE 2K20 also began crashing when the year rolled over, although a patch was distributed later that day.[101]
Government responses[edit]
Bulgaria[edit]
Although the Bulgarian national identification number allocates only two digits for the birth year, the year 1900 problem and subsequently the Y2K problem were addressed by the use of unused values above 12 in the month range. For all persons born before 1900, the month is stored as the calendar month plus 20, and for all persons born in or after 2000, the month is stored as the calendar month plus 40.[102]
Canada[edit]
Canadian Prime Minister Jean Chrétien’s most important cabinet ministers were ordered to remain in the capital Ottawa, and gathered at 24 Sussex Drive, the prime minister’s residence, to watch the clock.[6] 13,000 Canadian troops were also put on standby.[6]
Netherlands[edit]
The Dutch Government promoted Y2K Information Sharing and Analysis Centers (ISACs) to share readiness between industries, without threat of antitrust violations or liability based on information shared.[citation needed]
Norway and Finland[edit]
Norway and Finland changed their national identification numbers to indicate a person’s century of birth. In both countries, the birth year was historically indicated by two digits only. This numbering system had already given rise to a similar problem, the «Year 1900 problem», which arose due to problems distinguishing between people born in the 19th and 20th centuries. Y2K fears drew attention to an older issue, while prompting a solution to a new problem. In Finland, the problem was solved by replacing the hyphen («-«) in the number with the letter «A» for people born in the 21st century (for people born before 1900, the sign was already «+»).[103] In Norway, the range of the individual numbers following the birth date was altered from 0–499 to 500–999.[citation needed]
Romania[edit]
Romania also changed its national identification number in response to the Y2K problem, due to the birth year being represented by only two digits. Before 2000, the first digit, which shows the person’s sex, was 1 for males and 2 for females. Individuals born since 1 January 2000 have a number starting with 5 if male or 6 if female.[citation needed]
Uganda[edit]
The Ugandan government responded to the Y2K threat by setting up a Y2K Task Force.[104] In August 1999 an independent international assessment by the World Bank International Y2k Cooperation Centre found that Uganda’s website was in the top category as «highly informative». This put Uganda in the «top 20» out of 107 national governments, and on a par with the United States, United Kingdom, Canada, Australia and Japan, and ahead of Germany, Italy, Austria, Switzerland which were rated as only «somewhat informative». The report said that «Countries which disclose more Y2K information will be more likely to maintain public confidence in their own countries and in the international markets.»[105]
United States[edit]
In 1998, the United States government responded to the Y2K threat by passing the Year 2000 Information and Readiness Disclosure Act, by working with private sector counterparts in order to ensure readiness, and by creating internal continuity of operations plans in the event of problems and set limits to certain potential liabilities of companies with respect to disclosures about their year 2000 programs.[106][107] The effort was coordinated by the President’s Council on Year 2000 Conversion, headed by John Koskinen, in coordination with the Federal Emergency Management Agency (FEMA), and an interim Critical Infrastructure Protection Group within the Department of Justice.[108][109]
The US government followed a three-part approach to the problem: (1) outreach and advocacy, (2) monitoring and assessment, and (3) contingency planning and regulation.[110]
The logo created by The President’s Council on the Year 2000 Conversion, for use on Y2K.gov
A feature of US government outreach was Y2K websites, including Y2K.GOV, many of which have become inaccessible in the years since 2000. Some of these websites have been archived by the National Archives and Records Administration or the Wayback Machine.[111][112]
Each federal agency had its own Y2K task force which worked with its private sector counterparts; for example, the FCC had the FCC Year 2000 Task Force.[110][113]
Most industries had contingency plans that relied upon the internet for backup communications. As no federal agency had clear authority with regard to the internet at this time (it had passed from the Department of Defense to the National Science Foundation and then to the Department of Commerce), no agency was assessing the readiness of the internet itself. Therefore, on 30 July 1999, the White House held the White House Internet Y2K Roundtable.[114]
The U.S. government also established the Center for Year 2000 Strategic Stability as a joint operation with the Russian Federation. It was a liaison operation designed to mitigate the possibility of false positive readings in each nation’s nuclear attack early warning systems.[115]
Juno Internet Service Provider CD labeling Y2K-compliance
International cooperation[edit]
The International Y2K Cooperation Center (IY2KCC) was established at the behest of national Y2K coordinators from over 120 countries when they met at the First Global Meeting of National Y2K Coordinators at the United Nations in December 1998.[116] IY2KCC established an office in Washington, D.C. in March 1999. Funding was provided by the World Bank, and Bruce W. McConnell was appointed as director.
IY2KCC’s mission was to «promote increased strategic cooperation and action among governments, peoples, and the private sector to minimize adverse Y2K effects on the global society and economy.» Activities of IY2KCC were conducted in six areas:
- National Readiness: Promoting Y2K programs worldwide
- Regional Cooperation: Promoting and supporting co-ordination within defined geographic areas
- Sector Cooperation: Promoting and supporting co-ordination within and across defined economic sectors
- Continuity and Response Cooperation: Promoting and supporting co-ordination to ensure essential services and provisions for emergency response
- Information Cooperation: Promoting and supporting international information sharing and publicity
- Facilitation and Assistance: Organizing global meetings of Y2K coordinators and to identify resources
IY2KCC closed down in March 2000.[116]
Private sector response[edit]
A Best Buy sticker from 1999 recommending that their customers turn off their computers ahead of midnight
- The United States established the Year 2000 Information and Readiness Disclosure Act, which limited the liability of businesses who had properly disclosed their Y2K readiness.
- Insurance companies sold insurance policies covering failure of businesses due to Y2K problems.
- Attorneys organized and mobilized for Y2K class action lawsuits (which were not pursued).[117]
- Survivalist-related businesses (gun dealers, surplus and sporting goods) anticipated increased business in the final months of 1999 in an event known as the Y2K scare.[118]
- The Long Now Foundation, which (in their words) «seeks to promote ‘slower/better’ thinking and to foster creativity in the framework of the next 10,000 years», has a policy of anticipating the Year 10,000 problem by writing all years with five digits. For example, they list «01996» as their year of founding.
- While there was no one comprehensive internet Y2K effort, multiple internet trade associations and organisations banded together to form the Internet Year 2000 Campaign.[119] This effort partnered with the White House’s Internet Y2K Roundtable.
The Y2K issue was a major topic of discussion in the late 1990s and as such showed up in most popular media. A number of «Y2K disaster» books were published such as Deadline Y2K by Mark Joseph. Movies such as Y2K: Year to Kill capitalized on the currency of Y2K, as did numerous TV shows, comic strips, and computer games.
Fringe group responses[edit]
A variety of fringe groups and individuals such as those within some fundamentalist religious organizations, survivalists, cults, anti-social movements, self-sufficiency enthusiasts and those attracted to conspiracy theories, embraced Y2K as a tool to engender fear and provide a form of evidence for their respective theories. End-of-the-world scenarios and apocalyptic themes were common in their communication.
Interest in the survivalist movement peaked in 1999 in its second wave for that decade, triggered by Y2K fears. In the time before extensive efforts were made to rewrite computer programming codes to mitigate the possible impacts, some writers such as Gary North, Ed Yourdon, James Howard Kunstler,[120] and Ed Yardeni anticipated widespread power outages, food and gasoline shortages, and other emergencies. North and others raised the alarm because they thought Y2K code fixes were not being made quickly enough. While a range of authors responded to this wave of concern, two of the most survival-focused texts to emerge were Boston on Y2K (1998) by Kenneth W. Royce, and Mike Oehler’s The Hippy Survival Guide to Y2K.
Y2K was also exploited by some fundamentalist and charismatic Christian leaders throughout the Western world, particularly in North America and Australia. Their promotion of the perceived risks of Y2K was combined with end times thinking and apocalyptic prophecies in an attempt to influence followers.[121] The New York Times reported in late 1999, «The Rev. Jerry Falwell suggested that Y2K would be the confirmation of Christian prophecy — God’s instrument to shake this nation, to humble this nation. The Y2K crisis might incite a worldwide revival that would lead to the rapture of the church. Along with many survivalists, Mr. Falwell advised stocking up on food and guns».[122] Adherents in these movements were encouraged to engage in food hoarding, take lessons in self-sufficiency, and the more extreme elements planned for a total collapse of modern society. The Chicago Tribune reported that some large fundamentalist churches, motivated by Y2K, were the sites for flea market-like sales of paraphernalia designed to help people survive a social order crisis ranging from gold coins to wood-burning stoves.[123] Betsy Hart, writing for the Deseret News, reported that a lot of the more extreme evangelicals used Y2K to promote a political agenda in which downfall of the government was a desired outcome in order to usher in Christ’s reign. She also noted that, «the cold truth is that preaching chaos is profitable and calm doesn’t sell many tapes or books».[124] These types of fears and conspiracies were described dramatically by New Zealand-based Christian prophetic author and preacher Barry Smith in his publication, «I Spy with my Little Eye», where he dedicated a whole chapter to Y2K.[125] Some expected, at times through so-called prophecies, that Y2K would be the beginning of a worldwide Christian revival.[126]
It became clear in the aftermath that leaders of these fringe groups had used fears of apocalyptic outcomes to manipulate followers into dramatic scenes of mass repentance or renewed commitment to their groups, additional giving of funds and more overt commitment to their respective organizations or churches. The Baltimore Sun noted this in their article, «Apocalypse Now — Y2K spurs fears», where they reported the increased call for repentance in the populace in order to avoid God’s wrath.[127] Christian leader, Col Stringer, in his commentary has published, «Fear-creating writers sold over 45 million books citing every conceivable catastrophe from civil war, planes dropping from the sky to the end of the civilized world as we know it. Reputable preachers were advocating food storage and a «head for the caves» mentality. No banks failed, no planes crashed, no wars or civil war started. And yet not one of these prophets of doom has ever apologized for their scare-mongering tactics.»[126] Some prominent North American Christian ministries and leaders generated huge personal and corporate profits through sales of Y2K preparation kits, generators, survival guides, published prophecies and a wide range of other associated merchandise. Christian journalist, Rob Boston, has documented this[121] in his article «False Prophets, Real Profits — Religious Right Leaders’ Wild Predictions of Y2K Disaster Didn’t Come True, But They Made Money Anyway».
Cost[edit]
The total cost of the work done in preparation for Y2K likely surpassed US$300 billion ($510 billion as of January 2018, once inflation is taken into account).[128][129] IDC calculated that the US spent an estimated $134 billion ($228 billion) preparing for Y2K, and another $13 billion ($22 billion) fixing problems in 2000 and 2001. Worldwide, $308 billion ($523 billion) was estimated to have been spent on Y2K remediation.[130]
Remedial work organization[edit]
Remedial work was driven by customer demand for solutions.[131] Software suppliers, mindful of their potential legal liability,[117] responded with remedial effort. Software subcontractors were required to certify that their software components were free of date-related problems, which drove further work down the supply chain.
By 1999, many corporations required their suppliers to certify that their software was all Y2K-compliant. Some signed after accepting merely remedial updates. Many businesses or even whole countries suffered only minor problems despite spending little effort themselves.[citation needed]
Results[edit]
There are two ways to view the events of 2000 from the perspective of its aftermath:
Supporting view[edit]
This view holds that the vast majority of problems were fixed correctly, and the money spent was at least partially justified. The situation was essentially one of preemptive alarm. Those who hold this view claim that the lack of problems at the date change reflects the completeness of the project, and that many computer applications would not have continued to function into the 21st century without correction or remediation.
Expected problems that were not seen by small businesses and small organizations were prevented by Y2K fixes embedded in routine updates to operating system and utility software[132] that were applied several years before 31 December 1999.
The extent to which larger industry and government fixes averted issues that would have more significant impacts had they not been fixed, were typically not disclosed or widely reported.[133][unreliable source?]
It has been suggested that on 11 September 2001, infrastructure in New York City (including subways, phone service, and financial transactions) was able to continue operation because of the redundant networks established in the event of Y2K bug impact[134] and the contingency plans devised by companies.[135] The terrorist attacks and the following prolonged blackout to lower Manhattan had minimal effect on global banking systems.[136] Backup systems were activated at various locations around the region, many of which had been established to deal with a possible complete failure of networks in Manhattan’s Financial District on 31 December 1999.[137]
Opposing view[edit]
The contrary view asserts that there were no, or very few, critical problems to begin with. This view also asserts that there would have been only a few minor mistakes and that a «fix on failure» approach would have been the most efficient and cost-effective way to solve these problems as they occurred.
International Data Corporation estimated that the US might have wasted $40 billion.[138]
Sceptics of the need for a massive effort pointed to the absence of Y2K-related problems occurring before 1 January 2000, even though the 2000 financial year commenced in 1999 in many jurisdictions, and a wide range of forward-looking calculations involved dates in 2000 and later years. Estimates undertaken in the leadup to 2000 suggested that around 25% of all problems should have occurred before 2000.[139] Critics of large-scale remediation argued during 1999 that the absence of significant reported problems in non-compliant small firms was evidence that there had been, and would be, no serious problems needing to be fixed in any firm, and that the scale of the problem had therefore been severely overestimated.[140]
Countries such as South Korea and Russia invested little to nothing in Y2K remediation,[122][138] yet had the same negligible Y2K problems as countries that spent enormous sums of money. Western countries anticipated such severe problems in Russia that many issued travel advisories and evacuated non-essential staff.[141]
Critics also cite the lack of Y2K-related problems in schools, many of which undertook little or no remediation effort. By 1 September 1999, only 28% of US schools had achieved compliance for mission critical systems, and a government report predicted that «Y2K failures could very well plague the computers used by schools to manage payrolls, student records, online curricula, and building safety systems».[142]
Similarly, there were few Y2K-related problems in an estimated 1.5 million small businesses that undertook no remediation effort. On 3 January 2000 (the first weekday of the year), the Small Business Administration received an estimated 40 calls from businesses with computer issues, similar to the average. None of the problems were critical.[143]
See also[edit]
- 512k day: an event in 2014, involving a software limitation in network routers
- IPv4 address exhaustion, problems caused by the limited allocation size for numeric internet addresses
- ISO 8601, an international standard for representing dates and times, which mandates the use of (at least) four digits for the year
- «Life’s a Glitch, Then You Die» is a «Treehouse of Horror segment» from The Simpsons eleventh season. The segment sees Homer forget to make his company’s computers Y2K-compliant and this caused a virus to be unleashed upon the world
- Perpetual calendar, a calendar valid for many years, including before and after 2000
- Y2K, a 1999 American made-for-television science fiction-thriller film directed by Dick Lowry
- YEAR2000, a configuration setting supported by some versions of DR-DOS to overcome Year 2000 BIOS bugs
- Millennium celebrations, a worldwide, coordinated series of events to celebrate and commemorate the end of 1999 and the start of the year 2000 in the Gregorian calendar.
Notes[edit]
- ^ The name ‘IBM’ 1401 reflected the smallest amount of memory: 1,400 characters.[20]
References[edit]
- ^ Committee on Government Reform and Oversight (26 October 1998). The Year 2000 Problem: Fourth Report by the Committee on Government Reform and Oversight, Together with Additional Views (PDF). U.S. Government Printing Office. p. 3. Retrieved 2021-06-07.
- ^ Uenuma, Francine (30 December 2019). «20 Years Later, the Y2K Bug Seems Like a Joke—Because Those Behind the Scenes Took It Seriously». Time Magazine. Retrieved 2021-06-07.
- ^ «Leap Day Tuesday Last Y2K Worry». Wired. 25 February 2000. Retrieved 2016-10-16.
- ^ Carrington, Damian (4 January 2000). «Was Y2K bug a boost?». BBC News. Archived from the original on 2004-04-22. Retrieved 2009-09-19.
- ^ Loeb, Zachary (30 December 2019). «The lessons of Y2K, 20 years later». The Washington Post. Retrieved 2021-06-07.
- ^ a b c Eric Andrew-Gee (28 December 2019). «Y2K: The strange, true history of how Canada prepared for an apocalypse that never happened, but changed us all». The Globe and Mail.
- ^ Cory Johnson (29 December 1999). «Y2K Crier’s Crisis». TheStreet.
- ^ Barnaby J. Feder (11 October 1998). «The Town Crier for the Year 2000». The New York Times.
- ^ Bolles, Spencer (19 January 1985). «Computer bugs in the year 2000». Newsgroup: net.bugs. Usenet: 820@reed.UUCP. Retrieved 2019-08-15.
- ^ American RadioWorks Y2K Notebook Problems – The Surprising Legacy of Y2K. Retrieved 22 April 2007.
- ^ Rose, Ted (22 December 1999). «Who invented Y2K and why did it become so universally popular?». Baltimore Sun.
- ^ A web search on images for «computer memory ads 1975» returns advertisements showing pricing for 8K of memory at $990 and 64K of memory at $1495.
- ^ Kappelman, Leon; Scott, Phil (25 November 1996). «Accrued Savings of the Year 2000 Computer Date Problem». Computerworld. Archived from the original on 2017-12-18. Retrieved 2017-02-13.
- ^ Looking at the Y2K bug, portal on CNN.com Archived 7 February 2006 at the Wayback Machine
- ^ Piskora, Beth (1 March 1997). «The Dow decimal system». The New York Post. p. 26.
- ^ a b c Presenter: Stephen Fry (3 October 2009). «In the beginning was the nerd». Archive on 4. BBC Radio 4.
- ^ Halvorson, Michael (1999). Running Microsoft Office 2000. Young, Michael J. Redmond, Wash.: Microsoft Press. ISBN 1-57231-936-4. OCLC 40174922.
- ^ Halvorson, Michael; Young, Michael (1999). Running Microsoft Office 2000 Professional. Redmond, WA: Microsoft Press. pp. xxxix. ISBN 1572319364.
As you learn about the year 2000 problem, and prepare for its consequences, there are a number of points we’d like you to consider. First, despite dire predictions, there is probably no good reason to prepare for the new millennium by holing yourself up in a mine shaft with sizable stocks of water, grain, barter goods, and ammunition. The year 2000 will not disable most computer systems, and if your personal computer was manufactured after 1996, it’s likely that your hardware and systems software will require little updating or customizing.
- ^ Testimony by Alan Greenspan, ex-Chairman of the Federal Reserve before the Senate Banking Committee, 25 February 1998, ISBN 978-0-16-057997-4
- ^ «IBM 1401 Reference manual» (PDF). Archived from the original (PDF) on 2010-08-09.
- ^ «Key computer coding creator dies». The Washington Post. 25 June 2004. Retrieved 2011-09-25.
- ^ Andrew-Gee, Eric (28 December 2019). «Y2K: The strange, true history of how Canada prepared for an apocalypse that never happened, but changed us all». The Globe and Mail.
- ^ Braden, Robert, ed. (October 1989). Requirements for Internet Hosts — Application and Support (Report). Internet Engineering Task Force. doi:10.17487/RFC1123. Retrieved 2016-10-16.
- ^ D. Kolstedt (15 November 1997). «Helpful Year 2000 hint». CIO magazine. p. 12.
- ^ «Thinking Ahead». InformationWeek. 28 October 1996. p. 8.
extends .. the 23rd century
- ^ Patrizio, Andy (15 September 1997). «Visa Debits The Vendors». InformationWeek. p. 50.
- ^ «Microsoft Knowledge Base article 214326». Microsoft Support. 17 December 2015. Retrieved 2016-10-16.
- ^ «JavaScript Reference Javascript 1.2». Sun Microsystems. Retrieved 2009-06-07.
- ^ «JavaScript Reference Javascript 1.3». Sun. Retrieved 2009-06-07.
- ^ Neumann, Peter G. (2 February 1987). «The Risks Digest Volume 4: Issue 45». The Risks Digest. 4 (45).
- ^ Stockton, J.R., «Critical and Significant Dates Archived 2015-09-07 at the Wayback Machine» Merlyn.
- ^ A. van Deursen, «The Leap Year Problem» The Year/2000 Journal 2(4):65–70, July/August 1998.
- ^ «Bank of Queensland hit by «Y2.01k» glitch». CRN. 4 January 2010. Retrieved 2016-10-16.
- ^ «Windows Mobile glitch dates 2010 texts 2016». 5 January 2010. Archived from the original on 2013-01-19.
- ^ «Windows Mobile phones suffer Y2K+10 bug». 4 January 2010. Archived from the original on 2013-10-23. Retrieved 2010-01-04.
- ^ «Bank of Queensland vs Y2K – an update». 4 January 2010. Archived from the original on 2010-01-08. Retrieved 2010-01-04.
- ^ «Error: 8001050F Takes Down PlayStation Network». Gizmodo. March 2010.
- ^ «2010 Bug in Germany» (in French). RTL. 5 January 2010. Retrieved 2016-10-16.
- ^ «Remember the Y2K bug? Microsoft confirms new Y2K22 issue». Sky news. Retrieved 2022-01-02.
- ^ Raymond B. Howard. «The Case for Windowing: Techniques That Buy 60 Years». Year/2000 Journal (Mar/Apr 1998).
Windowing is a long-term fix that should keep legacy systems working fine until the software is redesigned…
- ^ Green, Max. «CNN — Top 10 Y2K fixes for your PC — September 22, 1999». CNN. Archived from the original on 2001-05-08.
- ^ «Millennium Bug Kit». Archived from the original on 2000-04-11.
- ^ «The Year 2000 FAQ». 5 May 1998. Retrieved 2020-03-01.
- ^ Ellen Friedman; Jerry Rosenberg. «Countdown to the Millennium: Issues to Consider in the Final Year» (PDF).
- ^ Peter Kruskopfs. «The Date Dilemma». Information Builders. Archived from the original on 1996-12-27. Retrieved 2020-03-15.
Bridge programs such as a date server are another option. These servers handle record format conversions from two to four digit years.
- ^ a b Chandrasekaran, Rajiv (7 March 1999). «Big Glitch at Nuclear Plant Shows Perils of Y2K Tests». Washington Post. ISSN 0190-8286. Retrieved 2023-05-12.
- ^ «Y2K bug rears its ugly head». New York: CNN. 12 January 1999. Retrieved 2019-12-30.
- ^ «Y2K bug strikes airports». Retrieved 2023-03-08.
- ^ «Philly Not Fully Y2K-Ready, as 1900 Jury Notices Prove». 28 November 1999. Retrieved 2023-03-08.
- ^ Becket, Andy (23 April 2000). «The bug that didn’t bite». The Guardian. Retrieved 2023-03-07.
- ^ Gibbs, Thom (19 December 2019). «The millennium bug myth, 20 years on: Why you’re probably wrong about Y2K». The Telegraph. ISSN 0307-1235. Retrieved 2023-03-07.
- ^ «Telecom Italia bills for 1900». Retrieved 2023-03-15.
- ^ Fitzpatrick, Pat (14 November 2019). «Remember Y2K? Pat Fitzpatrick remembers when we all thought planes would fall out of the sky». Retrieved 2023-03-15.
- ^ «Y2K Behind Credit Card Machine Failure». Retrieved 2023-02-03.
- ^ Millennium bug hits retailers, from BBC News, 29 December 1999.
- ^ «US satellites safe after Y2K glitch». news.bbc.co.uk. Retrieved 2021-01-16.
- ^ «Y2K glitch hobbled top secret spy sats». United Press International. Retrieved 2023-03-24.
- ^ «Report: Y2K fix disrupts U.S. spy satellites for days, not hours». CNET. 2 January 2002. Retrieved 2023-03-24.
- ^ a b c d e «Minor bug problems arise». BBC News. 1 January 2000. Retrieved 2017-07-08.
- ^ a b «What Y2K bug? Global computers are A-OK». Deseret. 2 January 2000. Retrieved 2023-05-09.
- ^ a b Martyn Williams (3 January 2000). «Computer problems hit three nuclear plants in Japan». CNN. IDG Communications. Archived from the original on 2004-12-07.
- ^ «Japan nuclear power plants malfunction». BBC News. 31 December 1999.
- ^ «Y2K Problem Strikes Japanese Plant». Retrieved 2023-02-04.
- ^ a b c «Will Monday be the real Y2K day?». Retrieved 2023-02-07.
- ^ «Y2K bug hits heating system in Korean apartments». 3 January 2000. Retrieved 2023-02-07.
- ^ «S.Korea declares success against Y2K bug». Retrieved 2023-02-07.
- ^ «World-Wide, the Y2K Bug Had Little Bite in the End». 3 January 2000. Retrieved 2023-02-23.
- ^ a b Allen, Frederick E. «Apocalypse Then: When Y2K Didn’t Lead To The End Of Civilization». Retrieved 2023-03-18.
- ^ a b Reguly, Eric. «Opinion: The Y2K bug turned out to be a non-event, Eric Reguly says». The Globe and Mail. Retrieved 2023-02-07.
- ^ «Y2K bug bites German opera». USA Today. Archived from the original on 2000-06-08. Retrieved 2023-02-03.
- ^ a b Samuel, Lawrence R. (1 June 2009). Future: A Recent History. University of Texas Press. p. 179. ISBN 978-0-292-71914-9.
- ^ «Y2K bug blamed for 4m banking blunder». Retrieved 2023-02-07.
- ^ «30,000 Cash Registers In Greece Hit By Y2K Bug». 6 January 2000. Retrieved 2023-03-09.
- ^ «Y2K glitch knocks out satellite spying system». Flight Global. 7 March 2023. Retrieved 2023-03-07.
- ^ «Y2K bug bites 105-year-old». Independent Online. 4 February 2000. Retrieved 2023-04-24.
- ^ «Pentagon Reports Failure In Satellite Intelligence System». 8 March 2023. Retrieved 2023-03-08.
- ^ Wainwright, Martin (13 September 2001). «NHS faces huge damages bill after millennium bug error». The Guardian. UK. Retrieved 2011-09-25.
The health service is facing big compensation claims after admitting yesterday that failure to spot a millennium bug computer error led to incorrect Down’s syndrome test results being sent to 154 pregnant women. …
- ^ a b «Brazil port hassled by Y2K glitch, but no delays». Reuters. 10 January 2000. Retrieved 2023-03-24.
- ^ «Y2K bug hits traffic lights». The Gleaner. 3 January 2000. Retrieved 2023-05-16.
- ^ Marsha Walton; Miles O’Brien (1 January 2000). «Preparation pays off; world reports only tiny Y2K glitches». CNN. Archived from the original on 2004-12-07.
- ^ Leeds, Jeff (4 January 2000). «Year 2000 Bug Triggers Few Disruptions». Retrieved 2023-04-18.
- ^ «Y2K bug briefly affected U.S. terrorist-monitoring effort, Pentagon says». CNN. 5 January 2000. Retrieved 2023-04-18.
- ^ a b «Y2K Glitch Reported At Nuclear Weapons Plant». Retrieved 2023-01-28.
- ^ «Y2K briefly hits nuke plant». Associated Press. 4 January 2000. Retrieved 2023-03-28.
- ^ S, Edmund; ERS (7 January 2000). «Y2K Glitch Is Causing Multiple Charges for Some Cardholders». Retrieved 2023-01-27.
- ^ «Two glitches hit Microsoft Internet services as New Year rolls over». CNN. 3 January 2000. Archived from the original on 2006-02-11. Retrieved 2023-04-24.
- ^ «HK Leap Year Free of Y2K Glitches». Wired. 29 February 2000. Retrieved 2016-10-16.
- ^ «Leap Day arrives with few computer glitches worldwide». 29 February 2000. Retrieved 2023-02-03.
- ^ «Leap Day Had Its Glitches». Wired. 1 March 2000. Retrieved 2020-02-25.
- ^ «Computer glitches minor on Leap Day». 1 March 2000. Retrieved 2023-03-07.
- ^ «Leap Day bug infests tax system». CBC News. 1 March 2000. Retrieved 2023-03-07.
- ^ «Computer glitches minor on Leap Day». 1 March 2000. Retrieved 2023-03-07.
- ^ a b c d «The last bite of the bug». BBC News. 5 January 2001.
- ^ «7-Eleven Systems Hit by Y2k-like Glitch». Retrieved 2023-03-10.
- ^ «Y2K Bug Hits Norway’s Railroad At End Of Year». 1 January 2001. Retrieved 2023-03-10.
- ^ Meintjies, Marvin (11 January 2001). «Y2K glitch gives bank a new year’s shock». Independent Online. Retrieved 2023-03-12.
- ^ Valenta, Kaaren (4 January 2001). «Tax Collector: Car Tax Bills Are Correct». The Newtown Bee. Retrieved 2023-04-28.
- ^ «NASA’s Deep Space Comet Hunter Mission Comes to an End». Jet Propulsion Laboratory. 20 September 2013. Archived from the original on 2013-10-14. Retrieved 2022-07-09.
- ^ Rich Calder (21 April 2019). «New York’s troubled wireless system has become a $900M money pit». The New York Post.
- ^ «NYC Wireless Network down due to Y2K-like software bug». The New York Post. 10 April 2019.
- ^ Stokel-Walker, Chris. «A lazy fix 20 years ago means the Y2K bug is taking down computers now». New Scientist. Retrieved 2020-01-12.
- ^ Kohler, Iliana V.; Kaltchev, Jordan; Dimova, Mariana (14 May 2002). «Integrated Information System for Demographic Statistics ‘ESGRAON-TDS’ in Bulgaria» (PDF). Demographic Research. 6 (Article 12): 325–354. doi:10.4054/DemRes.2002.6.12.
- ^ «The personal identity code: Frequently asked questions». Digital and Population Data Services Agency, Finland. Retrieved 2020-11-29.
- ^ «Uganda National Y2k Task Force End-June 1999 Public Position Statement». 30 June 1999. Retrieved 2012-01-11.
- ^ «Y2K Center urges more information on Y2K readiness». 3 August 1999. Retrieved 2012-01-11.
- ^ «Year 2000 Information and Readiness Disclosure Act». FindLaw. Retrieved 2019-05-14.
- ^ «Y2K bug: Definition, Hysteria, & Facts». Encyclopædia Britannica. 10 May 2019. Retrieved 2019-05-14.
- ^ DeBruce, Orlando; Jones, Jennifer (23 February 1999). «White House shifts Y2K focus to states». CNN. Retrieved 2016-10-16.
- ^ Atlee, Tom. «The President’s Council on Year 2000 Conversion». The Co-Intelligence Institute. Retrieved 2019-05-14.
- ^ a b «FCC Y2K Communications Sector Report (March 1999) copy available at WUTC» (PDF). Archived from the original (PDF) on 2007-06-05. Retrieved 2007-05-29.
- ^ «Statement by President on Y2K Information and Readiness». Clinton Presidential Materials Project. National Archives and Records Administration. 19 October 1998.
- ^ «Home». National Y2K Clearinghouse. General Services Administration. Archived from the original on 2000-12-05. Retrieved 2020-03-16.
- ^ Robert J. Butler; Anne E. Hoge (September 1999). «Federal Communications Commission Spearheads Oversight of the U.S. Communications Industries’ Y2K Preparedness». Messaging Magazine. Wiley, Rein & Fielding. Archived from the original on 2008-10-09. Retrieved 2016-10-16 – via The Open Group.
- ^ «Basic Internet Structures Expected to be Y2K Ready, Telecom News, NCS (1999 Issue 2)» (PDF). (799 KB)
- ^ «U.S., Russia Shutter Joint Y2k Bug Center». Chicago Tribune. 16 January 2000. Retrieved 2017-01-28.
- ^ a b «Collection: International Y2K Cooperation Center records | University of Minnesota Archival Collections Guides». archives.lib.umn.edu.
- ^ a b Kirsner, Scott (1 November 1997). «Fly in the Legal Eagles». CIO magazine. p. 38.
- ^ «quetek.com». quetek.com. Archived from the original on 2011-08-28. Retrieved 2011-09-25.
- ^ Internet Year 2000 Campaign archived at Cybertelecom.
- ^ Kunstler, Jim (1999). «My Y2K—A Personal Statement». Kunstler, Jim. Archived from the original on 2007-09-27. Retrieved 2006-12-12.
- ^ a b «False Prophets, Real Profits — Americans United». Archived from the original on 2016-09-27. Retrieved 2016-11-09.
- ^ a b Dutton, Denis (31 December 2009). «It’s Always the End of the World as We Know It». The New York Times.
- ^ Coen, J., 1 March 1999, «Some Christians Fear End, It’s just a day to others» Chicago Tribune
- ^ Hart, B., 12 February 1999 Deseret News, «Christian Y2K Alarmists Irresponsible» Scripps Howard News Service
- ^ Smith, B. (1999). «chapter 24 — Y2K Bug». I Spy with my Little Eye. MS Life Media. Archived from the original on 2016-11-06.
- ^ a b «Col Stringer Ministries — Newsletter Vol.1 : No.4». Archived from the original on 2012-03-20. Retrieved 2016-11-09.
- ^ Rivera, J., 17 February 1999, «Apocalypse Now – Y2K spurs fears», The Baltimore Sun
- ^ 1634–1699: McCusker, J. J. (1997). How Much Is That in Real Money? A Historical Price Index for Use as a Deflator of Money Values in the Economy of the United States: Addenda et Corrigenda (PDF). American Antiquarian Society. 1700–1799: McCusker, J. J. (1992). How Much Is That in Real Money? A Historical Price Index for Use as a Deflator of Money Values in the Economy of the United States (PDF). American Antiquarian Society. 1800–present: Federal Reserve Bank of Minneapolis. «Consumer Price Index (estimate) 1800–». Retrieved 2023-05-28.
- ^ «Y2K: Overhyped and oversold?». 6 January 2000.
- ^ Mitchell, Robert L. (28 December 2009). «Y2K: The good, the bad and the crazy». Computerworld.
- ^ which was well underway by 1996: Tharp, Paul (2 December 1996). «Millennium Milllionairs: Counting past 2000; Mainframe mavens make their return». The New York Post. p. 27.
- ^ David S. Joachim (1 May 2006). «A Mini-Y2K Looms, and Other Blips». The New York Times.
systems that automate the distribution of software fixes, called patches
- ^ James Christie, (12 January 2015), Y2K – why I know it was a real problem, ‘Claro Testing Blog’ (accessed 12 January 2015)
- ^ Y2K readiness helped New York after 9/11, article by Lois Slavin of MIT News, 20 November 2002.
- ^ «Finance & Development, March 2002 — September 11 and the U.S. Payment System». Finance and Development — F&D.
- ^ Goldberg, Michael; Carr, Kathleen (13 October 2003). «The Next Time the Lights Go Out». CIO Magazine.
- ^ Y2K readiness helped NYC on 9/11, article by Rae Zimmerman of MIT News, 19 November 2002.
- ^ a b Doward, Jamie (9 January 2000). «Russia Y2K bill ‘shows West overreacted’«. The Guardian.
- ^ Elizabeth Weise (14 February 1999). «Lights out? Y2K appears safe». USA Today.
- ^ John Quiggin (2 September 1999). «Y2K bug may never bite». Australian Financial Review. Archived from the original on 2008-05-24. Retrieved 2009-12-29.
- ^ Wright, Edward (28 November 1999), «Y2K Worries U.S. Embassy Staff in Moscow», LA Times.
- ^ White House: Schools lag in Y2K readiness: President’s Council sounds alarm over K-12 districts’ preparations so far, article by Jonathan Levine of eSchool News, 1 September 1999.
- ^ Hoover, Kent (9 January 2000). «Most small businesses win their Y2K gamble». Puget Sound Business Journal.
External links[edit]
Wikisource has original text related to this article:
- Center for Y2K and Society Records, Charles Babbage Institute, University of Minnesota. Documents activities of Center for Y2K and Society (based in Washington, D.C.) working with non-profit institutions and foundations to respond to possible societal impacts of the Y2K computer problem: helping the poor and vulnerable as well as protecting human health and the environment. Records donated by executive director, Norman L. Dean.
- International Y2K Cooperation Center Records, 1998–2000, Charles Babbage Institute, University of Minnesota. Collection contains the materials of the International Y2K Cooperation Center. Includes country reports, news clippings, country questionnaires, country telephone directories, background materials, audio visual materials and papers of Bruce W. McConnell, director of IY2KCC.
- Preparing for an Apocalypse: Y2K, Charles Babbage Institute, University of Minnesota. A web exhibit curated by Stephanie H. Crowe
- BBC: Y2K coverage
- In The Beginning there Was the Nerd – BBC Radio documentary about the history of computers and the millennium bug 10 years after using archival recordings.
- The Surprising Legacy of Y2K – Radio documentary by American Public Media, on the history and legacy of the millennium bug five years on.
- The Yawn of a New Millennium
- CBC Digital Archives – The Eve of the Millennium
- How the UK coped with the millennium bug
- «Time running out for PCs at big companies»—CNN
…Загорятся реки, взорвутся дороги, калькуляторы превратятся в ядерные боеголовки. |
Футурама о проблеме 2000 |
…Из-за не устранённых вовремя ошибок, связанных с «проблемой 2000 года», корпорация Microsoft отложила выпуск Windows 2000 до 1-го квартала 1901 года |
Компьютерра о проблеме 2000 |
Решение проблемы для некоторых похоже затянулось…
Проблема 2000, она же Y2K (Year 2 kilos, то есть год 2 тысячи, иногда транслитерируется на расовый русский как «Удвак») — внезапное выпиливание всех компьютеров в мире, которое ожидалось в первую миллисекунду 2000 года.
Виной тому — жадные программисты прошлого тысячелетия, которые поскупились выделить лишний байт для хранения даты; в результате, 1999 год должен был смениться на 1900 или 19100[1], ставя человечество на грань временного парадокса и деления на ноль. Градус добавляли вполне реальные подобные баги в самых разнообразных программах, неоднократно вылезавшие боком.
Предчувствуя глобальную катастрофу и возможный попил бабла, лучшие умы человечества объединились, чтобы дать бой этой напасти. Был разработан хитрый план, отпечатаны более 9000 книг по борьбе с недостающим байтом, а число патчей к различному софту исчислялось миллионами. В результате «проблема 2000» была полностью побеждена, и человечество возликовало. Несколько омрачал радость тот факт, что ни единого разрыва не произошло даже в тех странах, которые с проблемой не боролись, правительственных комиссий не создавали, книг не печатали и патчей не выпускали. И главное, миллиарды денег за новые, проверенно-сертифицированные версии разнообразных маздаёв никому не платили. Но прогрессивным людям недосуг оглядываться на такие мелочи, ведь впереди ещё много трудностей, о разрешении которых нужно начинать думать уже сейчас. Например, проблема 10000, проблема 2100 года (исчерпание EUI-48) или хотя бы 2038.
Y1C[править]
К 2011 году проблема возникла у жадных тайваньцев. Она связана с тем, что в Тайване в официальных целях используется календарь, ведущий отсчёт с 1912 года, поэтому 2011 год по нормальному белому календарю будет соответствовать сотому году по календарю узкоглазому, что могло вызвать проблемы в программах, в которых для хранения дат используются только две цифры, что на самом деле не редкость там. В итоге частный сектор не пострадал совсем, госучреждения же вовремя успели внести поправку на жадность.
Y2K38[править]
Ещё одна люто, бешено ожидаемая ошибка, связанная с инкрементирующим оверлоудом счётчика секунд, прошедших с начала эпохи 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_года в Википедии уже поставили).
Y21C[править]
2100 хоть и делится на четыре, но этот год не будет високосным, так как в григорианском календаре года, делящиеся без остатка на 100, не являются високосными, если не делятся без остатка на 400 (таким был 2000). Для быдла это будет выражаться в том, что праздник по случаю Октябрьской революции и Рождество будут выпадать на 8-ой день календаря, а 8 марта станет 9-ым марта.
Очевидно, что не только быдла, но и быдлокода без учёта этой особенности 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 век.
Y21C07[править]
2107-й год является последним годом, поддерживаемым файловой системой FAT (включая новомодную проприетарную до мозга костей exFAT). Эта файловая система используется на флэшках, отформатированных под Windows.
Y22C86[править]
20 ноября 2286 количество секунд, прошедших с начала эпохи Си, перевалит за 10 миллиардов. Тогда потребуется уже 11 цифр, чтобы хранить это значение. Соответственно, полетит весь софт, который сейчас тупо проверяет, что таймштапмы содержат 10 цифр. Плюс к этому обломаются все, кто хранит секунды тупо в виде числа в таблице с ограничением в 10 цифр.
30828[править]
В 30828-м году происходит переполнение времени в формате FILETIME, который используется повсеместно в Windows, включая файловую систему NTFS. Поэтому в 30828 году нас ждёт катастрофа. Но кто тогда будет пользоваться виндами? Впрочем, с Adeptus Mechanicus станется.
Y2C7BIT[править]
Ну и наиболее вероятная ошибка(про которую благополучно забыли настолько, что до её срабатывания от вписки про неё сюда осталось меньше суток, а неиллюзорно доставит она всем олдфагам как минимум. В особенности своей «невыпиливаемостью») связана с тем, что в самой топологии микросхемы таймера, так широко раскомунизженного по всем физическим электронным часикам во всём мире простой копипастой фрагмента кристалла чуть менее чем полностью, у счётчика года в этом кристалле разрядность тоже ограничена. Поэтому в обычных наручных, настенных, настольных и других электронных часах «с цифирьками вместо стрелок» после 2019-го наступает…не, даже не надейтесь… 1980-й год(в чём усмотрена шикарнейшая пасхалка так как это — год разработки этой топологии).
Ну а поскольку посадить такую микросхему на материнку какого-нибудь компучера, смартфона или бытового устройства, де будильник играет хоть какую-то роль, тоже вполне так могли — не удивляйтесь особым чудесам на кухне, в ванной,…и т. п. в новом 2020-м/1980 м году Это как раз нормально.
Так что если в Новом Году у Вас при взгляде на ГОД на любимых часиках возникнет стойкое ощущение, что явилась Белка и пора бежать сдаваться — не пугайтесь. Баг не у Вас, а у Этой Реальности. И даже скажу больше — Это не баг — это фича!(с)Nokia.
Високосная секунда[править]
Иногда так бывает, что сутки заканчиваются не в 23:59:59, а в 23:59:60 (либо же в 23:59:58), дабы учесть влияние Луны на скорость вращения Земли. Но увы, не всякое ПО способно корректно переварить лишнюю секунду. Особенно этим грешат прыщесерверы, которые попросту зависают, приводя к локальным пиздецам в банковской и не очень сфере. В последний раз такой пиздец случился в ночь с 31 декабря 2016 на 1 января 2017 года. ЦБ РФ нервничает.
31 февраля[править]
Ещё одна пасхалка в микросхеме таймера (которой можете лично глумонуться над знакомыми в конце февраля) связана с сигналами сброса счётчика дней и инкремента счётчика месяцев. Делается таким образом:
1. Ставим на часах високосный год.
2. Выставляем 29 февраля.
3. Возвращаем реальный год…
Результатом таких нехитрых манипуляций получим то, что часы педантично отсчитают в феврале от 31 до 39 дней, при этом всерьёз считая, что их совсем не глючит и март реально будет позже.
IRL[править]
У многих может возникнуть впечатление, что проблема была высосана из пальца и реально никакой угрозы, тем более глобальной, не существовало. Однако следует учитывать местную специфику. Пока в этой стране ударными темпами, за почетную коллективную грамоту, недосыпая и недоедая, пытались к 1980 году построить олимпийские объекты коммунизм и клеили цельночугуниевые танчики и чугуниевые ракеты, проклятые капиталисты пытались выкинуть на улицу без выходного пособия существовавший у них уже тогда офисный планктон, внедряя в стране эльфов, Цюрихе, Лондоне и прочих интересных местах, первые банковские компьютеры на базе мейнфреймов. Софт для этих монстров в связи с отсутствием 1С писался на таких интересных языках, как COBOL, MUMPS и прочих радостях гиков, которые большинство современных программистов считают вымершими из-за отсутствия статей про них на хабре.
Так как со временем парк мейнфреймов естественным путём убывал, а денег и нервов на переиздание всего выводка программ на С++ было жалко, то очень часто принималось тупое и эффективное решение: выбывающий мейнфрейм заменялся современным сервером, внутри которого крутился виртуальный двойник того самого мейнфрейма со всеми программами 60-ых годов написания. Как известно, раньше трава была зеленее, тян чаще давали, а программы писались добротно, без всяких там переполняющихся буферов и утечек драгоценной памяти. А раз работает — не трогай. PROFIT??? Не совсем… В результате к 2000 году многие весьма известные и уважаемые организации (типа банков и страховых контор) подошли с наличием у них ПО, которое мало того, что поведет себя совершенно непредсказуемо, но и написанного 20 лет назад на непонятных языках, учебники по которым уже давно сдали на макулатуру, а документацию и исходные тексты отдали в музей. Поэтому во второй половине 90-ых наблюдался резкий рост зарплат и вакансий для специалистов, владеющих соответствующими языками. Бородатые гики 60-70-ых, которые к указанному времени не спились и не потеряли квалификации, смогли срубить немало бабла даже в качестве простых программистов.
В этой стране естественный выпил большинства мамонтов отечественного компьютеростроения произошел в начале 90-ых из-за проигрыша зарубежным аналогам в результате естественного отбора. Более того, всеобщее нищебродство оттянуло момент тотальной компьютеризации до того времени, когда 640К памяти уже хватало далеко не всем. Тем не менее банковским ИТшникам пришлось оторваться от сапера, дабы разобраться с ДОСовскими программами, купленными в первой половине 90-ых у благополучно развалившихся наследников советских кооперативов.
Так что несмотря на то, что рядового анонимуса этой страны Y2K касался незначительно (в связи с отсутствием счетов в швейцарских банках), серьезный повод для беспокойства все же был. Но нельзя не признать, что основную часть внимания сабжу обеспечили маркетологи, надеявшиеся поиметь гешефт от продажи программ и оборудования с шильдиком «Y2K compatible».
Y2K в играх[править]
В игре Metal Gear Solid 2: Sons of Liberty проблема Y2K была обыграна довольно занятно. Патриоты под видом патчей, решающих эту проблему, подсунули всем программы-цензоры, дабы получить полный контроль над информацией.
В винрарнейшей игре SkiFree начиная ровно с дистанции 2000 метров за тобой начинает гоняться снежный человек.
Целая инди-игра YIIK названа в честь этого феномена. А жаль.
Y2K в кино[править]
- В мультсериале «Царь Горы» есть целая серия, посвящённая этому событию (4 сезон 10 серия).
- В мультсериале «Симпсоны» Гомер забывает устранить баг на АЭС, связанный с проблемой Y2K, что приводит к гибели большей части населения (230 эпизод, 11 сезон, 4 серия, 3 часть).
- В мультсериале «Гриффины» только Питер озаботился проблемой Y2K и спас свою семью от мутаций. Но ненадолго.
- В мультсериале «Футурама» отец Фрая озабочен проблемой 2000.
- В сериале «Меня зовут Эрл» Эрл и компания спрятались в подвал от Y2K, прожив там месяц.
- В фильме «Превосходство / Transcendence [2014]» упоминается «проблема 2000».
- В культовом «Офисное пространство / Office Space [1999]» главный герой упоминает, что решением этой проблемы его софтверная компания и занимается.
Ссылки[править]
- Resign patterns. См. паттерн «детонатор».
- xkcd
См. также[править]
- 2k12
- Конец света
- Свиной грипп
- Вендекапец
Примечания[править]
- ↑ Особо криворукие быдлокодеры для облегчения всякого рода сортировок и прочих работ с датой ещё в середине 70-х гг. заложили кучу самых невероятных ляпов в свои программы и библиотеки. Типичное решение — дату хранить в int с отсчетом от 1900-го года, поэтому после 1900+99=1999 ожидался 1900+100, да ещё не «плюс» в смысле арифметики, а в смысле «дописать в строку при выводе», и хорошо ещё если догадывались оставить два символа, а не всунуть как есть. Расово верный ArtMoney for DOS всовывал как есть. К 2000 году большинство подобного творчества благополучно скончалось естественным путем от древности, но есть смена же.
Языки программирования | Промышленные: 1С • BAT • C# • C • C++ • Java • JavaScript (AJAX) • Pascal • Perl • PHP • Python • Ruby • ABAP • Ассемблер • Васик • Фортран Эзотерические: BrainFuck • Erlang • Forth • Haskell • LISP (My other car) • Prolog • Tcl • ΤΕΧ • Oracle |
Профессии | Быдлокодер • Программист • Тестировщик • Хакер • Хеллоуворлдщик |
Методы и стили | Reverse Engineering • Анти-паттерн • Выстрелить себе в ногу • Грязный хак • Код (индусский) • Костыль • Метод научного тыка • Помолясь • Свистелки и перделки • Очередь • Спортивное программирование |
Прочее | ++i + ++i • Deadline • %s • 640 килобайт • CMS • Dummy mode • ЕГГОГ • Foobar • God is real, unless explicitly declared as integer • GOTO • Ifconfig • KISS • RegExp • SICP • sql.ru • Xyzzy • Дискета • Инжалид дежице • КОИ-8 • Лог • Ман • Рекурсия • СУБД • Тест Тьюринга • Умение разбираться в чужом коде • Фаза Луны • Фатальный недостаток • Проблема 2000 |
Числа и цифры | +1 • 1.0 • 2.0 • π • 3,5 • 3,62 • 8/64 • 13 • 14/88 • 16 • 19 • 20 • 25 • 28 • 34 • 38 • 40 • 42 • 51 • 57 • 63 • 77 • 80 • 101 • 121 • 128 • 220 • 228 • 265 • 282 • 314 • 322 • 359 • 404 • 410 • 502 • 640 • 646 • 666 • 1111 • 1138 • 1200+ε • 1337 • 1500 • 1812 • 2000 • 2300 • 3310 • 3605 • 3730 • 9000 • 9600 • 12309 • 40 000 • 100500 • 260602 • 13 000 000 • 1 000 000 000 (Сталинский • Золотой) • 1 208 925 819 614 629 174 706 176 • G64 • ∞ |
Проценты | 90% женщин • 95% населения • Инфа 100% • 146% |
Время | 3 секунды • 5 секунд • Полшестого • 7:40 • 10:10 • 1917 год • 1980-е (1984 год) • 1990-е • 2000-е (2000 год) • 2010-е (2012 год) |
Прочее | 1 Guy 1 Jar • 2 Girls 1 Cup • ⑨ • Sweet home • 2 в 1 • 3 Guys 1 Hammer • 58 видов геев • Автомобильные номера • Гет • ДЕЕ1991ГР • Деление на ноль • Закон Парето • Код • Матан • Матановая капча • Натуральные числа • Простые числа • Вещественные числа • Рулетка • Сотни нефти • Теорема Ферма • Теория относительности • Чуть более, чем наполовину • Семь чудес света • Квадратура круга • Три обезьяны • Monkey dust |
IL | ADSL • AFAIK • AFK • AISB • AJAX • ASL • ASMR • AYBABTU • BBS • BOFH • BRB • BSOD • BTW • C&C • CMS • CYA • DC • DDLC • DDoS • DFC • DRM • EFG • FAQ • FNAF • FTGJ • FTN • FTL • FTW • FUBAR • GIF • GN • GNAA • GPON • GTA • GTFO • HISHE • I2P • IANAL • ICWYDT • IIRC • inb4 • IMHO • IRC • ITT • JFGI (UTFG) • RYTP • JB • JFGI • KISS • KSP • LFS • LMAO • LMD • LOIC • LOL • MILF • MMORPG • NEDM • NRB • NSFW • NYPA • OMG • O RLY? • P2P • PHP • RAC • ROFL • RPG • PSG • RTFM • RTS • SADM • SEO • SICP • SOPA • STFU • TBS • tl;dr • Tor • TOS • TTYL • UWBFTP • WOW • WTF • XAB • YFR • YOBA • YTMND • ZMH • KSP • CS |
ИЖ | 265 • АПВОВНВ? • АПВС? • АСДП • БАО • БАП • ББПЕ • БХКП • ВА? • ГК • ГСР • ДТФ • ЕБМП • ЕВПОЧЯ • ЕМНИП • ЕОТ • CP • WWW • ИПХ • ЕРЖ • ЖЖ • ИЧСХ • КБиО • КГ/АМ • КЛБ • КПЗ • КСМ • ЛОР • ЛПП • МНУ • МПХ • НЁХ • ОБВМ • ОБЧР • ОИНЧ • ОС • ОЯШ • ПГМ • ПНХ • ППКС • РЛО • СЗОТ • СИГ • СПГС • ССЗБ • СУБД • СХБ • ТВН • ТКП • ТП • УГ • УМВР • УЧНН(С)Р • ФГМ • ХЗ • ХЗКНР • ЧСВ • ЭОС • ЯННП • ЯПОЭЗ • КС • ЕСД |
RL | 14/88 • YWNBAW • A.C.A.B. • aka • AMV • ASAP • BDSM • © • СР • COVID-19 • DIY • etc • HBO • KFC • KKK • LGRTR • MTV • NASCAR • N.B. • NHK • P. S. • R.I.P. • SOAD • sXe • ™ • WWJD • Y2K • ZOG |
РЖ | АвтоВАЗ (ТАЗ) • АК-47 • АКМ • БАД • БГ • Бомж • БОЧ • ВВП • ВИD • ВУЗ (ИТМО • МГИМО • МФТИ • НМУ) • ГДЗ • ГДР • ГИБДД • ГЛОНАСС • ГМО • ГОСТ • ГрОб • ГСМ • ДВР • ДК • ДМБ • ДПНИ • ЕдРо • ЗППП • ИБД • КВН • КЕМ • КМВ • КМПКВ • КНДР • КНОР • КОБ • КПЛО • КСП • МКАД • МММ • НБП • НЛО • НЛП • НОД • НОМ • НТВ • ОБС • ОпСоС • ОСАГО • ОТР • ПДРС • ПМС • ПНКС • ПСПП • РАЕН • РБК • РЖД • РПЦ • СДВ • СОРМ • СПИД • СССР • СТС • США • ТЛЗ • ТНТ • ФБР • ФСБ • ХУЯС • ЦА • ЧГК • Ы • ЮАР • ЮЮ • ДВР • РАО • ЧП |
Разновидности | Большой Пиздец • Жопа • Кузькина мать • Медный таз • Экстерминатус |
Предсказатели | А-культщики • Сурвивалисты • Жопоголики • Параноики • Пророки (Ванга • Нострадамус • Павел Глоба • Хазин) |
Антиутопия | Atomic Heart • BioShock • BioShock 2 • BioShock Infinite • Singularity |
Варианты | 2012 год • TIME PARADOX • Атомная бомба (Межконтинентальная баллистическая ракета) • Большой адронный коллайдер • Глобальное потепление • Зомби-апокалипсис • Пандемия (Коронавирус) • Пик нефти • Популяционная катастрофа • Скайнет (УВЧ • Машина Судного дня) • Третья мировая война • Государственный капитализм • Кризисное расточение капиталов • Базовая ошибка Карла Маркса |
Локальные | Eyjafjallajokull • Авиакатастрофы (под Смоленском) • Кораблекрушения (АПЛ «Курск» • Титаник) • Массовые расстрелы • Мировой финансовый кризис • Наводнение в Крымске • Пожары (лесные • в «Хромой лошади») • Террористические акты (11 сентября • Бостонский теракт • Взрывы в метро) • Челябинский метеорит |
Места | Бермудский треугольник • Бхопал • Комбинат «Маяк» • Уиндскейл • Фукусима • Чернобыль |
Компьютерные и интернетовские |
BSOD • GAME OVER • Вендекапец • Падения (Большой августовский • Унылый декабрьский • Унылый январский) • Проблема 2000 |
Постапокалипсис | Adventure Time • Fallout • S.T.A.L.K.E.R. • The Road • Кин-дза-дза • Метро 2033 • Тёмная башня |
Что потом | Адъ и Израиль • Не все доживут до зимы • Мы все умрём! • Тревожный чемоданчик |
The Y2K bug
About[]
The Year 2000 (Y2K) problem (also known as the Y2K problem, the Y2K bug, or simply Y2K) was a proposed problem for both digital (computer-related) and non-digital documentation and data storage situations which resulted from the practice of abbreviating a four-digit year to two digits.
In computer programs, the practice of representing the year with two digits becomes problematic with logical error(s) arising upon «rollover» from x99 to x00. This has caused some date-related processing to operate incorrectly for dates and times on and after January 1, 2000 and on other critical dates which were billed «event horizons». Without corrective action, it was suggested that long-working systems would break down when the «…97, 98, 99, 00…» ascending numbering assumption suddenly became invalid. Companies and organizations worldwide checked, fixed, and upgraded their computer systems.
While no globally significant computer failures occurred when the clocks rolled over into 2000, preparation for the Y2K problem had a significant effect on the computer industry. There were plenty of Y2K problems, and that none of the glitches caused major incidents is seen as vindication of the Y2K preparation.[1] However, some questioned whether the absence of computer failures was the result of the preparation undertaken or whether the significance of the problem had been overstated.
Many banks have responded to the Y2K problem by forcing full 4-digit year entries on check forms, which helps to prevent the error from occurring in accounting environments.
Background[]
Y2K was the common abbreviation for the year 2000 software problem. The abbreviation combines the letter Y for «year», and k for the SI unit prefix kilo meaning 1000; hence, 2K signifies 2000. It was also named the Millennium Bug because it was associated with the popular (rather than literal) roll-over of the millennium, despite the fact that the problem could have occurred at the end of any ordinary century.
The Year 2000 problem was the subject of the early book, Computers in Crisis by Jerome and Marilyn Murray (Petrocelli, 1984; reissued by McGraw-Hill under the title The Year 2000 Computing Crisis in 1996). The first recorded mention of the Year 2000 Problem on a Usenet newsgroup occurred Saturday, January 19, 1985 by Usenet poster Spencer Bolles.[1]
The acronym Y2K has been attributed to David Eddy, a Massachusetts programmer,[2] in an e-mail sent on June 12, 1995. He later said, «People were calling it CDC (Century Date Change), FADL (Faulty Date Logic) and other names.»
Many computer programs stored years with only two digits; for example, 1980 would be stored as 80. Some such programs could not distinguish between the year 2000 and the year 1900. Other programs would try to represent the year 2000 as 19100. This could cause a complete failure and cause date comparisons to produce incorrect results. Some embedded systems, making use of similar date logic, were expected to fail and cause utilities and other crucial infrastructure to fail.
Some warnings of what would happen if nothing were done were particularly dire:
The Y2K problem is the electronic equivalent of the El Niño and there will be nasty surprises around the globe. — John Hamre, United States Deputy Secretary of Defense[3]
Special committees were set up by governments to monitor remedial work and contingency planning, particularly by crucial infrastructures such as telecommunications, utilities and the like, to ensure that the most critical services had fixed their own problems and were prepared for problems with others. While some commentators and experts argued that the coverage of the problem largely amounted to scaremongering, it was only the safe passing of the main «event horizon» itself, January 1, 2000, that fully quelled public fears. Some experts who argued that scaremongering was occurring, such as Ross Anderson, Professor of Security Engineering at the University of Cambridge Computer Laboratory, have since claimed that despite sending out hundreds of press releases about research results suggesting that the problem was not likely to be as big a problem as some had suggested, they were largely ignored by the media. Basically, it was a fluke.
Links[]
Wikipedia Article
References[]
- ↑ Google Groups — net.bugs — «Computer bugs in the year 2000.» Retrieved on 22 April 2007.
- ↑ American RadioWorks Y2K Notebook Problems — The Surprising Legacy of Y2K. Retrieved on 22 April 2007.
- ↑ Looking at the Y2K bug, portal on CNN.com
Для компьютерного и офисного оборудования проблема смены тысячелетий заключается в возможной неверной работе модуля 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 года?
Запустить тест, например NSTL. Или выбрать в Интернете любую тестовую программу, вот список специализированных сайтов:
- www.unicore.com/millennium.html
- www.nstl.com/html/nstl_y2k.html (NSTL)
- www.firmware.com
- www.ami.com/amibios/ami_2000.html
Но можно обойтись и без специальных тестовых программ.
Проверка ОС
- Для выполнения теста желательно загрузить операционную систему до монитора командной строки без каких-либо драйверов и резидентных программ, а также отключить компьютер от локальной сети.
- С помощью команд date и time (или предназначенных для этого команд вашей ОС) установить системную дату на 31 декабря 1999 года, а время — на 23:59 (для DOS и Windows это команды date 31-12-1999 и time 23:59).
- Проверить правильность установки даты и времени (для DOS и Windows это те же команды без аргументов).
- Подождать более одной минуты.
- Проверить системную дату еще раз. Если она соответствует 1 января 2000 года, то ваша ОС не имеет «ошибки 2000 года».
Проверка BIOS
- Войти в BIOS Setup (здесь надо отметить, что имеется в виду программа Setup, располагающаяся в ПЗУ BIOS, а не внешняя, запускаемая из операционной системы. Если запущена последняя, то на результат теста может влиять сама ОС).
- Установить дату на 31 декабря 1999 года и время на 11:59PM (в большинстве BIOS формат времени и даты соответствует американскому).
- Подождать более одной минуты, наблюдая за изменением даты. Если она корректно меняется на 1 января 2000 года, то ваша BIOS не содержит «ошибки 2000 года».
Проверка аппаратного таймера (RTC)
- Войти в BIOS.
- Установить дату на 31 декабря 1999 года и время на 11:59PM.
- Выйти из программы Setup с сохранением установок. Выключить компьютер. Подождать более одной минуты, включить компьютер и, не допуская загрузки ОС, войти в BIOS Setup.
- Если дата установлена на 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. Опять таки, использование такого оборудования в быту, даже на стыке столетий, вряд ли может вызовать какие-либо серьезные последствия, однако неподготовленное промышленное оборудовании может вызвать прямо или косвенно большие проблемы.
Для поиска решения проблемы для этих систем необходимо потратить много времени и денежных средств, но и то и другое люди тратить не любят. И вместо попыток инвестировать деньги и время для решения этой проблемы большинство пытается закрыть на нее глаза и надеяться на лучшее. Что же, по оценкам западных экспертов Россия сможет справиться с последствиями проблемы Y2K только к середине 2000 года.
Дополнение
Многочисленными тестами установлено, что RTC старого образца имеет одну существенную погрешность: при переходе от 31 декабря 1999 к 1 января 2000 года значение тысячелетия (хранящееся в ячейке с адресом 32h) остается неизменным (19 вместо 20). Все современные BIOS умеют корретно отрабатывать данную ситуацию, и в случае использования программ, которые получают значение даты, используя прерывания BIOS, данная проблема не дает о себе знать. Тем не менее существует потенциальная опасность использования программ, которые получают значение даты путем прямого («аппаратного») чтения значений из CMOS. В результате может быть получено значение года 1900 вместо 2000. Наиболее неприятным является то, что данная проблема возникает только во включенном состоянии компьютера. Если компьютер в момент перехода дат находился в выключенном состоянии, то BIOS при начальном тесте откорректирует данную проблему. Поэтому необходимо тщательно подбирать материнские платы для систем, работающих в непрерывном режиме (например, серверы различного назначения).
Первый вариант проверки (визуальное наблюдение).
- Загрузить компьютер в режиме MS-DOS.
- Установить при помощи команды date дату 31 декабря 1999
- Установить при помощи команды time время 23:59
- Запустить программу CMOS.EXE (18 Кб), и в реальном времени наблюдать изменение (или неизменение) значения в ячейке 32h (Century in BCD). При этом в ячейках с 00h по 09h будет отображаться текущее время.
Второй вариант проверки (специальные тесты)
1. Navratyl Software System Inform v0.42c при тесте BIOS отображает наличие «бага» в RTC и способность BIOS’a его корректировать
2. RTCDATE (программа сертификации по Проблеме 2000) проверяет корректность аппаратного перехода по набору дат, отлавливаает «баг» RTC.
Спустя 17 лет после проблем, возникших в связи с ошибкой 2000 года по всему миру; мир сейчас обеспокоен новой проблемой. Это называется проблемой 2038 года , и вокруг этой проблемы много путаницы. Люди задаются вопросом, является ли проблема Y2K38 такой же или хуже, чем проблема Y2K. Что будет в 2038 году? Некоторые предположения говорят, что это может нанести больше ущерба, чем Y2K. Но все ли это правда? Давайте разберемся.
Проблема 2000 года
Мир приближался к оцепенению, когда приближался 2000 год. Это было не только изменение всех четырех цифр, но также помешало возникновение серьезных проблем для программного обеспечения и программ, разработанных в эпоху с 1960-х по 1980-е годы.
Те, кто забыл о Y2K, или все еще не знают об этом; Y2K была компьютерная ошибка. Ошибка могла бы вызвать проблемы для программного обеспечения и компьютерных программ после даты 31 декабря 1999 года. Y2K также называется « ошибка тысячелетия », так как буква k обозначает килограмм (используется для обозначения номер 1000); таким образом, «2k» представляет 2000 год.
Ошибка 2000 года была проблемой с датами, так как компьютерные программы, разработанные в 20-м веке, использовали двузначный код для года. Например, за 1978 год 19 не было учтено в дате. Только последние две цифры; то есть, 78 представляли год. Причиной короткой формы дат было дорогостоящее хранение данных того времени. Однако эта система дат не будет работать с 1 января 2000 года. Инженеры поняли, что программы и программное обеспечение могут интерпретировать не 00 как 2000, а как 1900. Таким образом, дата 1 января 2000 года будет интерпретироваться как 1 января 1900, по компьютерным программам. Предполагалось, что системы, которые полагаются на точный расчет данных, определенно потерпят неудачу из-за этой неверной интерпретации.
Однако когда приближался 2000 год, компьютерных программ и областей, которые зависели от них, было очень мало и ничтожно мало проблем. Главного беспорядка можно было избежать, просто изменив поле года на 4 цифры вместо 2 цифр. Таким образом, в итоге вся проблема 2000 года оказалась менее катастрофической, чем предполагалось.
В чем проблема 2038 года
Чтобы понять серьезность проблемы Y2K38 или проблемы 2038 года, важно знать, что именно.
Это так называется, потому что проблема 2038 года возникнет 19 января 2038 года. Предполагается, что проблема Y2038 возникнет из-за ограничений 32-разрядных процессоров и систем, которые на них работают.
Исследователи говорят, что в 03:14:07 UTC 19 января 2038 года системы, работающие на 32-разрядных процессорах, не смогут справиться с изменением даты и времени. Компьютеры начали отсчитывать время в секундах с 1 января 1970 года. Но 32-разрядные системы способны рассчитывать только до числа 2 147 483 647 ; таким образом, за время он может рассчитать только эти много секунд. А в 03:14:07 UTC 19 января 2038 года счет достигнет 2 147 483 647 секунд.
Таким образом, вопрос в том, что произойдет, когда тактовая частота 32-разрядных систем превысит порог в 2 147 483 647 секунд? Некоторые предполагают, что эти компьютеры просто сломаются и вообще перестанут работать. В самом деле!?
Конечно, нет! В течение следующих 20 лет (т. Е. До 2038 года) в индустрии компьютеров и программного обеспечения произойдет много изменений. Говорят, что профессионалы в области безопасности данных должны будут изменить методы работы в таких областях, как национальная безопасность, шифрование SSL, устройства Интернета вещей и криптовалюта.
Самое простое решение, предложенное исследователями данных для проблемы 2038 года, – обновить системы до 64-разрядных процессоров . Проще говоря, 64-разрядные машины будут иметь огромную емкость для подсчета до 9 223 372 036 854 775 808; счет, который, конечно, не закончится в ближайшем будущем.
На самом деле, многие новейшие ПК и системы работают на 64-битной платформе. Windows-машины Microsoft работают на 64-битной версии с тех пор, как в 2005 году была выпущена 64-битная версия Windows XP Professional. Даже настольное программное обеспечение Apple OS X работает исключительно на 64-битной версии после того, как Apple выпустила Mac OS X 10.7 Lion в 2011 году. Unix-системы, которые питают веб-серверы и другое серверное оборудование, все еще используют 32-битные системы; большинство из них могут быть обновлены до 64-битных систем с течением времени.
Любопытный случай с видео Gangnam Style
Обновление систем до 64-битных процессоров является доказанным фактом; потому что та же техника была использована YouTube в декабре 2014 года. 3 декабря 2014 года видео южнокорейской поп-звезды Psy «Gangnam Style» побило все рекорды просмотров.Настолько, что количество просмотров превысило 2 147 483 647. Но YouTube, работающий на 32-битных процессорах, не смог рассчитать дальше этого числа, и сайт потерпел крах. Инженеры YouTube смогли быстро решить проблему, обновив систему до 64-битной.
Заключение
В заключение следует отметить, что методика, используемая YouTube, может использоваться для сохранения других систем до 2038 года. До 2038 года достаточно времени для обновления систем и внесения необходимых изменений, чтобы проблема 2038 года не создавала любые опасности для программного обеспечения и программ.
Единственные компьютеры, которые могут столкнуться с некоторыми проблемами из-за проблемы 2038 года, – это компьютеры со встроенными системами. Многие из этих встроенных систем используются в системах с длительным сроком службы, таких как транспортные системы, некоторые изолированные компьютерные системы и системы контроля устойчивости. В результате встроенные системы нуждаются в полной замене, поскольку их программное обеспечение не может быть обновлено.
Так что, в конечном итоге, нет необходимости паниковать из-за проблемы 2038 года!
В январе 2000 года компьютерный мир ожидает небольшой апокалипсис.
ПРИЧИНЫ ВОЗНИКНОВЕНИЯ ПРОБЛЕМЫ 2000 ГОДА
ДАТЫ В ЖИЗНИ КОМПЬЮТЕРНЫХ СИСТЕМ
СИСТЕМНЫЕ ЧАСЫ
ОПЕРАЦИОННАЯ СИСТЕМА И ПРОБЛЕМА Y2K
ПРИЛОЖЕНИЯ И ПРОБЛЕМА Y2K
ЗАКЛЮЧЕНИЕ
Все боится времени, но даже время боится пирамид.
В январе 2000 года компьютерный мир ожидает небольшой апокалипсис.
Все боится времени, но даже время боится пирамид.
Арабская пословица.
Проблема 2000 года? Как же, слышали! Это что-то про мэйнфреймы и старые программы на языке COBOL. Нас это не касается. И не надо морочить людям головы, чтобы вытянуть у них деньги.
Так рассуждают многие специалисты в области информационных технологий. И именно так считал ваш покорный слуга. До тех пор пока сам не столкнулся с проблемой 2000 года. Один из моих коллег поменял в ПК дату на 2000 год, дабы посмотреть, как умная машина на это отреагирует. Ничего страшного не произошло, и мой коллега забыл, что живет в 2000 году. Однако вскоре обнаружилось, что письма его электронной почты, посланные с ПК, либо теряются, либо присоединяются к чужим письмам. Это подвигло нас более внимательно присмотреться к проблеме Y2K (так коротко называют проблему 2000 года). Результаты оказались весьма любопытными. Можно смело сказать, что в 2000 году нас ждут серьезные испытания. И они в той или иной мере затронут большинство компьютерных систем.
По опросам, проведенным в США, примерно 15% специалистов вообще не слышали про проблему 2000 года, а 60% слышали, но плохо представляют ее суть. Надо думать, в России положение еще хуже. Мы живем в сладком неведении относительно того, что нас ожидает.
В знаменитом фильме Стэнли Кубрика «Космическая одиссея 2001 года» компьютер HAL перестал подчиняться командам человека, и это чуть не привело к катастрофе. Причина такого загадочного поведения так и осталась неясной для зрителей. Рискну предположить, что в компьютере HAL было установлено программное обеспечение, некорректно работающее с датами после 2000 года.
Проблема Y2K становится центральной в компьютерной индустрии. Кратко ее можно охарактеризовать так. Большое количество программно-аппаратного обеспечения не предназначено для работы с датами после 2000 года. К чему это может привести? В самом лучшем случае приложения будут неправильно выдавать дату. А в самом худшем — вообще не будут работать.
ПРИЧИНЫ ВОЗНИКНОВЕНИЯ ПРОБЛЕМЫ 2000 ГОДА
Во-первых, чисто техническая причина. Когда-то оперативная память была очень дорога. В те времена компьютер с памятью в 64 Кбайт считался пределом мечтаний для вычислительных центров. Поэтому вопрос экономии лишних байтов был весьма насущным. Может создаться впечатление, что такой проблемы более не существует, но это не так. Проблема экономии памяти была и остается актуальной во встроенных устройствах или микросхемах ПЗУ (вспомните хотя бы смарт-карты).
Второй причиной можно назвать организационную. В американских стандартах, принятых Национальным институтом стандартов и технологии (http://www.nist.gov), год в представлении даты имеет только две цифры. Например, 13 апреля 1998 года обозначается 04/13/98, а 17 февраля 2001 года — 02/17/01. Нечто похожее принято в других странах, в том числе и России. Такой формат сам по себе вполне приемлем, но при компьютерной обработке может приводить к некорректному представлению дат. Программное обеспечение должно понимать разницу в датах при смене столетия. К сожалению, это пожелание далеко не всегда выполняется. Разработчики ПО повсеместно используют чужие API, что только добавляет трудностей.
Кстати, Международная организация по стандартам (International Organization for Standartization, ISO, http://www.iso.ch) рекомендует использовать следующую форму записи yyyy-mm-dd, т. е. 17 февраля 2001 года будет изображаться как 2001-02-17. Но такую форму практически ни в одной стране не употребляют.
С технической и организационной причинами тесно связаны и такие, как проблема унаследованных систем и недальновидность разработчиков. Кто мог предположить, что программы, написанные в 80-х, 70-х и даже 60-х годах, будут до сих пор активно применяться? Как сказал Булэ де ля Мерт при казни Дю д’Аньена: «C’est pire qu’un crime, c’est une faute» (франц. — «это больше чем преступление, это — просчет»).
ДАТЫ В ЖИЗНИ КОМПЬЮТЕРНЫХ СИСТЕМ
По прогнозам Gartner Group, около 30% всех приложений не совместимы с 2000 годом. Устранение ошибок, связанных с проблемой Y2K, потребует фантастических затрат — от 300 до 600 млрд долларов. Неплохая цена за два байта! Сравните эту сумму с доходом Microsoft в 1997 году (11,4 млрд долларов). Можно привести и такую красноречивую цифру: только 7% (!) персональных компьютеров эта пресловутая проблема не грозит.
В настоящее время самыми высокооплачиваемыми специалистами в области информационных технологий (естественно, на Западе) оказались те, кто связан с устранением ошибок Y2K. Учитывая объем работы, их катастрофически не хватает. Кстати, сейчас иностранным специалистам в области Y2K (особенно знающим COBOL) достаточно просто получить работу в США. Решением проблемы Y2K занимается множество фирм, которые буквально завалены заказами. В Европе проблему обостряет переход стран ЕЭС на новую валюту.
Читатель вправе задать следующий вопрос: ну и ладно, пусть мой компьютер неверно показывает дату, что в этом страшного? Из-за чего, собственно, весь сыр-бор?
Ответ на этот вопрос получить не так-то просто, несмотря на большой объем информации в прессе. Значительная часть дискуссий в Internet посвящена общим вопросам проблемы Y2K, например принципам разработки корпоративных планов тестирования и перехода на новое ПО. Конкретного материала сравнительно немного. Тому есть несколько причин.
Во-первых, многие разработчики ПО скрывают или не всегда правдиво отражают состояние своих программных продуктов. Негативная информация может повредить их бизнесу. Если же разработчик уверен в своем продукте, он обязательно объявляет о совместимости с 2000-м годом.
Во-вторых, информация стоит денег. Консалтинговые и тестовые компании неохотно делятся результатами своих исследований (бесплатно).
В-третьих, за несколько десятилетий создано такое количество ПО, что проверить его на предмет наличия ошибок — задача очень непростая. Думается, еще долго после 2000 года специалисты по Y2K не останутся без работы.
Тем не менее имеющейся информации достаточно, чтобы хотя бы приблизительно отразить проблемы, с которыми столкнутся специалисты информационных технологий. Оставим в стороне унаследованные системы и их приложения, так как они не характерны для России. Основное внимание в статье будет уделяться сетевым технологиям, но в общем контексте информационных решений. Рассмотрим для начала, откуда возникает проблема Y2K на аппаратном и программном уровне персонального компьютера, так как в настоящее время это самая популярная не только клиентская, но и серверная платформа.
Следует учитывать одну тонкость. В Internet имеется несколько списков продуктов, совместимых с Y2K. Одни списки предоставляют разработчики программно-аппаратного обеспечения, а другие — независимые компании, занимающиеся тестированием продуктов. Списки независимых тестировщиков ценятся гораздо выше, поскольку в них нет лакировки действительности. Конечно, если производитель ПО заявляет о несовместимости своего продукта с Y2K, то верить ему можно. Однако порой производитель ограничивается сообщением, что продукт не тестировался или вообще ничего не упоминает по этому поводу. Тогда единственный путь — обратиться к спискам или самому заняться тестированием.
Со своей стороны мы можем порекомендовать несколько интересных серверов Web, содержащих полезную информацию по проблеме Y2K. Один из них (http://www.compinfo.co.uk/y2k/manufpos.htm#manufacturers) имеет многочисленные ссылки на различные списки продуктов, совместимых с Y2K, а также разного рода утилиты и комментарии. Сервер www.year2000.com также предоставляет достаточно любопытные сведения. Телеконференция comp.software.year-2000 специально посвящена дискуссии о проблеме 2000-го года, но она, на наш взгляд, недостаточно информативна.
СИСТЕМНЫЕ ЧАСЫ
В персональном компьютере время отсчитывают три вида часов: часы реального времени CMOS, часы BIOS и часы операционной системы. Каждые из них имеют свое функциональное назначение.
Часы CMOS питаются от собственного источника энергии (аккумулятора) и не зависят от работы остального оборудования. Основное их назначение — отслеживать время, когда компьютер отключен. Часы CMOS в персональных компьютерах появились не сразу и стали стандартной принадлежностью только начиная с IBM PC AT. До этого момента время и дата (в часах BIOS и DОS/Windows) устанавливались с помощью команд DATE и TIME (в MS-DOS). Обычно система обращается к часам CMOS только один раз, в момент загрузки компьютера. Время из них считывается в часы BIOS. Тем не менее ряд приложений, прежде всего связанных с поддержанием безопасности, используют часы CMOS напрямую, минуя другие системные часы. Общего стандарта на аппаратную реализацию часов реального времени CMOS не существует. В часах, где год записывается двумя цифрами, после 31 декабря 1999 года наступит 1 января 1900 года. На самом деле особой беды в этом нет, как будет показано ниже.
Задача часов BIOS состоит в отслеживании времени суток в процессе работы компьютера. Они работают, используя аппаратные прерывания IRQ8 центрального процессора. Данные хранятся в системной области BIOS. Большинство версий BIOS выпуска до 1995 г. неправильно обрабатывают смену тысячелетия. Но и сейчас некорректно работающие BIOS встречаются на практике на компьютерах сомнительной сборки. Основная проблема состоит в том, что в таких BIOS год хранится в виде двух цифр (отсчет в BIOS и DOS/Windows ведется с 1980 года). При смене столетия разные BIOS могут показывать разные даты — все зависит от конкретной версии. Чаще всего 1 января 2000 года они показывают как 04/01/80 (первое апреля 1980 года). Современные BIOS не только способны корректно отслеживать смену дат, но и могут правильно интерпретировать некорректные показания часов CMOS (так, если часы CMOS 1 января покажут 1900 год, то в часах BIOS будет 2000 год).
Операционная система имеет собственные часы, формат которых не совпадает с форматами часов CMOS и BIOS. Кроме того, средства ОС обычно позволяют напрямую менять время и дату во всех системных часах. Прикладные программы в большинстве своем используют часы ОС. Порядок установки времени в часах ОС зависит от конкретной операционной системы. DOS и Windows устанавливают время ОС по часам BIOS и далее постоянно синхронизируются с ними. Поэтому некорректно работающие часы BIOS провоцируют проблемы на часах ОС. Но и сама ОС должна быть совместима с 2000 годом, в противном случае время на ее часах будет неправильным. Некоторые ОС для установки своих системных часов могут напрямую использовать часы CMOS. В этом случае они должны корректно устранять проблемы часов CMOS.
Проблему Y2K на системном уровне можно сформулировать так: насколько правильно часы CMOS, BIOS и ОС отслеживают смену тысячелетия при выключенном и включенном состоянии компьютера. Результаты могут отличаться.
Рынок предлагает ряд тестовых программ для определения степени соответствия программного и аппаратного обеспечения 2000-му году. Они позволяют не только локализовывать проблему на уровне таких основных компонентов компьютерной среды, как операционные системы или общеизвестные программные продукты, но и достаточно подробно исследовать сложное ПО. В частности, они могут тестировать пользовательские программы и выявлять в них подозрительные места.
К сожалению, подобные программы достаточно дороги и стоят от ста долларов до нескольких тысяч долларов. Цена зависит от возможностей программы. Тем не менее имеющиеся бесплатные демо-версии с ограниченными возможностями позволяют хотя бы протестировать системные часы. Среди таких программ можно выделить SURVIVE 2000 компании ANKH Software (http://www.survive-2000.com), Test2000.Exe компании TighTime Clock (http://www.rightime.com) и ряд других.
Все тестовые программы, определяющие степень совместимости с 2000-м годом, в обязательном порядке исследуют оба режима работы компьютера (включенное и выключенное состояние ПК при смене тысячелетия).
Около 93% всех ПК имеют часы реального времени CMOS, некорректно обрабатывающие смену тысячелетия при включенном ПК. Но это обстоятельство не столь существенно, так как в процессе работы операционные системы не используют часы CMOS. Единственную неприятность могут доставить программы, напрямую обращающиеся к часам CMOS (сейчас они — большая редкость). Если же часы CMOS не прошли тесты при отключенном компьютере, то это говорит о более серьезных проблемах несовместимости.
Что касается часов BIOS, то большинство производителей объявляют о совместимости с 2000-м годом, если BIOS отслеживает смену тысячелетия при включенном компьютере. Если BIOS не прошел тесты, то настоятельно рекомендуется заменить микросхему BIOS на более новую версию, желательно BIOS с возможностью перепрограммирования (флэш-BIOS). Если компьютер не выдержал теста смены тысячелетия для часов BIOS в отключенном состоянии, то это значит, что часы BIOS не могут адекватно интерпретировать показания часов CMOS. Здесь также рекомендуется обновить BIOS. Не прошедшие этот тест машины обычно не удовлетворяют тестам для часов CMOS и ОС при выключенном состоянии. Начиная с 1995 года версии BIOS ведущих производителей (Award, AMIBIOS, Phoenix и др.) полностью совместимы с 2000-м годом.
Если часы ОС не прошли тесты для выключенного компьютера, это не означает, что операционная система не совместима с 2000-м годом. Надо сначала попытаться обновить BIOS. А вот если часы ОС не прошли тесты для включенного состояния ПК, это однозначно свидетельствует, что ОС не совместима с 2000-м годом, и надо переходить на новую версию операционной системы.
Если BIOS или ОС совместимы с 2000-м годом не полностью, то при смене тысячелетия многое будет зависеть от того, в каком состоянии оставили компьютер, включенном или выключенном.
Справедливости ради следует сказать, что в сетевой среде проблемы системных часов на клиентских местах не так уж и страшны. Это вызвано тем, что значения системных часов обычно устанавливаются и меняются автоматически при входе в сеть. Здесь более актуальна проблема совместимости с Y2K системных часов серверов. Правда, это только в том случае, если ПК никогда не используют вне сетевой среды. Главное, чтобы часы ОС клиентских ПК были совместимы с Y2K.
ОПЕРАЦИОННАЯ СИСТЕМА И ПРОБЛЕМА Y2K
Только корректностью смены тысячелетия проблема Y2K не ограничивается. Некоторые компьютеры неправильно определяют високосность годов в 21 веке.
Согласно григорианскому календарю, 2000 год является високосным, тогда как 2001 год — невисокосный. Конечно, последствия такой ошибки не столь критичны, хотя и могут вызвать неприятности.
Следует иметь в виду, что когда говорят о совместимости операционной системы с Y2K, то рассматриваются не только часы ОС, но и насколько утилиты, входящие в состав системы, безошибочно работают с датами. Например, если в состав ОС входит программа резервного копирования, не предназначенная для работы в 21 веке, то данная ОС не может считаться полностью совместимой с Y2K.
Большинство клиентских ПК оснащены операционными системами компании Microsoft. По заявлению Microsoft, все версии MS-DOS, до пятой включительно, не совместимы с Y2K. Windows 3.x правильно работает с 2000-м годом, но некоторые важные приложения ОС, в частности «Диспетчер файлов» (File Manager), неверно обрабатывают даты (существуют заплаты для решения этой проблемы).
ОС Windows 95 совместима с Y2K, если ее устанавливали с нуля, а не в качестве обновления для Windows 3.x. Тем не менее ряд независимых тестеров обнаружили проблемы. После 2000 года часть утилит может некорректно работать, например «Поиск» (Find). Существует ряд исправлений, которые пользователи могут списать с Web-сервера Microsoft. Windows 98 будет полностью избавлена от проблемы Y2K.
Windows NT совместима с Y2K только начиная с версии 4.0. В более ранних версиях обнаружены те или иные ошибки при обработке дат. Опять же, с помощью заплат часть проблем можно устранить.
Что касается ОС NetWare, то с версии 4 она полностью совместима с Y2K. В отношении более ранних версий Novell заявляет лишь то, что они не тестировались и корректность их работы после 2000 года компания не гарантирует. Novell настоятельно рекомендует пользователям NetWare 3.11 и 3.12 осуществить переход на NetWare 4.1x или хотя бы на NetWare 3.2, которая совместима с Y2K. Но за такое обновление придется платить деньги. Кто не хочет тратиться, тот на Web-сервере Novell может найти заплаты для NetWare 3.11 и 3.12.
В настоящее время на рынке операционных систем для ПК третье место (после продуктов Microsoft и Novell), оттеснив IBM OS/2, занимает Santa Cruz Operation. По сообщениям SCO, все ее системы совместимы с Y2K.
ПРИЛОЖЕНИЯ И ПРОБЛЕМА Y2K
В конце концов, именно некорректно написанные приложения могут сделать нашу жизнь после 2000 года невыносимой. Если операционная система не совместима с 2000-м годом, то все приложения, оперативно использующие даты, будут работать неверно: это календари, запускаемые по расписанию программы, и т. д. Но даже если ОС в полном порядке, это не значит, что используемые приложения совместимы с 2000-м годом. Часто все оказывается наоборот.
Дело в том, что очень многие программы хранят год в виде двух цифр. Проблема заключается в том, что программа эти цифры интерпретирует неправильно. Например, 2001 год здесь будет представлен как 1 год от Рождества Христова. Иногда приложения хранят год в виде четырех цифр, при этом год можно вводить в виде двух цифр, но недостающие цифры номера столетия могут подставляться некорректно (или не подставляться вовсе).
Политика разработчиков ПО по исправлению ошибок Y2K зависит от конкретной компании. Одни разработчики поставляют обновления бесплатно, в то время как другие — за деньги. К сожалению, некоторые приложения уже вообще не поддерживаются. В этом случае пользователю остается два выхода: менять продукт или мириться с его функциональной неполноценностью.
Как известно, самым продаваемым программным продуктом является Microsoft Office. Только Office 97 полностью совместим с 2000-м годом.
Программы Office 95 хранят год в виде 4 цифр, но некорректно обрабатывают год, заданный в виде 2 цифр.
В этой ситуации лучше всего поставить заплаты или обновить версию. Более старые версии Office имеют значительные ошибки, и даже календари здесь работают неправильно.
Такими же недостатками страдает множество старых версий офисных приложений других компаний. В частности, любимая в России СУБД Paradox не справляется со сменой дат в 2000 году до седьмой версии включительно, так же как и некоторые системные утилиты, в качестве примера можно назвать Norton AntiVirus 2.0 компании Symantec.
Все это неприятно, но не критично, если только офисные или системные приложения не задействуются в составе систем делопроизводства и подобных. Многое зависит от конкретного назначения продуктов.
Но сетевых администраторов ждут гораздо более серьезные испытания. Ни одна версия Banyan VINES, имеющаяся в настоящее время на рынке, не поддерживает 2000 год. То же самое можно сказать про сервер удаленного доступа AccessBuilder компании 3Com. И этот список можно продолжать очень долго.
Такие же проблемы и с программами резервного копирования. Весьма популярной в мире для сетей NetWare и Windows NT является программа резервного копирования ARCserve компании Cheyenne (сейчас подразделение Computer Associates). Только начиная с версии 6.1 ARCserve for NetWare и с версии 6.0 ARCserve for Windows NT совместимы с 2000-м годом. К чему это может привести? Во-первых, некоторые расписания архивирования могут некорректно работать. Кроме того, в случае использования метода резервного копирования Differential Backup, учитывающего дату обновления, работа программы приведет к непредсказуемым последствиям.
Несовместимыми с 2000-м годом оказались и другие продукты Cheyenne, в частности системы иерархического хранения HSM for NetWare и HSM for UNIX. Более того, компания не собирается обновлять их. Такой замечательный продукт Cheyenne, как программный факс-сервер FAXserve, также не совместим с Y2K. Это может привести к неприятным последствиям для пользователей FAXserve. Если факс уйдет с датой 2 год н. э., то это еще полбеды, но вот отказы в работе расписания отсылки факсов сводят на нет все преимущества данной программы. В ближайшее время компания планирует выпустить заплату для FAXserve 5.
А работа источников бесперебойного питания? APC поставляет программы управления PowerChute, не совместимые с Y2K. Конечно, это не значит, что после 2000 года UPS не будут функционировать. Но вот корректно работать по расписанию — совсем другой вопрос. К сведению читателей, версия PowerChute for NetWare, совместимая с Y2K, выйдет только в четвертом квартале 1998 года.
Серьезное беспокойство вызывает и состояние программ управления сетью. Далеко не все они совместимы с Y2K. В частности, система Transend Network Manager компании 3Com принадлежит именно к таковым. Проблему обостряют некоторые MIB (базы управляющей информации), которые хранят время в урезанном формате. Эксперты предсказывают, что в 2000 году сетевые администраторы столкнутся с явлением, когда системы будут выдавать ничем не обоснованные сигналы тревоги (alarm) или, наоборот, игнорировать критические состояния сетевых компонентов.
В начале статьи автор уже приводил пример некорректной работы системы электронной почты. Здесь ситуация может оказаться еще более драматичной, поскольку при пересылке задействуются промежуточные системы, не входящие в непосредственное ведение конкретных администраторов. А ведь электронная почта — это самый важный компонент Internet для корпоративных клиентов.
2000-й год готовит большие испытания и для систем коллективной обработки информации, таких как Lotus Notes или Novell GroupWise. Сетевым администраторам стоит обратить пристальное внимание на их обновление уже сейчас. К счастью, ведущие производители уже представили продукты, избавленные от ошибки 2000 года.
Аналогичное состояние у систем управления базами данных и системы документооборота. Жизнь складывается так, что, независимо от желания, заказчикам придется модернизировать свои старые системы на новые версии. Очень неприятен и обременителен вопрос пересмотра и обновления своих наработок. Вот где могут поживиться консалтинговые фирмы.
Еще хуже положение у крупных промышленных и финансовых компаний, использующих сложные системы управления производством или ресурсами. Такие компании не могут себе позволить, чтобы технологические или другие бизнес-процессы перестали выполняться после 2000 года. А ведь сложные системы содержат и продукты независимых производителей ПО, что еще более усугубляет проблему. Между прочим, по данным той же Gartner Group, крупные компании затратят на решение проблемы Y2K значительно больше денег в пересчете на один компьютер, чем мелкие организации.
ЗАКЛЮЧЕНИЕ
В статье мы рассмотрели только верхушку айсберга под названием «Проблема 2000 года». Тема настолько сложна и многогранна, что требуется много усилий, чтобы разобраться в ней. Здесь же мы затронули только программно-аппаратное обеспечение, продаваемое на рынке. А сколько существует доморощенных наработок? Кто в них будет разбираться и тестировать? Ведь порой их разрабатывали люди, уже не работающие на предприятии, а исходные коды давно потеряны. К сожалению, вопросов больше, чем ответов на них.
До 2000 года остается еще полтора года. Это время надо потратить с умом, чтобы в первый рабочий день 2000 года не превратился в кошмар. Хорошо еще, что до 10 000 года далеко!
Константин Пьянзин — обозреватель LAN. С ним можно связаться по адресу: koka@osp.ru.
ПРОБЛЕМА 2000 ГОДА
Некоторые рекомендации по тестированию
Проверять совместимость ПК с Y2K, меняя вручную дату в DOS или Windows, не следует. Полученная информация будет неполна и малоинформативна из-за того, что в компьютере три вида системных часов, и изменение даты на одних часах не позволит проанализировать остальные. К тому же часы по-разному реагируют на смену тысячелетия в зависимости от того, в каком состоянии — включенном или выключенном — будет находиться в этот момент компьютер. Чем изобретать велосипед, лучше использовать бесплатные версии тестовых программ.
Ошибочно считать, что если ПК куплен недавно, то он полностью совместим с Y2K. Не следует полагаться и на известную марку brandname. Встречаются случаи, когда даже самые последние ПК очень известных производителей не совместимы с 2000-м годом.
Если организацией используются однотипные компьютеры, то успешная проверка одного из них не гарантирует тем не менее совместимость других. Протестировать необходимо их все, либо задействовать сетевую версию тестовой программы. Особенно скрупулезно надо проверять серверы сети.
Что касается тестирования программного обеспечения, то здесь рекомендуется воспользоваться серьезными тестовыми программами наподобие SURVIVE 2000. Затраты на приобретение таких программ с лихвой окупятся. Они содержат богатую базу информации по приложениям, позволяют быстро выявить несовместимые с Y2K версии и дают рекомендации по устранению проблемы. Более того, некоторые из них имеют хорошие сканеры программ и могут выявлять подозрительные места в программном обеспечении заказчика.
Конечно, работа тестовых программ ограничена только выявлением проблем. Однако это даст возможность заранее подготовить планы модернизации программно-аппаратного обеспечения.
Проблема 2038 года, ее еще называют Unix Millennium bug или Y2K38. Что это такое и почему она возникнет?
Смотрите видео, посвященное проблеме 2038 года
19 января 2038 года или на кануне этой даты могут произойти сбои в различном программном обеспечении.
Почему
Время и дату в компьютерных программах можно хранить по разному. Один из способов хранения даты — это использование стандарта POSIX (UNIX timestamp, Unix epoch).
В стандарте POSIX время записывается как количество секунд, прошедших с 0 часов 0 минут 0 секунд 1 января 1970 года по Всемирному времени (UTC). Для Unix-подобных операционных систем — это стандарт представления времени.
Дата в таком формате записывается как обычное целое число — число секунд. Очевидно, что чем позднее дата от даты 1 января 1970, тем больше секунд прошло с этой даты. Значит тем большее значение нужно сохранять в программах, использующие даты.
Например:
Для 01.01.1970 00:00:05 это число +5 (сек).
Для 31.08.1970 12:10:33 это число +20952633 (сек).
Для 19.01.2038 00:00:00 это число +2147472000 (сек).
Для 19.01.2038 03:14:07 это число +2147483647 (сек).
В старых программах (а иногда даже в новых) дата часто хранится в целочисленном 32-х битном знаковом формате — signed int. Это означает, что под число выделяется 32 бита:
00000000 00000000 00000000 00000000
- Первый бит (выделен красным), служит для определения знака числа. Значение 0 соответствует +, а значение 1 соответствует —).
- 31 бит (выделены синим) для хранения значения самого числа.
Максимальное число, которое можно сохранить, используя 31 бит, это число 2147483647. В 32-х битном знаковом целочисленном формате записывается оно следующим образом:
01111111 11111111 11111111 11111111
В POSIX это число соответствует дате 19.01.2038 03:14:07. Как видим, это и есть «роковое» 19 января 2038 года.
Что произойдет 19 января 2038
Могут произойти сбои программного обеспечения различной степени серьезности, могут произойти потери данных, программы могут начать работать не так, как ожидается.
Что будет внутри программ
Рассмотрим, что именно произойдет внутри программ. Числа больше 2147483647 не влезают в 31-бит.
Например, для числа 2147483647+1= 2147483648 нужно уже 32 бита. Это число записывается в двоичной системе, как единица в старшем разряде и 31 ноль:
10000000 00000000 00000000 00000000
Для 32-х битного типа signed integer — это число соответствует числу: −2147483648. Как было сказано выше, 1 в первом разряде обозначает отрицательное число.
Получается, что числа больше 2147483647 уже нельзя записать в 31 бит, но так как у нас есть еще один бит для хранения знака, программа запишет эти числа в память, но в программе они будут трактоваться как отрицательные числа.
Происходит как бы зацикливание числа. Если говорить о количестве секунд, увеличивающихся на 1, то они достигают значения 2147483647, а потом переходят в отрицательную область: −2147483648, −2147483647, −2147483646 и т.д. В программах такие числа будут трактоваться как 1970-й или 1901-й год (зависит от реализации).
Как это повлияет на работу программ
Все зависит от того, насколько дата и время важны в конкретной программе. Если работа программы зависит от времени, то скорее всего могут произойти сбои в работе программы или потери данных.
Например, если в табличных данных используется сортировка по времени, а для новых данных оно будет трактоваться, как отрицательное число, то эти данные будут трактоваться как старые данные, и сортировка будет нарушена.
Или, например, если программа очищает, какие-нибудь данные спустя определенное время, то при неверной трактовки времени, могут быть удалены еще актуальные данные.
Получается, что, чем больше работа программа зависит от времени, хранимого 32-х битном типе signed integer, то тем серьезнее могут быть последствия.
Так ли все серьезно
И да и нет. На самом деле — да!
Современные 64-х разрядные системы не подвержены данное проблеме, поэтому на них она никак не повлияет.
Для существующих 32-разрядных программ и систем уже выпущено множество патчей для исправления данной проблемы. Например, Microsoft, как он утверждает, уже обнаружил и исправил проблемы в 32-х разрядных версиях Windows.
Но все программы не исправить, поэтому многие из них остаются в зоне риска. Более того, даже сейчас выпускается множество 32-х битных систем, особенно встраиваемых.
Наибольшую опасность здесь представляет программное обеспечение, которое используется в промышленных областях. Для управления станками, машинами, отвечает за работу заводов, электростанций, медицинских приборов, военных устройств и других важных объектов.
Поэтому, если не предпринимать никаких действий, то последствия проблемы 2038 года могут от смешных до катастрофических.
Конечно, до 2038 года еще много времени и многие из них будут заменены на новые. Но все мы знаем, как быстро идет время, поэтому расслабляться не стоит. Более того, есть программы, которые уже сейчас могут использовать даты в будущем. Проблемы в таких программах могут начаться намного раньше.
Проблема «Миллениум» (кто помнит)
8 лет назад · 2905 просмотров
Всем кто помнит, Проблему «Миллениум»
Проблема 2000 года (часто она обозначается как «проблема Y2K» или «Y2K-совместимость» (аббревиатура: Y — year (год), 2, K — kilo (1000 в системе СИ)) — проблема, связанная с тем, что разработчики программного обеспечения, выпущенного в XX веке, иногда использовали два знака для представления года в датах, например, 1 января 1961 года в таких программах представлялось как «01.01.61». Некоторые вычислительные машины имели уже аппаратную обработку даты, однако всего два десятичных знака. При наступлении 1 января 2000 года при двузначном представлении года после 99 наступал 00 год (то есть 99+1=00), что интерпретировалось многими старыми программами как 1900, а это, в свою очередь, могло привести к серьёзным сбоям в работе критических приложений, например, систем управления технологическими процессами и финансовых программ. Проблема 2000-го года была вызвана, в том числе, использованием старых программ, что не предполагалось во время их разработки. Известны многочисленные случаи использования в конце 1990-х годов программ середины 1980-х.
Сложность была ещё и в том, что многие программы обращались к вычислению дат вперед (например, составление плана закупок или любое другое планирование вперед). Так что для многих программ планирования и прогнозирования «Проблема 2000 года» наступала раньше, чем эта проблема касалась самого компьютера и текущей системной даты компьютера. Особенно это касалось западных стран, где финансовый год начинается осенью.
По некоторым оценкам экспертов общий объём мировых инвестиций, потраченный на подготовку к 2000 году составил 300 миллиардов долларов. По другим данным, эта сумма завышена как минимум на порядок
В России на государственном уровне работы по разрешению этой проблемы были развёрнуты в соответствии с распоряжением правительства от 30 мая 1998 года. Государственному комитету РФ по связи и информатизации была поручена координация работ по решению Проблемы 2000 года в федеральных органах исполнительной власти и органах исполнительной власти субъектов РФ. Во всех регионах были созданы Центры компетенции. В процессе анализа ситуации в секторе опасных, экологически вредных и непрерывных производств выявлено более 500 критических объектов, потенциально подверженных негативному влиянию «Проблемы 2000». Распоряжением правительства от 21 января 1999 года создана правительственная комиссия по «проблеме 2000». 26 марта 1999 года комиссия утвердила «Национальный план действий по решению „Проблемы 2000“ в Российской Федерации».
Относительно «Проблемы Y2K» существуют две точки зрения. Согласно одной, было предотвращено огромное количество больших и малых сбоев, благодаря своевременному обнаружению проблемы, хорошо проведённой подготовке и профилактике. Согласно другой точке зрения, проблема была искусственно «раздута» с целью получения прибыли. И в ряде случаев никаких сбоев не произошло бы, поскольку большинство программ, имеющих данную проблему, морально устарели и практически не использовались. Например, директор Института системного программирования РАН, член-корреспондент РАН В. П. Иванников в интервью PC Week/RE заявил:
Активность по проблеме 2000 года носит скандальный характер, потому что она понятна любому даже непрофессионалу. Имеются бюджетные деньги. На них можно создавать комиссии, слёты, выездные сессии… Здесь замешаны и мистика, и технические проблемы. И не только у нас — в Штатах происходит то же самое, нагнетаются страсти, Пентагон пугает. Халявные деньги, почему бы не урвать? … Есть мистики, есть халявщики, а есть работяги, которые свои программы чистят безо всякого шума. Проблема 2000 являлась способом отмывания денег.
Анатолий Чубайс, будучи в то время ответственным за стратегические объекты, после встречи Нового года на ядерном объекте, высказал гипотезу, что Билл Гейтс немного преувеличил проблему.