Maoni Mabaya ya Waandaaji wa Programu Kuhusu Saa ya Unix

Naomba msamaha Patrick McKenzie.

Jana Danny Niliuliza juu ya ukweli wa kupendeza juu ya wakati wa Unix, na nikakumbuka kuwa wakati mwingine inafanya kazi bila ufahamu kabisa.

Mambo haya matatu yanaonekana kuwa ya kuridhisha sana na yenye mantiki, sivyo?

  1. Wakati mmoja ni idadi ya sekunde tangu Januari 1, 1970 00:00:00 UTC.
  2. Ukisubiri sekunde moja haswa, wakati wa Unix utabadilika kwa sekunde moja haswa.
  3. Wakati wa Unix kamwe haurudi nyuma.

Hakuna kati ya haya ambayo ni ya kweli.

Lakini haitoshi tu kusema, "Hakuna kati ya haya ambayo ni ya kweli," bila kueleza. kwa nini. Tazama hapa chini kwa maelezo. Lakini ikiwa unataka kufikiria mwenyewe, usitembeze nyuma ya picha ya saa!

Maoni Mabaya ya Waandaaji wa Programu Kuhusu Saa ya Unix
Saa ya meza kutoka miaka ya 1770. Imeandaliwa na John Leroux. Kutoka Karibu mikusanyiko. Imechapishwa chini ya leseni CC BY

Dhana zote potofu tatu zina sababu moja: sekunde za kurukaruka. Ikiwa hujui sekunde za kurukaruka, hapa kuna rejeleo la haraka:

Wakati wa UTC huamuliwa na mambo mawili:

  • Saa ya Atomiki ya Kimataifa: Wastani wa usomaji kutoka kwa mamia ya saa za atomiki kote ulimwenguni. Tunaweza kupima cha pili kwa sifa za sumakuumeme za atomi, na hiki ndicho kipimo sahihi zaidi cha wakati kinachojulikana na sayansi.
  • Wakati wa Dunia, kwa kuzingatia mzunguko wa Dunia kuzunguka mhimili wake mwenyewe. Mapinduzi moja kamili ni siku moja.

Shida ni kwamba nambari hizi mbili hazilingani kila wakati. Mzunguko wa Dunia hauendani - polepole hupungua, kwa hivyo siku katika Wakati wa Ulimwenguni huwa ndefu. Kwa upande mwingine, saa za atomiki ni sahihi kishetani na hazibadiliki kwa mamilioni ya miaka.

Mara mbili zinapotoka kwa usawazishaji, sekunde inaongezwa au kuondolewa kutoka UTC ili kuzirejesha kwenye usawazishaji. Tangu 1972 huduma IERS (ambayo inaendesha kesi hii) iliongeza sekunde 27 za ziada. Matokeo yalikuwa siku 27 za UTC na muda wa sekunde 86. Kinadharia, siku yenye muda wa sekunde 401 (minus moja) inawezekana. Chaguzi zote mbili zinapingana na dhana ya msingi ya wakati wa Unix.

Wakati wa Unix unadhania kuwa kila siku huchukua sekunde 86 haswa (400 Γ— 60 Γ— 60 = 24), bila sekunde zozote za ziada. Ikiwa kuruka kama hivyo kunatokea, basi wakati wa Unix unaruka sekunde moja, au huhesabu sekunde mbili kwa moja. Kufikia 86, inakosa sekunde 400 za kurukaruka.

Kwa hivyo maoni yetu potofu yanahitaji kuongezwa kama ifuatavyo:

  • Wakati mmoja ni idadi ya sekunde tangu 1 Januari 1970 00:00:00 UTC ondoa sekunde za kurukaruka.
  • Ukingoja sekunde moja, wakati wa Unix utabadilika kwa sekunde moja, isipokuwa sekunde ya leap imeondolewa.

    Hadi sasa, sekunde hazijawahi kuondolewa katika mazoezi (na kupungua kwa mzunguko wa Dunia kunamaanisha kuwa hii haiwezekani), lakini ikiwa itatokea, itamaanisha kuwa siku ya UTC itakuwa fupi ya sekunde moja. Katika hali hii, sekunde ya mwisho ya UTC (23:59:59) hutupwa.

    Kila siku ya Unix ina idadi sawa ya sekunde, kwa hivyo sekunde ya mwisho ya Unix ya siku iliyofupishwa haitalingana na wakati wowote wa UTC. Hivi ndivyo inavyoonekana, katika vipindi vya robo ya pili:

    Maoni Mabaya ya Waandaaji wa Programu Kuhusu Saa ya Unix

    Ukianza saa 23:59:58:00 UTC na usubiri sekunde moja, muda wa Unix utasonga mbele kwa sekunde mbili za UTC na muhuri wa muda wa Unix 101 hautakabidhiwa mtu yeyote.

  • Wakati wa Unix hauwezi kurudi nyuma, hadi sekunde ya leap iongezwe.

    Hii tayari imetokea mara 27 katika mazoezi. Mwishoni mwa siku ya UTC, sekunde ya ziada huongezwa saa 23:59:60. Unix ina idadi sawa ya sekunde kwa siku, kwa hivyo haiwezi kuongeza sekunde ya ziada - badala yake inapaswa kurudia alama za nyakati za Unix kwa sekunde ya mwisho. Hivi ndivyo inavyoonekana, katika vipindi vya robo ya pili:

    Maoni Mabaya ya Waandaaji wa Programu Kuhusu Saa ya Unix

    Ukianza saa 23:59:60.50 na usubiri nusu sekunde, saa ya Unix inarudi kwa nusu sekunde, na muhuri wa muda wa Unix 101 unalingana na sekunde mbili za UTC.

Hizi labda sio tabia za kipekee za nyakati za Unix - kile tu nilichokumbuka jana.

Muda - sana jambo la ajabu.

Chanzo: mapenzi.com

Kuongeza maoni