Unix tÀitus 50 aastat. Mida see tÀhendab?

2020. aasta on Unixile mĂ€rgiline: aasta alguses sai originaalne operatsioonisĂŒsteem 50 aastat vanaks. Unixiaeg, tuntud ka kui „ajastus”, on sekundite arv, mis on möödunud 1. jaanuarist 1970. Kuid mis muretseb kernelide arendajaid Unix'i poolsaare juubeli juures?

Unix tÀitus 50 aastat. Mida see tÀhendab?

Kuigi mĂ”ned varased Unix'i arengud eelnevad ametlikule „ajastu” algusele, jÀÀb 1. jaanuar 1970 nullpunktiks POSIXi ajas. SeetĂ”ttu, alates 1. jaanuarist 2020 saab platvorm ametlikult 50 aastat.

Aeg Unix inimese aja vastu

Inimese ajas on 50 aastat suur periood. Unix'i ajas ei ole 50 aasta jooksul midagi erilist, 43 aastat oleks olnud sama oluline. Unix'i sĂŒsteemid (sealhulgas Linux) salvestavad kuupĂ€eva ja aja vÀÀrtused sekundite arvuna alates 1970-01-01 00:00:00 UTC, 32-bitise salvestusega. Selleks, et mÀÀrata, kui palju sekundeid on möödunud sellest ajast ning seega praegust Unix'i aega, saab sisestada kĂ€su:

$ date +%s

1576883876

KÀskluse date jÀrel olev argumet %s mÀÀrab kuupÀeva ja aja kuvamise kujul, mis nÀitab sekundeid alates 1970-01-01 algusest.

Unix tÀitus 50 aastat. Mida see tÀhendab?

Millist maksimaalset kuupĂ€eva saavad Unix sĂŒsteemid salvestada? Unix?

Kuna mĂ”ista, kui kaua vĂ”ib Unix sĂŒsteem aeguda, tuleb hinnata 32-bitise vĂ€lja mahtu. Seda saab arvutada jĂ€rgmiselt:

$ echo ‘2^32’ | bc

4294967296

Kuid kuna Unix vĂ”imaldab salvestada ka negatiivseid numbreid, reserveeritakse ĂŒks bit mĂ€rgi jaoks, vĂ€hendades seelĂ€bi aja vÀÀrtust jĂ€rgmiseni:

$ echo ‘2^31’ | bc

2147483648

Ja kuna Unix'i nummerdamine algab 0-st, tĂ€hendab see, et meil on 2 147 483 648 vÀÀrtust, kuid suurim on 2 147 483 647 - Unix'i kuupĂ€eva ja aja vÀÀrtused ei tohi ĂŒletada seda numbrit. Just nagu auto odomeeter ei saa nĂ€idata rohkem kui 999 999 kilomeetrit - lisage 1 ja vÀÀrtus lĂ€htestatakse.

Kui kaua kestab aasta sekundites?

Aasta sekundeid saab arvutada jÀrgmiselt:

$ expr 24 * 60 * 60 * 365

31536000

KĂ€bis aastal lisandub veel ĂŒks pĂ€ev:

$ expr 24 * 60 * 60 * 366

31622400

Unix tÀitus 50 aastat. Mida see tÀhendab?

Kuidas Unix tĂ€histab oma 50. sĂŒnnipĂ€eva?

1. jaanuar 2020 kell 00:00 on aeg 1577836800. Arvutus keeruline, kuna tuleb arvesse vÔtta ka kÀÀbusisaastaid. Unix'i ajastul on kokku olnud 12 sellist aastat, alates 1972. aastast kuni 2016. aastani. See tÀhendab, et tavalisi aastaid on möödunud 38.

Nii nÀeb vÀlja kÀsk expr, et arvutada sekundid möödunud 50 aasta jooksul:

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

1577836800

VÔi nii, arvestades varasemaid arvutusi:

$ expr 31536000 * 38 + 31622400 * 12

1577836800

See aja salvestamise meetod tegi Unix-sĂŒsteemid immuunsuseks Y2K probleemile, mis tekitas muret, et 2000. aastasse ĂŒleminek vĂ”ib kahjustada arvutisĂŒsteeme. Tegelikult oli raskusi palju vĂ€hem kui oodati. Ainsad rakendused, mis salvestasid aastaid kaheteistkĂŒmnendses formaadis, seisavad silmitsi kuupĂ€evade nullimisega. Paljud arendajad tegid tĂ€iendavat tööd, et tagada, et nende rakendused ei saaks Y2K probleemist mĂ”jutatud.

Kui aega Unix seisab silmitsi probleemidega?

Sarnased raskused ootavad Unix-sĂŒsteeme mitte varem kui 2038. aastal, kui ĂŒlaltoodud formaadis salvestatud kuupĂ€evad ĂŒletavad 32-bitise ruumi. JÀÀnud on veel 18 aastat, kuid tuumaarendajad töötavad juba vĂ€lja, kuidas tulevasi rikkeid vĂ€ltida.

2038. aasta probleemit tuntakse mĂ”nikord ka kui Y2K38 probleem. Kui see ei lahendata enne teisipĂ€eva, 19. jaanuari 2038, vĂ”ivad sĂŒsteemid pĂ€rast seda kuupĂ€eva arvata, et on saabunud 1901. aasta. Üks lahendus oleks minna ĂŒle 64-bitisele kuupĂ€eva- ja ajainfot kĂ€sitlevale esitusviisile. MĂ”ned arvavad, et see on palju keerulisem, kui see esmapilgul nĂ€ib.

Igal juhul on veel vara paanikaks. TĂ€na on oluline 50. aastapĂ€ev Unix-sĂŒsteemidele, mis on tuntud kui ĂŒks ajaloo tĂ€htsamaid operatsioonisĂŒsteeme.



Allikas: 3dnews.ru
Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster