Y2K je zpět, odbyté opravy aplikací z roku 2000 kosí dnešní systémy
10.1.2020, Milan Šurkala, aktualita
![Y2K je zpět, odbyté opravy aplikací z roku 2000 kosí dnešní systémy](navstevnost-a-redakce/1/img/website-800.jpg)
Rok 2000 byl ve znamení problému zvaného Y2K. Systémy, které pro zápis roku používaly pouze dvě číslice, totiž měly potíže. Jednoduché opravy se ale vymstily a ničí IT systémy dnes, o 20 let později.
Přelom tisíciletí byl velkou událostí a také velkou hrozbou kvůli chybě zvané Y2K. Ta se nakonec neprojevila v takové síle, jak se předpokládalo (většina aplikací byla opravena). Některé IT systémy ze starých dob totiž k zápisu roku nepoužívaly čtyřmístná čísla, ale jen poslední dvě cifry. Zatímco modernější aplikace měly po roce 1999 rok 2000, ty starší měly totéž vyjádřeno číslem 99, po kterém následovalo 00. Což byl problém. Přepsání aplikací nebylo jednoduché, a tak až 80 % aplikací bylo jednoduše opraveno metodou zvanou windowing, kdy se nadále využívá dvouciferný zápis, ale aplikace jsou už schopny rozlišit, že nízká čísla jsou za těmi velkými, přičemž základní rok systému se zpravidla posouval o 20 let. Číslo 99 tak vyjadřuje rok 1999, 00 je 2000 a takto to funguje do čísla 19, které je rokem 2019. Záznam s hodnotou 20 už ale vyjadřuje první aplikací podporovaný rok, a to 1920.
![Y2K](y2k-je-zpet-odbyte-opravy-aplikaci-z-roku-2000-kosi-dnesni-systemy/51049/img/y2k-logo.jpg)
A právě tato jednoduchá oprava problému Y2K způsobuje potíže dnes, o 20 let později, o které spousta programátorů jen posunula nutnost řešení a vytvořila tak staronový bug Y2020, resp. Y2K20. On jen málokdo čekal, že systémy napsané v 70. letech budou v provozu ještě v roce 2000 a už asi vůbec nepředpokládali, že se tak bude dít dokonce o dalších 20 let později. Nyní tak mají problém např. parkovací automaty v New Yorku, které odmítají platby a nyní všech 14 tisíc automatů musí administrátoři manuálně aktualizovat novým systémem jeden po druhém.
Problém zaznamenala i online wrestlingová počítačová hra WWE 2K20 (jak ironický to název), která přestala fungovat okamžitě po půlnoci, a nevyhnulo se to ani několika dalším systémům.
Pokud se ptáte, proč programátoři nastavovali zrovna rok 2020, tak by to mohlo mít spojitost s výše uvedeným (nikdo nepředpokládal, že ten SW poběží ještě za 20 let po opravě) a také tím, že jde o kulatou polovinu století od počátku unixového času, který začíná 1. ledna 1970. A právě tento unixový čas bude zdrojem dalšího “Y2K” za 18 let. Systémový čas se totiž od tohoto data počítá a definuje pomocí 32bitového integeru (celočíselná proměnná vyjádřena 32 bity, tedy s téměř 4,3 miliardou různých hodnot), přičemž maximální podporované hodnoty dosáhne 19. ledna 2038 ve 3:14 ráno.