Y2K казалось, что это будет апокалипсис, кризис был предотвращен, или он никогда не произойдет вообще?

Одним из определяющих элементов 90-х годов было широкое распространение персональных компьютеров по всему миру. Компьютеры больше не использовались только в бизнесе для расчетов высокого уровня, они были интегрированы почти во все системы по всему миру, от транспорта до расчета заработной платы и управления ядерными энергетическими реакторами.

Эта компьютерная интеграция в основном повысила эффективность и надежность современного мира. Автоматизированное банковское дело означало, что вы могли провести своей кредитной картой, гораздо меньше опасаясь банковской ошибки потерять свои деньги. Вы также можете проверить свой баланс в режиме реального времени, не выходя из дома. Каждая сфера жизни была сделана простой, как это.

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

Что такое Y2K?

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

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

Изменение года с 99 на 00 было своего рода проблемой целочисленного переполнения, относительно обычным явлением в программировании и информатике. Когда числа хранятся в виде данных на компьютере, для этой информации выделяется определенный объем памяти: 4 бита позволяют хранить числа до 15, 8 бит — до 255, 16 бит — до 65 535 и так далее.

Если программа генерирует целое число, которое больше, чем может быть сохранено в данных, или меньше 0, то число зацикливается на другой стороне и генерирует неверный ввод. В некоторых сериях видеоигр, таких как Pokémon и Civilization, есть ошибки, связанные с целочисленным переполнением.

Проблема Y2K возникла не из-за отведенного объема памяти, а из-за того, что компьютеры были отформатированы таким образом, что первые две цифры всегда будут равны «19», что фактически приводило к тому же результату, что и целочисленное переполнение.

По сути, никто не знал, как отреагируют компьютеры или что произойдет.

Помогли ли программисты на самом деле?

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

Расширение даты: чаще всего программы были изменены, чтобы хранить дату в 4-значном формате вместо 2-х.

Окно даты: программы были изменены, чтобы не запрашивать информацию о веке, если она им абсолютно не нужна.

Сжатие даты: даты сохранялись в виде 14-битного числа, что позволяло хранить до 16 384 лет.

Повторное разбиение даты. В местах с ограниченным пространством исходная 6-значная дата (мм/дд/гг) была изменена, чтобы представить последние 3 цифры года 000–999, а также день год с 1 по 365, что позволяет учитывать век и дату, но не тысячелетие.

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

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

Что в итоге произошло?

Ну, что касается фактических последствий нового года, то их было не так много, как все ожидали. В двух штатах Австралии сломались билетные автоматы в автобусах. В нескольких местах по всему миру часы показывали 19100 год, но никаких других проблем не возникало.

В Англии более 150 женщин ошибочно получили отчеты о том, что их беременность относилась к категории повышенного риска синдрома Дауна, что привело к 2 абортам, которые в противном случае не были бы сделаны, и к рождению 4 детей с синдромом Дауна от матерей, которые этого не сделали. не знаю.

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

В общем, было несколько проблем, связанных с новым годом, но благодаря работе программистов по всему миру катастрофу в основном удалось предотвратить. Кто знает, с какими ужасающими ошибками столкнутся сегодняшние программисты?

Хотите узнать больше о full-stack и о том, как стать разработчиком всего за год? Подпишитесь на нас в LinkedIn, Twitter, или Facebook