50 éve létezik a Unix. Mit jelent ez?

A 2020-as év jelentős a Unix számára: az év elején az eredeti operációs rendszer 50 éves lett. A Unix idő, más néven "epoch idő", az eltelt másodpercek számát jelenti 1970. január 1-je óta. De mi aggasztja a kernel fejlesztőit a Unix fél évszázados évfordulója kapcsán?

50 éve létezik a Unix. Mit jelent ez?

Bár a Unix korai fejlesztései megelőzik az "epoch" hivatalos kezdetét, 1970. január 1-je továbbra is a POSIX idő nullapontja. Így tehát 2020. január 1-jével hivatalosan pontosan 50 éves lett a platform.

Idő Unix az emberi idővel szemben

Emberi időszempontból 50 év hosszú időszak. Unix időszempontjából azonban semmi különös nem van 50 évben, 43 év sem lenne kevésbé jelentős. A Unix rendszerek (beleértve a Linuxot is) az időpontok és dátumok értékeit a 1970-01-01 00:00:00 UTC óta eltelt másodpercek számaként tárolják, 32 bites formátumban. Annak meghatározásához, hogy hány másodperc telt el azóta, és így a jelenlegi Unix idő értéke, az alábbi parancsot lehet végrehajtani:

$ date +%s

1576883876

A date parancs utáni %s argumentum a jelenlegi dátum és idő megjelenítését jelöli másodpercek számaként 1970. január 1. óta.

50 éve létezik a Unix. Mit jelent ez?

Milyen maximális dátumot tárolhatnak a rendszerek Unix?

Ahhoz, hogy megértsük, mennyi időt tud tárolni egy Unix rendszer, értékelnünk kell a 32 bites mező kapacitását. Ezt így lehet kiszámítani:

$ echo '2^32' | bc

4294967296

Mivel azonban a Unix lehetőséget biztosít negatív számok tárolására, egy bitet fenntartanak a jel számára, ezáltal csökkentve az időértéket a következőre:

$ echo '2^31' | bc

2147483648

Mivel a Unix számlálása 0-val kezdődik, ez azt jelenti, hogy 2 147 483 648 értékünk van, de a legnagyobb 2 147 483 647 – a Unix dátum és idő értéke nem haladhatja meg ezt a számot. Ugyanúgy, ahogy az autók kilométerórája sem mutathat többet 999 999 kilométernél – ha 1-et ad hozzá, az érték nullázódik.

Hány másodperc egy év?

Az évben eltelt másodpercek száma a következőképpen számítható ki:

$ expr 24 * 60 * 60 * 365

31536000

Leap évben még egy napot hozzáadunk:

$ expr 24 * 60 * 60 * 366

31622400

50 éve létezik a Unix. Mit jelent ez?

Hogyan jeleníti meg a Unix az 50. születésnapját?

2020. január 1-jén 12:00-kor az időpont 1577836800 lesz. A számítást kissé bonyolítja, hogy figyelembe kell venni a szökőéveket. A Unix idő kora óta 12 ilyen év volt, kezdve 1972-től 2016-ig. Tehát 38 normál év telt el.

Így néz ki az expr parancs az elmúlt 50 év másodperceinek számításához:

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

1577836800

Vagy így, figyelembe véve a korábban végzett számításokat:

$ expr 31536000 * 38 + 31622400 * 12

1577836800

Ez a időmérték használat módja tette a Unix rendszereket immunissá a Y2K problémával szemben, ami miatt az emberek 1999 végén aggódtak, hogy a 2000-re való átállás kárt okozhat a számítógépes rendszerekben. A nehézségek sokkal kevesebb volt, mint amire számítottak. Valójában csak azok az alkalmazások szenvedtek, amelyek két számjegyű formátumban tárolták az éveket, találkoztak a dátumok nullázásával. Sok fejlesztő végzett extra munkát, hogy biztosítsa, hogy alkalmazásaik ne érintettek a Y2K problémában.

Amikor a Unix problémákkal fog szembesülni?

Hasonló nehézségek várnak a Unix rendszerekre legkorábban 2038-ban, amikor a fent említett formátumban tárolt dátumok túllépik a 32 bites teret. Még 18 év van hátra, de a kernel fejlesztői már dolgoznak a következő hibák elkerülésén.

A 2038-as probléma néha Y2K38-problémaként is említik. Ha ezt nem oldják meg 2038. január 19-én, a dátum után a rendszerek úgy gondolhatják, hogy 1901 van. Egyik módja a probléma megoldásának az, hogy 64 bites dátum- és időinformációt használunk. Néhányan azt mondják, hogy ez sokkal bonyolultabb lesz, mint amilyennek látszik.

Mindenesetre még korai pánikba esni. Ma igazán fontos dolog az Unix rendszerek 50. évfordulója, amelyeket a történelem egyik legfontosabb operációs rendszerének tartanak.



Forrás: 3dnews.ru
Megbízható hosting vásárlása weboldalak számára, DDoS védelemmel, VPS VDS szerverek. 🔥 Megbízható webtárhely vásárlása DDoS védelemmel, VPS VDS szerverek | ProHoster