Персональные инструменты
Счётчики

Проблема 2000

Материал из Lurkmore
Перейти к: навигация, поиск
«

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

»
Футурама о проблеме 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 станется.

[править] Високосная секунда

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

[править] IRL

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

[править] Y2K в кино

  • В мультсериале «Царь Горы» есть целая серия, посвящённая этому событию. (4 сезон 10 серия)
  • В мультсериале «Симпсоны» Гомер забывает устранить баг на АЭС, связанный с проблемой Y2K, что приводит к гибели большей части населения. (230 эпизод, 11 сезон, 4 серия, 3 часть)
  • В мультсериале «Гриффины» только Питер озаботился проблемой Y2K и спас свою семью от мутаций. Но ненадолго.
  • В мультсериале «Футурама» отец Фрая озабочен проблемой 2000.
  • В сериале «Меня зовут Эрл» Эрл и компания спрятались в подвал от Y2K, прожив там месяц.
  • В фильме «Превосходство / Transcendence [2014]» «упоминается проблема 2000».
  • В культовом «Офисное пространство / Office Space [1999]» главный герой упоминает что решением этой проблемы его софтверная компания и занимается.

[править] Ссылки

[править] См. также

[править] Примечания

  1. Особо криворукие быдлокодеры для облегчения всякого рода сортировок и прочих работ с датой ещё в середине 70-х гг. заложили кучу самых невероятных ляпов в свои программы и библиотеки. Типичное решение — дату хранить в int с отсчетом от 1900-го года, поэтому после 1900+99=1999 ожидался 1900+100, да ещё не «плюс» в смысле арифметики, а в смысле «дописать в строку при выводе», и хорошо ещё если догадывались оставить два символа, а не всунуть как есть. Расово верный ArtMoney for DOS всовывал как есть. К 2000 году большинство подобного творчества благополучно скончалось естественным путем от древности, но есть смена же.


Y2K is JAFA
IL ADSLAFAIKAFKAISBAJAXASLASMRAYBABTUBBSBOFHBRBBSODBTWC&CCMSCYADCDDLCDDoSDFCDRMEFGFAQFNAFFTGJFTNFTLFTWFUBARGIFGNGNAAGPONGTAGTFOHISHEI2PIANALICWYDTIIRCinb4IMHOIRCITTJFGI (UTFG)RYTPJBJFGIKISSKSPLFSLMAOLMDLOICLOLMILFMMORPGNEDMNRBNSFWNYPAOMGO RLY?P2PPHPRACROFLRPGPSGRTFMRTSSADMSEOSICPSOPASTFUTBStl;drTorTOSTTYLUWBFTPWOWWTFXABYFRYOBAYTMNDZMH
ИЖ 265АПВОВНВ? • АПВС? • АСДПБАОБАПББПЕБХКПВА? • ГКГСРДТФЕБМПЕВПОЧЯЕМНИПЕОТЕРЖЖЖИЧСХКБиОКГ/АМКЛБКПЗКСМЛОРЛППМНУМПХНЁХОБВМОБЧРОИНЧОСОЯШПГМПНХППКСРЛОСЗОТСИГСПГСССЗБСХБТВНТКПТПУГУМВРУЧНН(С)РФГМХЗХЗКНРЧСВЭОСЯННПЯПОЭЗ
RL 14/88A.C.A.B.akaAMVASAPBDSM©СРDIYetcHBOKFCKKKLGRTRMTVNASCARN.B.NHKP. S.R.I.P.SOADsXeWWJDY2KZOG
РЖ АвтоВАЗ (ТАЗ) • АК-47АКМБАДБГБомжБОЧВВПВИDВУЗ (ИТМОМГИМОМФТИНМУ) • ГДЗГДРГИБДДГЛОНАССГМОГОСТГрОбГСМДВРДКДМБДПНИЕдРоЗПППИБДКВНКЕМКМВКМПКВКНДРКНОРКОБКПЛОКСПМКАДМММНацболНЛОНЛПНОДНОМНТВОБСОпСоСОСАГООТРПДРСПМСПНКСПСППРАЕНРБКРЖДРПЦСДВСОРМСПИДСССРСТССУБДСШАТЛЗТНТФБРФСБФСКНХУЯСЦАЧГКЫЮАРЮЮ
BigP.jpg Проблема 2000 — это epic fail.
Разновидности Большой ПиздецЖопаКузькина матьМедный тазЭкстерминатус
Предсказатели А-культщикиСурвивалистыЖопоголикиПараноики • Пророки (ВангаНострадамусПавел ГлобаХазин)
Варианты 2012 годTIME PARADOXАтомная бомба (Межконтинентальная баллистическая ракета) • Большой адронный коллайдерГлобальное потеплениеЗомби-апокалипсисПандемияПик нефтиПопуляционная катастрофаСкайнет (УВЧМашина Судного дня) • Третья мировая война
Локальные EyjafjallajokullАвиакатастрофы (под Смоленском) • Кораблекрушения (АПЛ «Курск»Титаник) • Массовые расстрелыМировой финансовый кризисНаводнение в Крымске • Пожары (лесныев «Хромой лошади») • Террористические акты (11 сентябряБостонский терактВзрывы в метро) • Челябинский метеорит
Места Бермудский треугольникБхопалКомбинат «Маяк»УиндскейлФукусимаЧернобыль
Компьютерные и
интернетовские
BSODGAME OVERВендекапец • Падения (Большой августовскийПервоноябрьскийУнылый декабрьскийУнылый январский) • Проблема 2000
Постапокалипсис Adventure TimeFalloutS.T.A.L.K.E.R.The RoadКин-дза-дзаМетро 2033Тёмная башня
Что потом Адъ и ИзраильНе все доживут до зимыМы все умрём!