Problém roku 2038. Hrozí návrat na začátek minulého století?

Je 19. ledna 2038, krátce po třetí hodině ráno. Najednou přestávají svítit lampy ve městech, chytré automobily není možné zprovoznit, smartphony jsou nepoužitelné, stejně tak jako všechny technické vymoženosti budoucnosti. Svět upadá do hlubokého blackoutu, protože pro počítače je rok 1901! Taková je nejčernější vize takzvaného problému roku 2038, známého rovněž jako Y2K38. O co vlastně jde?


Až uběhne něco přes 2 miliardy sekund…

Nejprve si povíme něco o prvočísle 2 147 483 647. Většina smrtelníků teď asi kroutí hlavou, co může mít číslo, které asi sotva kdo použije, společného s výpadkem počítačových systémů za 19 let. Ale má. Toto číslo představuje hodnotu, které mohou dosahovat 32bitové celočíselné proměnné se znaménkem. Celkem nic neříkající informace začne dávat smysl, když si ji převedeme na počet sekund.

Počítání času v unixových systémech, které jsou standardně používány ve výpočetní technice, začalo 1. ledna 1970 prostřednictvím datového typu, který se označuje tako time_t. Každou sekundu narůstá hodnota parametru o jedno celé číslo. Maximum, kterého může tato hodnota dosáhnout, je právě číslo 2 147 483 647. K tomu dojde 19. ledna 2038 v čase 03:14:07. Co se stane a co s tím?

Zatím největším objeveným prvočíslem je 282,589,933-1. Má více jak 24 miliónů číslic.

Návrat na začátek minulého století?

Odborníci předpokládají, že pokud by problém roku 2038 nikdo nezačal řešit včas, nebo pokud by nebyl “objeven”, proměnná time_t přeteče (což je v IT hantýrce výraz pro situaci, kdy výsledek operace přesáhne maximální možný rozsah), a to způsobí pád programů. Čas tak pro počítače bude reprezentován v záporné hodnotě a nastane pro ně nejspíše rok 1901.

simulace
Simulace problému Y2K38
Stejně jako v roce 2000?

Teď si možná vzpomenete na rok 2000, známý jako Y2K. Tehdy šlo ale o něco jiného. Programátoři v počítačové prehistorii museli šetřit paměť všelijak, a tak i pro zápis času používali pro rok pouze poslední dvě číslice. Rok 1999 byl tak pro počítače rokem 99. Co ale bude následovat? Nastane rok 00, 1900, 2000 nebo dokonce 19100?

Černé scénáře se nenaplnily. Konec světa nepřišel, ba ani žádný blackout. Nicméně za bezproblémovým přechodem z jednoho tisíciletí do druhého stála nemalá a nákladná příprava veřejných i soukromých institucí. Programátoři již také koncem milénia nemuseli tolik šetřit pamětí, a tak i pro počítače nastal rok 2000.

Problém roku 2038 zatím nikdo moc neřeší. 19 let je dlouhá doba, ale na druhou stranu je nutné si uvědomit, že již není rok 2000 a svět je stále více závislý na moderních technologiích. Operační systémy běžící na Unixu nejsou jen výsadou počítačů, ale je na ně navázaný veškerý průmysl a služby. Je ale téměř jisté, že katastrofický scénář, který popisujeme na začátku článku, s velkou pravděpodobností neproběhne.