V sobotu čtrnáctého odbije 1234567890. sekunda

Každý operační systém počítá čas od určitého uměle stanoveného data – unixové systémy a množství programovacích jazyků od roku 1970. Příští týden odbije celkem zajímavá sekunda.

Statisticky ve všech ohledech průměrný člověk západního světa jednou za život spatří prolétávající Halleyovu kometu s periodou 75 roků, současné žijící generace ale měly i to štěstí, že mohly zažít přechod do nového milénia se všemi souvisejícími technickými šotky včetně mediálně vděčné chyby Y2K.

Státní svátek každého linuxáka

Tím ale výčet senzací nekončí, již za pár dnů, v sobotu 14. února 2009 po půlnoci (00:31:30), budete moci oslavit magické číslo 1234567890. Právě tehdy totiž pomyslné POSIXové hodiny odbijí přesně 1234567890. sekundu od začátku unixové epochy, která je stanovena na 1. leden roku 1970.

 countdown.png
POSIXový časoměr s odpočtem na webu coolepochcountdown.com

Každý operační systém a jeho programy pracují s časem. Zpravidla jej prezentují v uživatelsky přívětivém 24hodinovém formátu a gregoriánském kalendáři, vnitřně se však u všech systémů jedná o neustále inkrementované číslo s určitým základem.

POSIXové systémy (Unix, Linux a další deriváty), které pracují s časovou proměnnou a volají funkci date nebo time, získají vlastně aktuální počet sekund od základu, od začátku unixové epochy. A stejně to funguje i na Windows, DOS nebo Mac OS, počítání systémového času se liší vlastně jen v základu a základní jednotce.

Pokud tedy systémový čas v Unixu nebo Mac OS tiká převážně po sekundách, Windows tiká po milisekundách, DOS pak po desítkách milisekund. Windows epocha sahá až do roku 1601, Mac OS pro změnu počítá sekundy od roku 1904 a DOS od Nového roku 1980.

Známe počátek a co konec?

Stejně jako známe počátek, můžeme si díky jednoduché matematice spočítat i konec. Každá časová proměnná, má totiž svou kapacitu, která s příští milisekundou nebo sekundou přeteče. POSIXové systémy používají pro uložení čísla reprezentujícího počet odbitých sekund 32bitové kladné číslo. Jeho kapacita končí 19. ledna roku 2038 (tzv. chyba Y2K38), současný Mac OS bude umět sekundy počítat jen o dva roky déle, DOS začne mít problémy za devadesát let a Windows bez dalšího servisního balíčku přestanou s časem spolehlivě pracovat za necelých třicet tisíc let.

Na Wikipedii najdete pěkný přehled toho, jak s časem nakládají vybrané operační systémy a programovací jazyky včetně PHP nebo rodiny Microsoft .NET.

Samozřejmě můžete namítnout, že je přeci úplně jedno, jestli jeden systém vydrží počítat třicet let a druhý třicet tisíc roků, za pár desítek let totiž bude současný hardware i software vyhledávaným exponátem technických muzeí a časová proměnná v případě potřeby prostě jen přibere pár dalších bitů aby unesla mnohem větší číslo, jednoduché průmyslové počítače a CNC stroje, které povětšinou „jen“ počítají, ale s námi žijí poměrně dlouhou dobu, není totiž zapotřebí je měnit, když jsou základy kybernetiky stále stejné. A je to patrné i při pohledu zpět na chybu Y2K. Osobních počítačů a běžných serverů se tato chyba prakticky nedotkla, přesto byly zaznamenány případy, kdy si s dvoucifernou interpretací roku (99) a jeho přechodem (00) neporadilo mnoho poměrně exotických počítačů. V Austrálii tehdy na Nový rok přestaly fungovat elektronické automaty na jízdenky, v Japonsku pro změnu vypovědělo službu zařízení na monitorování radiace v ovzduší. Nejvíce poruch ale bylo samozřejmě zaznamenáno v USA.

Žádná z těchto příhod nás ovšem příští týden naštěstí nečeká, po půlnoci se pouze dočkáme na jednu jedinou sekundu absolutní matematické harmonie. Tak si ji nenechte ujít.

Diskuze (25) Další článek: Windows XP: začátek konce

Témata článku: , , , , , , , , , , , , , , , , ,