Alamun Lokaci na Unix Ba Tare Da Ciwon Kai Ba
Ka tambayi masu shirye-shirye guda uku wane lokaci ne, kila za ka samu amsoshi guda uku, ya danganta da inda suke zaune. Ka tambayi alamar lokaci ta Unix (Unix timestamp) sai ka samu ainihin lamba guda ɗaya, iri ɗaya ga kowa a duniya. Wannan lamba guda ɗaya ce ta sa lokacin epoch yake tallafawa kusan kowace fayil ta log, layin bayanai (database row), da amsar API da za ka taɓa amfani da su. Wannan shafi yana bayyana ma'anar wannan lamba, yadda ake karanta ta a hanyoyi biyu, da kuma inda take yawan kama mutane.

Ainihin Menene Lokacin Unix
Alamar lokaci ta Unix ita ce yawan sakanni da suka wuce tun daga 00:00:00 UTC ranar 1 ga Janairu, 1970, ba tare da ƙidaya sakanni na leap ba. Wannan lokacin ana kiransa epoch, kuma injiniyoyin Unix na farko ne suka zaɓe shi kawai domin kwanan wata ce mai sauƙin zagayowa da za a ƙidaya daga gareta. A lokacin epoch ƙimar tana daidai 0. Kowace sakanni tun daga wannan lokacin tana ƙara ɗaya, don haka lambar kawai take ƙaruwa. Kwanaki kafin 1970 suna da inganci gaba ɗaya, ana bayyana su a matsayin lambobin korau.
Za ka kuma ga wannan tunanin ana kiransa lokacin POSIX ko, ta hanyar sauƙi, lokacin epoch. Ko da menene sunan, aikin daidai yake: na'urar ƙidaya guda ɗaya mai ƙaruwa koyaushe ta sakanni. Domin lamba ce mai sauƙi maimakon jerin haruffa da aka tsara, kwamfuta za ta iya ajiye ta cikin ƴan byte kuma ta kwatanta biyu da ragi guda ɗaya.
Sakanni, milisakanni, da abokan aiki
Lokacin Unix na gargajiya yana ƙidaya sakanni cikakku, wanda yake bayar da sanannen lambar lambobi goma da kake gani a yau. Amma yawancin muhalli suna buƙatar ƙarin daidaito. JavaScript, misali, tana aiki cikin milisakanni, tana samar da ƙima lambobi goma sha uku, kuma wasu tsarukan sukan tafi har zuwa mikrosakanni ko nanosakanni. Wata ƙa'ida mai sauƙi: lamba mai lambobi goma sakanni ce, goma sha uku milisakanni ne. Idan kwanan watan da aka canza ya sauka kusa da 1970 alhalin kana tsammanin yau, tabbas ka ciyar da milisakanni cikin fanni na sakanni, ko akasin haka. Mai canzawarmu tana gane girman ta atomatik don haka da wuya ka rasa tunani.
Me ya sa masu haɓaka software suke dogaro da shi
Babban nasarar shi ne alamar lokaci ba ta danganta da yankin lokaci (timezone-neutral). Lambar 1735689600 tana koma zuwa lokaci ɗaya a Tokyo, Berlin, da São Paulo. Ajiye wannan lamba maimakon jerin haruffa na gida da aka tsara yana nufin ba za ka taɓa yin mamakin wace agogo ce ƙima ta danganta da ita ba. Jerawa (sorting) ma yana da sauƙi, domin tsarin lokaci kawai tsari ne na lambobi, don haka wani ma'aunin lissafi (index) na database bisa ginshiƙin alamar lokaci yana jera abubuwan da suka faru daidai ba tare da wani nazari ba. Lissafi ma daidai yake mai sauƙi: gibin da ke tsakanin abubuwa biyu da suka faru ragi ne guda ɗaya, kuma ƙara rana yana nufin ƙara 86400. Waɗannan halayen su ne ainihin dalilin da ya sa log, alamomin shaida, ma'ajiyoyin gaggawa (caches), da layukan saƙo (message queues) duk suke neman lokacin epoch.
Canzawa a kowace hanya
Zuwa daga alamar lokaci zuwa kwanan wata na ɗan Adam yana nufin ɗaukar ƙidayar sakanni ana tsara ta a kan kalanda, sannan a tsara shi a duk wace yankin lokaci da kake damuwa da ita. Zuwa hanya ɗaya, ka ɗauki shekara, wata, rana, da lokaci, ka yanke shawara wace yankin lokaci aka bayyana wannan kwanan wata, ka rusa shi zuwa sakanni tun daga epoch. Kayan aikinmu yana yin hanyoyin biyu nan take gaba ɗaya a cikin burauzarka, don haka babu abin da ka manna da yake barin injinka. Manna lamba domin ka fassara ta, ko zaɓi kwanan wata domin ka sarrafa shi, kuma ka karanta sakamakon a UTC da lokacin gida naka a lokaci guda.

