Unix oslavilo 50 let. Co to znamená?

Rok 2020 je pro Unix významný: na začátku roku se původní operačnímu systému dožilo 50 let. Čas Unix, známý také jako „epochální čas“, je počet sekund, které uplynuly od 1. ledna 1970. Co však znepokojuje vývojáře jádra v souvislosti s padesátým výročím Unixu?

Unix oslavilo 50 let. Co to znamená?

I když některé z raných vývojů Unixu předcházejí oficiálnímu začátku jeho „epochy“, 1. ledna 1970 zůstává nulovým bodem v čase POSIX. Proto s začátkem 1. ledna 2020 oficiálně platformě uplynulo přesně 50 let.

Čas Unix versus čas člověka

Z pohledu lidského času jsou 50 let dlouhá doba. Z pohledu času Unixu však není na 50 letech nic zvláštního a 43 let by bylo nepochybně také významných. Systémy Unix (včetně Linuxu) ukládají hodnoty data a času jako počet sekund, které uplynuly od 1970-01-01 00:00:00 UTC, s uchováním v 32 bitech. Chcete-li zjistit, kolik sekund uplynulo od té doby a tedy aktuální hodnotu Unixového času, můžete použít příkaz:

$ date +%s

1576883876

Argument %s po příkazu date určuje zobrazení aktuálního data a času jako počet sekund od začátku 1970-01-01.

Unix oslavilo 50 let. Co to znamená?

Jaký maximální datum mohou uchovávat systémy Unix?

Abychom pochopili, kolik času může Unixový systém uchovat, musíme vyhodnotit kapacitu 32bitového pole. To lze vypočítat takto:

$ echo '2^32' | bc

4294967296

Avšak protože Unix předpokládá uchovávání i záporných čísel, jeden bit je rezervován pro znaménko, čímž se hodnota času snižuje na:

$ echo '2^31' | bc

2147483648

A protože číslování Unixu začíná od 0, to znamená, že máme 2 147 483 648 hodnot, ale nejvyšší z nich je 2 147 483 647 — hodnota data a času Unixu nesmí přesáhnout toto číslo. Stejně jako nikdy nemůže počítadlo kilometrů na autě ukazovat více než 999 999 kilometrů — přidejte 1 a hodnota se resetuje.

Kolik sekund má rok?

Počet sekund v roce lze vypočítat následovně:

$ expr 24 * 60 * 60 * 365

31536000

V přestupném roce se přidává ještě jeden den:

$ expr 24 * 60 * 60 * 366

31622400

Unix oslavilo 50 let. Co to znamená?

Jak Unix zobrazuje svůj 50. den narození?

1. ledna 2020 ve 12:00 bude čas 1577836800. Výpočet se poněkud komplikuje, protože je třeba brát v úvahu přestupné roky. Od začátku epochy Unix nastalo 12 takových let, od roku 1972 do roku 2016. To znamená, že proběhlo 38 běžných let.

Takto vypadá příkaz expr pro výpočet sekund za posledních 50 let:

$ expr 24 * 60 * 60 * 365 * 38 + 24 * 60 * 60 * 366 * 12

1577836800

Nebo takto, s ohledem na předchozí výpočty:

$ expr 31536000 * 38 + 31622400 * 12

1577836800

Tento způsob záznamu času učinil systémy Unix imunními vůči problému Y2K, kvůli kterému se lidé na konci roku 1999 obávali, že přechod na rok 2000 by mohl poškodit počítačové systémy. Obtíží bylo mnohem méně, než se očekávalo. Ve skutečnosti se pouze aplikace, které zapisovaly roky v dvouciferném formátu, setkaly s nulováním dat. Mnoho vývojářů vykonalo dodatečnou práci, aby zajistili, že jejich aplikace nebudou dotčeny problémem Y2K.

Kdy se systémy Unix setkají s problémy?

Podobné obtíže očekávají systémy Unix až po roce 2038, kdy data uložená v uvedeném formátu překročí 32bitový prostor. Zbývá ještě 18 let, ale vývojáři jádra již pracují na tom, aby se vyhnuli nadcházejícím selháním.

Problém roku 2038 se někdy označuje jako problém Y2K38. Pokud nebude vyřešen do úterý 19. ledna 2038, po tomto datu by systémy mohly myslet, že nastal rok 1901. Jedním ze způsobů, jak tento problém vyřešit, je přejít na 64bitové zobrazení informací o datu a času. Někteří se domnívají, že to bude mnohem složitější, než se může zdát.

V každém případě je ještě brzy na paniku. Opravdově důležité je dnes 50. výročí systémů Unix, které jsou považovány za jedny z nejdůležitějších operačních systémů v historii.



Zdroj: 3dnews.ru
Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster