Mikä on Unix-aikakausi ja miten Unix-aika toimii?

Nov 10, 2024
Linux
Mikhail Leonov / Shutterstock

Unix varastoi aikaan kuin monta sekuntia sitten tammikuun 1. 1970. ja se tarkoittaa Linux ei liikaa. Me selittää tätä näennäisen outoa järjestelmää, ja miksi tuomiopäivä oli määrä 2038.

Ensimmäinen Unix Epoch

Goethe ( 1749-1832 ) Julisti ”Jokainen sekunti on ääretön arvo.” Se on totta, meillä jokaisella on vain niin monta sekuntia täällä Maa-planeetalla, ja emme tiedä milloin viimeinen toinen tulee. Mutta me tunnemme syntymäpäivä, ja kun kuolevaisuuden lähtölaskenta alkoi.

Unix -kuin Britannian kuningatar -Onko kaksi syntymäpäiviä. Tai tarkemmin, on ollut kaksi erillistä tapausta, joissa se alkoi laskea sekunteja sen olemassaolosta. Ensimmäistä kertaa Unix alkoi laskien oli puolenyön 01 tammikuu 1971.

Voimme nähdä tämän aivan selvästi tarkastelemalla osan ensimmäisen painoksen Unix ohjelmoijan käsikirja , Päivätty 3. marraskuuta 1971. Selaa alaspäin sivua 13 Tämän jakson ja näet kuvauksen (nyt haudattu) aika komento. Meille kerrotaan, että” aika palauttaa ajan jälkeen 00:00:00, tammikuu 1, 1971 mitattuna sixtieths toisen.”

Kalenterit ja aika järjestelmät mitata aikaa alkaen merkittäviä vaiheessa menneisyydessä, kuten kosmologisen tapahtuman perustamista imperiumi, tai menestys vallankumouksen. In käyttöjärjestelmissä, mielivaltainen aika ja päivämäärä on valittu paikka, josta laskenta alkaa. Tämä on aikakausi kyseiselle käyttöjärjestelmä.

Unix käytetty 32-bittinen etumerkitön kokonaisluku pitää lukua 60ths toisen jälkeen epookki. Tämä on numeerinen muuttuja, joka pystyy pitämään arvot välillä 0 4294967295 (2 32 -1). Se kuulostaa paljolta. Mutta laskuri kasvaa 60 kertaa sekunnissa, ja kuten ohjelmoijan käsikirja toteaa, ”Ajallinen ajattelevia käyttäjä huomaa, että 2 ** 32/60 toista on vain noin 2,5 vuotta.”

Nopeudella kulutus 60 numeroa sekunnissa, laskuri olisi osunut maksimiarvonsa 8. huhtikuuta 1973 hieman alle 829 päivää myöhemmin.

Toinen Unix Epoch

Sanomattakin on selvää, tämä vaikutetaan nopeasti. Allekirjoittamaton kokonaisluku korvattiin 32-bittinen allekirjoitettu kokonaisluku. Se voi tuntua yllättävä valinta, koska allekirjoitettu kokonaisluku pystyy pitämään pienemmän määrän myönteisiä arvoja-2147483647 (2 31 ) -Than etumerkitön kokonaisluku. Kuitenkin, nopeus kulutus oli myös vähentynyt 60ths toisen kokonaisiin sekuntia.

Se kestää kauemmin laskea 0 2147483647 laskenta yksi numero sekunnissa kuin se laskea 0 4294967295 60 lukemaa sekuntia kohti. Ja aivan marginaalilla. Uudessa järjestelmässä ei osunut maksimiarvonsa hieman yli 68 vuotta. Tämä tuntui niin kaukana tulevaisuudessa, että aikakausi oli jopa palauttaa aikaisempaan ajankohtaan. Uuden aikakausi oli asetettu keskiyö tammikuu 1, 1970 UTC.

Siinä vaiheessa 68 vuotta myöhemmin on nyt kiusallisen lähellä. Tarkkaan ottaen me päästä sitä 03:14:07 UTC tammikuu 19, 2038.

Yksinkertainen mutta tehokas järjestelmä

Käytetään yhtä kokonaisluvun laskea, kuinka monta kertaa askeleen päässä tiettynä ajankohtana on tehokas tapa tallentaa aikaa. Sinun ei tarvitse tallentaa monimutkaisia ​​rakenteita vuosia, kuukausia, päiviä ja aikoja. ja se on maa, maa ja aikavyöhyke riippumaton.

Kertomalla numero kokonaisluku, jonka koko aika-askel, tässä tapauksessa, yksi toisen antaa kulunut aika epookki, ja muuntamiseen että kielikohtaiseen formaatteja aikavyöhykkeiden säädöt on suhteellisen triviaalia.

Se antaa sinulle sisäänrakennettu yläraja kuitenkin. Ennemmin tai myöhemmin aiot lyödä maksimiarvo voit pitää valitsemasi muuttujan tyyppiä. Tuolloin kirjallisesti tämän artikkelin, vuosi 2038 on vain 17 vuoden päässä.

Se on samanlainen, mutta hieman eri ongelmaan aikaisin tietokonejärjestelmien viime vuosisadalta kahdella numerolla tallentaa vuosia. Kun kalenteri kaataa uuteen vuoteen ja uuden vuosisadan 2000 olisi vuosi arvo tallennetaan ”00” tulkita 2000 tai 1900?

Korjaaminen ns ” Millenium Bug ”On arvioitu maksaneen pelkästään Yhdysvalloissa yli $ 100 miljardia ja ottaneen tuhansia miestyövuosia osoitteeseen maailmanlaajuisesti. Oli joitakin asioita ensimmäisinä päivinä tammikuu 2000 mutta mitään, kuten katastrofit olisi tapahtunut, jos vika olisi jätetty huomiotta.

Doomsday on lykätty

Koska Linux ja kaikki Unix-kaksoisolento käyttöjärjestelmien samaa asiaa, vuosi 2038 asia on otettu vakavasti jonkin aikaa, ja korjauksia lisätään ytimen vuodesta 2014. Tämä on käynnissä, ja korjauksia lisätään ytimen niinkin äskettäin kuin Jan. 2020 käsitellä 32-bittinen kokonaisluku ongelma.

Tietenkin toimivassa Linux tietokone sisältää paljon enemmän kuin ydin. Kaikki toiminta apuohjelmia ja userland sovelluksia, jotka hyödyntävät järjestelmän ajan läpi eri API ja rajapinnat on muutettava odottaa 64-bittisiä arvoja. Tiedostojärjestelmien liian on päivitettävä hyväksymään 64-bittinen aikaleimat tiedostoja ja hakemistoja.

Linux on kaikkialla . Rikkoutumiseen Linux merkitsisi epäonnistumisia kaikenlaisia ​​atk-pohjaisiin järjestelmiin. Linux toimii useimmat web, useimmat julkisen pilvi, ja jopa avaruusalus. Se toimii älykkäät kodit ja itsensä ajaa autoa. Älypuhelimet ovat Unix-johdettu ydin heidän sydämensä. Melkein mitä tahansa kaltainen palomuurien, reitittimien ja laajakaistamodeemeja-, joka on upotettu käyttöjärjestelmissä sisällä Linuxissa.

On hienoa, että Linux on hyvin matkalla ollessa määrätty. Me asentaa päivityksiä ja että tulee olemaan se. Mutta mitkä ovat mahdollisuudet, että kaikki nämä laitteet on paikattu ja päivitetty? Monet heistä eivät edes ole käytössä silloin niin se on kiistanalainen kysymys, mutta jotkut silti kytkemällä pois. Piilossa pimeässä ja pölyinen syvennykset palvelinhuoneissa ja teline kaapit ehkä, mutta he ovat siellä, työ hiljaa, kun taas sekuntia rasti mukaan vasta noin varttia yli kolme aamulla 19 tammikuu 2038.

Mutta laitteet, kuten sen pitäisi olla pieni vähemmistö. Valtaosa järjestelmien näkevät crunch aika tulla ja mennä ilman välikohtauksia. Jälleen kerran me pystyä rentoutumaan. Ainakin, vuoteen 2486 lähestyessä tuoden mukanaan täsmälleen sama ongelma, jotka käyttävät 64-bittinen pohjainen kokonaislukuja laskemaan kerran sitten aikakautta.

Päivämäärä Command

Me voimme Käytä Päivämäärä komento tarkistaa Linux ja muut Unix johdannaiset silti käyttää alkuperäistä, yksinkertainen järjestelmä tallentamaan aika-arvosta, kun monta sekuntia, koska aikakauden.

Käyttämällä Päivämäärä komento ilman parametreja tulostaa nykyinen päivämäärä ja aika pääteikkuna. Olet osoittanut aikavyöhykkeen, että aika on oikaistu. EDT on Eastern Daylight Time, mikä tarkoittaa meidän testi tietokone on Itä aikavyöhyke, ja kesäaika on voimassa. Kun kesäaika ei ole vaikutusta, Itä aikavyöhyke käyttää itärannikon aikaa.

Nähdä taustalla kokonaisluku, voimme käyttää näyttöä muotomerkkijonoa. Muotomerkkijonojen on plusmerkki ”+”, kuten heidän ensimmäinen kirjain. ”% S” muodossa merkki tarkoittaa ”näyttää sekunnin jälkeen epookin.”

Jos otamme sekunnin arvo palauttama Päivämäärä ja syöttämään se takaisin osaksi Päivämäärä komento --d (Näyttö aikaa kuvataan merkkijono) vaihtoehto, se tulee muuntaa sen takaisin normaali päivämäärä ja kellonaika.

 päivämäärä 
 päivämäärä +% s 
 päivämäärä -D  @ 1633183955  

Voimme osoittaa, että kokonaisluku todella edustaa aikaa näyttämällä, kuinka monta sekuntia, nukkuminen 10 sekuntia, ja osoittaa uusi sekuntien. Kaksi kokonaisluku arvot poikkeavat täsmälleen 10.

 Päivämäärä +% S & amp; & amp; Sleep 10 & amp; & amp; Päivämäärä +% s 

Olemme nähneet, että voimme siirtää useita sekunteja Päivämäärä komento ja se muuntaa meille aikaa ja päivämäärää. Jos teemme juuri sen, että nolla sekuntia syöttää arvomme, Päivämäärä pitäisi tulostaa Unix-aikakauden päivämäärä ja kellonaika.

 TZ = 'UTC: n päivämäärä -  @ 0  +'% x% R '

Komento hajoaa näin:

  • TZ = 'UTC' : EPOCH asetettiin koordinoidun yleisen ajan (UTC, joten meidän on kerrottava Päivämäärä käyttää UTC: tä. "TZ =" -konsultti asettaa tehokkaan aikavyöhykkeen vain nykyiseen komentoon.
  • Päivämäärä : The Päivämäärä komento.
  • --d @ 0 : Kerromme Päivämäärä Voit käyttää merkkijonoa panoksena, ei aika "juuri nyt". Merkkijono, jonka lähdemme, pitivät nolla sekuntia.
  • + '% X% r' : Lähtömuoto. "% X" -formaatti token kertoo Päivämäärä Voit näyttää vuoden, kuukauden ja päivän. "% R" -muotoinen token opettaa Päivämäärä 24 tunnin muodon käyttäminen tuntia ja minuutteille. Koska muodossa on välilyöntejä, käärimme koko merkkijono yksittäisissä lainausmerkeissä " " "Joten se merkkijono käsiteltiin yhtenä kokonaisuutena.

Odotettaessa tuotos on keskiyöllä 1.1.1970.

Liittyvät: Kuinka näyttää päivämäärän ja kellonajan Linux-terminaalissa (ja käytä sitä bash-skripteissä)

Ensi kertaan

Yksinkertainen on usein paras. Sekuntien laskeminen kiinteästä datumista on yksinkertaisin tapa merkitä ajan kuluminen. Mutta ajan kuluminen tuo uusia haasteita. Kun korjaukset, jotka on otettu käyttöön, näyttää siltä, ​​että olemme selkeitä vuoteen 2486.

Mielestäni on turvallista sanoa, että olemme huolissamme siitä hieman lähempänä aikaa.


Linux - Suosituimmat artikkelit

Miten löytää ja poistaa rikki symbolit Linuxissa

Linux Nov 12, 2024

Fatmawati Achmad Zaenuri / Shutterstock Linux-symboliset linkit ovat fantastinen ominaisuus, mutta ne voivat rikkoa ja jättää huomiotta mitään. Näin vo..


Miten hallita Linux-palvelimet kanssa Cockpit Web Interface

Linux Dec 9, 2024

Fatmawati Achmad Zaenuri / Shutterstock Voit helposti seurata ja hallita useita Linux-tietokoneita Cockpit, selainpohjainen hallinnon ja kojelauta työkalu. Se..


Kuinka käyttää Brace laajennus Linuxin bash-kuoressa

Linux May 12, 2025

Fatmawati Achmad Zaenuri / Shutterstock Brace laajennus on käyttökelpoinen menetelmä tuottaa luetteloita merkkijonoja, jotka voidaan käyttää skriptit ja ..


Tämä uusi Linux-pelaaminen kannettava tietokone on spls käyttää mitään

Linux Oct 20, 2025

Juno-tietokoneet Linux ja pelaaminen alkavat tulla yhteen paljon viime aikoina. The Höyrykansi on matkalla Linuxin kanssa, ja Juno ilmoitti juuri uuden Linu..


Kuinka käyttää Android-sovelluksia Linuxissa

Linux Oct 19, 2025

quietbits / Shutterstock.com Oletko koskaan halunnut ajaa Android-sovellusta Linuxissa, mutta ei halua sotkea virheenkorjaus siltoja, kehitysympäristöt tai s..


10 perus Linux-komennot aloittelijoille

Linux Oct 13, 2025

Juuri aloittanut Linux? Oloasi mukavaksi komentorivi on välttämätöntä. Jos olet jo perehtynyt komentoriviltä apuohjelmia, huomaat, että Linux ja Mac osuus paljon yhteistä, mutta Wi..


Ubuntu 21.10 'INDRI'

Linux Oct 14, 2025

Kanoninen Ubuntu 21.10 "Impsing Indri" oli vapautettu 14. lokakuuta 2021. Se ominaisuuksia Gnome 40 , uusi ydin ja päivitetyt sovellukset...


Kuinka asentaa Linuxin M1 Mac Apple Siliconilla

Linux Nov 11, 2024

Natiivi Linux tuen Applen uutta ARM-pohjainen arkkitehtuuri ei ole vielä valmis, mutta voit käyttää Linux koskevasta M1 M1 Pro tai M1 Max käyttämällä virtuaalikone..


Luokat