Mì-thuigse luchd-prògramaidh mu àm Unix

Tha mi duilich Pàdraig MacCoinnich.

An-dè Danaidh Dh'fhaighnich mi mu chuid de fhìrinnean inntinneach mu àm Unix, agus chuimhnich mi gu bheil e uaireannan ag obair gu tur neo-thuigsinn.

Tha coltas gu bheil na trì fìrinnean sin gu math reusanta agus loidsigeach, nach eil?

  1. Is e ùine Unix an àireamh dhiog bho 1 Faoilleach, 1970 00:00:00 UTC.
  2. Ma dh'fhuiricheas tu dìreach aon diog, atharraichidh ùine Unix le dìreach aon diog.
  3. Cha bhith ùine Unix a-riamh a’ gluasad air ais.

Chan eil gin de seo fìor.

Ach chan eil e gu leòr dìreach a ràdh, “Chan eil gin de seo fìor,” gun mhìneachadh. carson. Faic gu h-ìosal airson mìneachadh. Ach ma tha thu airson smaoineachadh dhut fhèin, na sgrolaich seachad air dealbh a’ ghleoc!

Mì-thuigse luchd-prògramaidh mu àm Unix
Cloc clàr bho na 1770an. Air a chur ri chèile le John Leroux. Bho Cruinneachaidhean fàilte. Air fhoillseachadh fo cheadachas CC BY

Tha aon adhbhar aig na trì mì-thuigse: leum diogan. Mura h-eil thu eòlach air diogan leum, seo iomradh sgiobalta:

Tha ùine UTC air a dhearbhadh le dà fheart:

  • Àm Atamach Eadar-nàiseanta: Leughadh cuibheasach bho na ceudan de chlocaichean atamach air feadh an t-saoghail. Is urrainn dhuinn an dàrna fear a thomhas a rèir feartan electromagnetic dadam, agus is e seo an tomhas ùine as mionaidiche as aithne do shaidheans.
  • Am Cruinne, stèidhichte air cuairteachadh na Talmhainn timcheall an axis aige fhèin. Is e aon tionndadh slàn aon latha.

Is e an duilgheadas nach eil an dà àireamh seo an-còmhnaidh co-ionnan. Chan eil cuairteachadh na Talmhainn cunbhalach - bidh e a’ slaodadh sìos mean air mhean, agus mar sin bidh na làithean ann an Àm Uile-choitcheann a’ fàs nas fhaide. Air an làimh eile, tha clocaichean atamach gu diabhal ceart agus seasmhach thar milleanan de bhliadhnaichean.

Nuair a thuiteas dà uair a-mach à sioncranachadh, thèid diog a chuir ris no a thoirt air falbh bho UTC gus an toirt air ais gu sioncranachadh. Bho 1972 seirbheis IERS (a tha a’ ruith a’ chùis seo) 27 diogan a bharrachd ris. B’ e an toradh 27 latha UTC le fad de 86 diogan. Gu teòiridheach, tha latha le fad 401 diogan (às aonais aon) comasach. Tha an dà roghainn a’ dol an-aghaidh a’ bharail bunaiteach mu àm Unix.

Tha ùine Unix a’ gabhail ris gum mair gach latha dìreach 86 diogan (400 × 60 × 60 = 24), gun diogan a bharrachd. Ma thachras leum mar sin, bidh ùine Unix an dàrna cuid a ’leum aon diog, no a’ cunntadh dà dhiog ann an aon. Mar 86, tha e ag ionndrainn 400 diogan leum.

Mar sin feumar cur ris na mì-bheachdan againn mar a leanas:

  • Is e ùine Unix an àireamh dhiog bho 1 Faoilleach, 1970 00:00:00 UTC diogan leum minus.
  • Ma dh’ fheitheas tu dìreach aon diog, atharraichidh ùine Unix le dìreach aon diog, mura tèid an dàrna leum a thoirt air falbh.

    Gu ruige seo, cha deach diogan a thoirt air falbh ann an cleachdadh a-riamh (agus tha slaodachadh cuairteachadh na Talmhainn a ’ciallachadh nach eil seo coltach), ach nan tachradh e a-riamh, bhiodh e a’ ciallachadh gum biodh latha UTC aon diog nas giorra. Anns a 'chùis seo, tha an dàrna mu dheireadh de UTC (23: 59: 59) air a thilgeil air falbh.

    Tha an aon àireamh dhiog aig gach latha Unix, agus mar sin cha bhith an dàrna Unix mu dheireadh de latha nas giorra a’ freagairt ri ùine UTC sam bith. Seo cò ris a tha e coltach, ann an amannan cairteal-diog:

    Mì-thuigse luchd-prògramaidh mu àm Unix

    Ma thòisicheas tu aig 23: 59: 58: 00 UTC agus feitheamh aon diog, bheir ùine Unix air adhart dà dhiog UTC agus cha tèid stampa-ama Unix 101 a shònrachadh do dhuine sam bith.

  • Chan urrainn ùine Unix a dhol air ais gu bràth, gus an tèid dàrna leum a chuir ris.

    Tha seo air tachairt mar-thà 27 tursan ann an cleachdadh. Aig deireadh latha UTC, thèid diog a bharrachd a chur ris aig 23:59:60. Tha an aon àireamh de dhiogan aig Unix ann an latha, agus mar sin chan urrainn dha diog a bharrachd a chuir ris - an àite sin feumaidh e clàran-ama Unix ath-aithris airson an diog mu dheireadh. Seo cò ris a tha e coltach, ann an amannan cairteal-diog:

    Mì-thuigse luchd-prògramaidh mu àm Unix

    Ma thòisicheas tu aig 23: 59: 60.50 agus feitheamh leth diog, an ùine Unix thig air ais le leth diog, agus tha an clàr-ama Unix 101 a’ freagairt ri dà dhiog UTC.

Is dòcha nach e seo na h-aon rudan neònach aig amannan Unix - dìreach na chuimhnich mi an-dè.

Uair - glè mhath rud neònach.

Source: www.habr.com

Cuir beachd ann