2020a urte esanguratsua da Unixentzat: urtearen hasieran, jatorrizko sistema eragileak 50 urte bete zituen. Unix denborak, "garai-data" izenez ere ezagutzen direnak, 1eko urtarrilaren 1970etik igaro diren segundo kopurua dira. Baina zerk kezkatzen ditu nukleoko garatzaileak Unix-en mende erdiaren urteurrenarekin lotuta?

Unix-en hasierako garapen batzuk bere "garaiaren hasiera ofiziala" baino lehenagokoak diren arren, 1eko urtarrilaren 1970a POSIX denboran zero puntua izaten jarraitzen du. Hori dela eta, 1ko urtarrilaren 2020aren hasierarekin, plataformak ofizialki 50 urte bete zituen.
Denbora Unix vs giza denbora
Giza denborari dagokionez, 50 urte denbora luzea da. Unix denborari dagokionez, 50 urte ez da ezer berezirik, eta 43 urte ez lirateke gutxiago esanguratsuak izango. Unix sistemak (barne) Linux) data eta ordu balioak gorde 1970-01-01 00:00:00 UTC-tik igarotako segundo kopuru gisa, 32 bit-etan idatzita. Ordutik zenbat segundo igaro diren zehazteko, eta beraz, uneko Unix denbora balioa zehazteko, komando hau exekutatu dezakezu:
$data +%s
1576883876
Date komandoaren ondorengo %s argumentuak uneko data eta ordua bistaratzen ditu 1970-01-01etik aurrera segundo kopurua gisa.

Zein da sistemak gorde ditzaketen data maximoa? Unix?
Unix sistema batek zenbat denbora iraun dezakeen ulertzeko, 32 biteko eremu baten ahalmena kalkulatu behar duzu. Honela kalkula daiteke:
$ oihartzuna '2^32' | bc
4294967296
Hala ere, Unix-ek zenbaki negatiboak ere gordetzen dituenez, bit bat erreserbatuta dago zeinuarentzat, eta horrela denbora-balioa honela murriztu da:
$ oihartzuna '2^31' | bc
2147483648
Eta Unix-en zenbaketa 0tik hasten denez, horrek esan nahi du 2 balio ditugula, baina handiena 147 da - Unix data-orduaren balioek ezin dute kopuru hori gainditu. Kotxe bateko kilometro-kontagailuak 483 kilometro baino gehiago erakutsi ezin dituen bezala - gehitu 648 eta balioa zerora doa.
Zenbat denbora da urte bat segundotan?
Urte bateko segundo kopurua honela kalkula daiteke:
$ expr 24 * 60 * 60 * 365
31536000
Bisurte batean, egun bat gehitzen da:
$ expr 24 * 60 * 60 * 366
31622400

Nola erakusten du Unixek bere 50. urtebetetzea?
1ko urtarrilaren 2020ean goizeko 12:00etan ordua 1577836800 izango da. Kalkulua zertxobait zailagoa da, bisurteak kontuan hartu behar direlako. Unix aroa hasi zenetik, 12 urte izan dira, 1972an hasi eta 2016an amaitu. Hau da, 38 urte arrunt igaro dira.
Hau da expr komandoak azken 50 urteotan segundoak zenbatzean:
$ expr 24 * 60 * 60 * 365 * 38 + 24 * 60 * 60 * 366 * 12
1577836800
Edo honela, aurreko kalkuluak kontuan hartuta:
$ expr 31536000 * 38 + 31622400 * 12
1577836800
Denbora grabatzeko modu honek Unix sistemak Y2K arazoaren aurrean immune bihurtu zituen, jendea 1999 amaieran kezkatuta zegoen 2000. urteko trantsizioak sistema informatikoetan hondamendiak eragingo zituelako. Zailtasunak espero baino askoz ere txikiagoak izan ziren. Izan ere, bi digituko formatuan urteak erregistratzen dituzten aplikazioek baino ez dituzte datak berrezartzen. Garatzaile askok lan gehigarria egin dute beren aplikazioak Y2K arazoaren eraginpean ez daudela ziurtatzeko.
Noiz da ordua Unix-ek arazoak izango ditu?
Antzeko zailtasunak Unix sistemen zain daude 2038 baino lehenago, goian deskribatutako formatuan gordetako datek 32 biteko espazioa gainditzen dutenean. Oraindik 18 urte falta dira, baina nukleoko garatzaileak lanean ari dira dagoeneko etorkizuneko porrotak saihesteko.
2038 arazoa batzuetan Y2K38 arazoa deitzen zaio. 19ko urtarrilaren 2038rako, asteartea, ebazten ez bada, data horretatik aurrerako sistemek 1901ekoa dela pentsa dezakete. Arazo hau konpontzeko modu bat data eta orduaren informazioaren 64 biteko irudikapen batera aldatzea da. Batzuek uste dute badirudi baino askoz zailagoa izango dela.
Nolanahi ere, goizegi da izutzeko. Gaur egun benetan garrantzitsua dena Unix sistemen 50. urteurrena da, hauek historiako sistema eragile garrantzitsuenetako bat direla aitortua.
Iturria: 3dnews.ru