UTC da lokacin gida, tarko na gargajiya
Alamar lokaci da kanta ba ta da yankin lokaci; koyaushe an manne ta zuwa UTC. Ruɗani yana bayyana ne kawai idan ka nuna ta. Idan ka canza 1700000000 allonka yana nuna sa'a na maraice yayin da abokin aikinka a wata ƙasar yake ganin sa'a na rana, babu wani abu da ya karye, ku duka biyu kuna kallon lokaci guda an nuna shi a agogunan gida daban-daban. Kwaro-kwaro suna shigowa ne idan lamba ta karanta kwanan wata na gida kamar dai UTC ne, ko ta buga lokacin agogon bango ba tare da rikodin bambancin ba. Al'ada mai aminci ita ce ka ajiye kuma ka aika UTC, kuma ka aiwatar da bambancin gida ne kawai a lokacin ƙarshe, lokacin da kake nuna ƙimar ga mutum. Idan ba ka da tabbaci, ka kwatanta da layin UTC a mai canzawar maimakon na gidanka.
Matsalar shekara ta 2038
Yawancin tsofaffin tsarukan sun ajiye lokacin Unix a cikin lamba tsawon bit 32 mai alama (signed 32-bit integer). Wannan fannin yana ƙarewa dakika guda bayan 03:14:07 UTC ranar 19 ga Janairu, 2038, lokacin da na'urar ƙidaya ta wuce iyaka ta koma zuwa lamba korau, mai yiwuwa ta jefar da kwanaki baya zuwa 1901. Iri ɗaya ne da matsalar Y2K. Labari mai daɗi shi ne cewa tsarukan aiki na zamani da harsuna sun ƙaura zuwa alamun lokaci na bit 64, waɗanda ba za su wuce iyaka ba na kusan shekaru biliyan 292, don haka ga sabon lamba wannan wani labari ne na tarihi mai daɗin sani maimakon gaggawa.
Domin ƙarin kayan aiki na burauza, duba kayan aikin mai haɓakawa, kuma idan kana buƙatar aiki da lambobi da kansu, masu ƙididdigewa suna nan da danna guda.
Tambayoyin da ake yawan yi
Menene alamar lokaci ta Unix?
Ita ce yawan sakanni tun daga 00:00:00 UTC ranar 1 ga Janairu, 1970, ba tare da ƙidaya sakanni na leap ba. Wannan lokacin farawa ana kiransa epoch, kuma ƙidayar tana ƙaruwa ne kawai da lokaci.
Me ya sa lambata take canzawa zuwa kwanan wata kusa da 1970?
Tabbas ka rikita sakanni da milisakanni. Lamba mai lambobi goma sakanni ce kuma lamba mai lambobi goma sha uku milisakanni ce. Ciyar da milisakanni cikin fanni na sakanni yana rarraba lokacin da ake gani da kusan dubu, yana kawo ka kusa da epoch.
Shin alamar lokaci ta Unix tana da yankin lokaci?
A'a. Ƙimar koyaushe an manne ta zuwa UTC. Yankin lokaci yana shigowa cikin hoto ne kawai lokacin da ka nuna alamar lokaci a matsayin kwanan wata mai karantuwa, wanda shi ne dalilin da ya sa lamba ɗaya za ta iya nuna lokutan agogon bango daban-daban ga mutane daban-daban.
Ta yaya zan canza kwanan wata koma zuwa alamar lokaci?
Ka bayar da shekara, wata, rana, da lokaci, ka yanke shawara wace yankin lokaci aka bayyana wannan kwanan wata a cikinta, kuma kayan aikin yana rusa shi zuwa sakanni tun daga epoch. Za ka iya yin hanyoyin biyu a wannan shafi nan take a cikin burauzarka.
Menene matsalar shekara ta 2038?
Tsarukan da suke ajiye lokacin Unix a cikin lamba tsawon bit 32 mai alama suna wuce iyaka dakika guda bayan 03:14:07 UTC ranar 19 ga Janairu, 2038. Alamun lokaci na bit 64 na zamani suna guje wa wannan na biliyoyin shekaru, don haka mafi yawan software na yanzu ba a shafa shi.
Shin ana tura bayanaina zuwa wata sabar?
A'a. Canzawa tana gudana gaba ɗaya a cikin burauzarka, don haka duk wata alamar lokaci ko kwanan wata da ka manna yana zama a na'urarka.
