Moderní počítače by mohly přestat fungovat 19. ledna 2038

Rok 2038 by mohl způsobit, že většina moderních počítačů přestane fungovat, pokud se na to nepřipravíme. Není to kvůli nějakému masivnímu viru nebo degradujícímu hardwaru, ale souvisí to se způsobem, jakým počítače sledují čas.

Téměř každý počítač sleduje čas pomocí 32bitového procesoru a počítá od 00:00:00 UTC 1. ledna 1970, označovaného jako „epocha“. Tento časový bod byl stanoven jako standard pro moderní výpočetní systémy, ale je zde zásadní problém. Sedm sekund po 3:14 UTC 19. ledna 2038 dojdou 32bitovému systému, který tento časový údaj v mnoha počítačích uchovává, pozice.

Problém je podobný problému Y2K, kdy dvoumístná hodnota již nemohla být použita pro kódování let 2000 nebo pozdějších, ale liší se v tom, že tato 32bitová chyba se týká systémů podobných Unixu a unixového časového formátu.

Tato podobnost s chybou Y2K vedla k tomu, že problém 2038 je obecně znám jako chyba tisíciletí Unixu.

Buga tisíciletí Unixu

Procesory s 32bitovým softwarem mohou v rámci 4 GB paměti zpracovat 232 různých hodnot nebo 4 294 967 295 různých čísel. Tyto systémy ukládají data a časy v 32bitových částech. Ve skutečnosti je tento velký počet různých hodnot pro uchovávání času a další aplikace pro ukládání dat poloviční. Zbývá tedy 2 147 483 647 kladných hodnot, ve kterých lze data uložit.

To znamená, že poslední čas, který lze reprezentovat v 32bitovém časovém kódu Unixu, je 231-1 neboli 2 147 483 647 sekund po 1. lednu 1970. Časy po tomto bodě se vrátí zpět a budou uloženy jako záporná čísla. To je způsobeno tím, že paměťovému systému došla celá čísla k modulaci, takže zbývá změnit pouze znaménko. Počítače to pak budou interpretovat jako 13. prosinec roku 1901 a dále, nikoli jako skutečné datum.

Možná to nezní jako velký problém, ale zamyslete se nad všemi způsoby, jakými používáme software. Pokud máte licence, které jsou opatřeny časovým razítkem, můžete náhle ztratit přístup k důležitým pracovním dokumentům, finančním informacím a dalším údajům.

Problémy nezačnou vznikat až v roce 2038, každý software, který používá budoucí data, bude třeba brzy opravit. Programy, které pracují s daty na 20 let dopředu, jako jsou investiční fondy a programy pro pokročilé plánování, bylo třeba opravit nejpozději v roce 2018.

Všechno to může znít jako jednoduchá oprava, stačí změnit datum ukončení metody ukládání, ale tak jednoduché to není. Počítačoví inženýři stojící za hrami a aplikacemi, které mají čekací lhůty, se již nyní potýkají s problémy při kódování dat po 19. lednu 2038. Protože metoda ukládání je 32bitový Unix, je pro tyto programátory třetích stran nemožné kódovat data po této době.

S TÍM SOUVISÍ: 12 NEJSTARŠÍCH WEBOVÝCH STRÁNEK Z 80. A 90. LET 20. STOLETÍ, KTERÉ JSOU DNES STÁLE ONLINE

Ale co z toho, ptáte se možná. Data budou změněna, programátoři s těmito problémy již počítají a případné problémy nebudou vyvolávat paniku, jen budou rychle odstraněny. No, není to tak docela pravda.

Dopravní systémy, včetně leteckých zařízení a moderních automobilů, používají vestavěný software, který často zůstává nedotčen. Téměř vše v moderních automobilech je řízeno jejich řídicí jednotkou neboli palubním počítačem, který ke sledování dat a časů používá unixové časování. To znamená, že tato chyba může potenciálně narušit brzdové systémy ABS, elektronickou kontrolu stability, kontrolu trakce a systémy GPS; všechny mohou být významně ovlivněny.

Všechny tyto systémy nebudou ke svému chodu potřebovat přístup k datům, ale některé ano a je těžké zjistit, které z nich byly naprogramovány s kódem závislým na datu.

Jaká je tedy oprava? Neexistuje žádná jednoduchá.

Vestavěné systémy, jako jsou ty v automobilech a spotřebičích, jsou navrženy tak, aby vydržely po celou dobu životnosti zařízení bez aktualizace softwaru. Připojenou elektroniku lze rychle opravit pomocí aktualizace softwaru, až přijde čas, ale právě vestavěné systémy pravděpodobně způsobí v roce 2038 největší spoušť, protože většina z nich nebude aktualizována.

Jednou z možností je změnit systém ukládání dat z 32bitového celého čísla na 32bitové celé číslo bez znaménka. To by teoreticky umožnilo ukládat data až do roku 2106, ale každý systém, který by používal datum před rokem 1970, by narazil na problémy s přístupem k těmto datům.

Pokud by se úložiště dat zvýšilo na 64bitové, narazili bychom na problémy s kompatibilitou ukládání dat mezi staršími systémy, které používají pouze 32bitové úložiště dat.

V současné době neexistuje žádné univerzální řešení tohoto problému a i nejrozšířenější opravy stále obsahují chyby v určitých oblastech použití. Na konci je však pozitivní zpráva.

Většina nových elektronických zařízení je navržena tak, aby používala novější 64bitový způsob ukládání dat. Takto velký datový celek by se protáhl dvacetkrát déle, než je odhadované současné stáří vesmíru, přibližně 292 miliard let v 15:30:08 UTC v neděli 4. prosince 292 277 026 596. Takže do té doby může být váš iPhone v bezpečí.

Zdroj: Wikimedia

Naštěstí se o tomto problému dobře ví a byl důkladně prozkoumán, což znamená, že počítačoví inženýři problémy pravděpodobně vyřeší, alespoň se stále aktualizovaným a udržovaným softwarem. Nicméně co se týče toho Priusu v bezvadném stavu z roku 1997, který vám bude v roce 2038 stát v garáži? No, možná s ním nebudete moci jezdit po 3:14 ráno v lednu 2038, a to díky jeho nyní vadnému palubnímu počítači.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.