Viti 2020 shënon një moment të rëndësishëm për Unix: në fillim të vitit, sistemi origjinal operativ mbushi 50 vjet. Koha Unix, e njohur gjithashtu si «data e epokës», është numri i sekondave që kanë kaluar që nga 1 janari 1970. Por çfarë shqetësimesh kanë zhvilluesit e kerneli lidhur me jubileun gjysmë shekullor të Unix?

Megjithëse disa nga zhvillimet e hershme të Unix i paraprijnë fillimit zyrtar të «epokës» së tij, 1 janari 1970 mbetet pika zero në kohë për POSIX. Prandaj, duke filluar nga 1 janari 2020, platforma zyrtarisht mbushi 50 vjet të plotë.
Koha Unix përballë kohës njerëzore
Nga këndvështrimi i kohës njerëzore, 50 vjet është një periudhë e gjatë. Nga ana tjetër, sipas kohës Unix, nuk ka asgjë të veçantë në 50 vjet, dhe 43 vjet do të ishin po aq të rëndësishëm. Sistemet Unix (përfshirë Linux) ruajnë vlerat e datës dhe orës si numër sekondash që kanë kaluar që nga 1970-01-01 00:00:00 UTC, me një regjistrim 32-bit. Për të përcaktuar sa sekonda kanë kaluar që nga ajo kohë dhe, si pasojë, vlera aktuale e kohës Unix, mund të ekzekutoni komandën:
$ date +%s
1576883876
Argumenti %s pas komandës date përcakton shfaqjen e datës dhe orës aktuale si një numër sekondash që nga fillimi i 1970-01-01.

Cila është data maksimale që mund të ruajë një sistem Unix? Unix?
Për të kuptuar sa kohë mund të ruajë një sistem Unix, duhet vlerësuar kapaciteti i fushës 32-bit. Kjo mund të llogaritet kështu:
$ echo â2^32â | bc
4294967296
Megjithatë, duke qenë se Unix parashikon ruajtjen e numrave negativë, një bit rezervuar për shenjë, kështu që vlera e kohës zvogëlohet në:
$ echo â2^31â | bc
2147483648
Dhe duke qenĂ« se numĂ«rimi Unix fillon nga 0, kjo do tĂ« thotĂ« se kemi 2 147 483 648 vlera, por vlera mĂ« e madhe Ă«shtĂ« 2 147 483 647 â vlera e datĂ«s dhe kohĂ«s Unix nuk mund tĂ« kalojĂ« kĂ«tĂ« numĂ«r. Ashtu si njĂ« odometĂ«r nĂ« njĂ« mjet nuk mund tĂ« tregojĂ« mĂ« shumĂ« se 999 999 kilometra â shtoni 1, dhe vlera do tĂ« resetojĂ«.
Sa zgjat një vit në sekonda?
Numri i sekondave në një vit mund të llogaritet në këtë mënyrë:
$ expr 24 * 60 * 60 * 365
31536000
Në një vit të shenjtë shtohet një ditë tjetër:
$ expr 24 * 60 * 60 * 366
31622400

Si e shfaq Unix ditëlindjen e tij të 50-të?
Më 1 janar 2020 në orën 12:00 të mëngjesit do të jetë koha 1577836800. Llogaritja paksa komplikohet, sepse duhet marrë parasysh vitet e shenjta. Që nga fillimi i epokës Unix ka pasur 12 të tillë, duke filluar nga viti 1972 deri në vitin 2016. Pra, ka pasur 38 vite të zakonshme.
Kjo është komanda expr për të llogaritur sekondat për 50 vitet e kaluara:
$ expr 24 * 60 * 60 * 365 * 38 + 24 * 60 * 60 * 366 * 12
1577836800
Ose ndryshe, duke marrë parasysh llogaritjet e bëra më parë:
$ expr 31536000 * 38 + 31622400 * 12
1577836800
Ky mënyrë e regjistrimit të kohës e bëri sistemin Unix të papërshkueshëm nga problemi Y2K që shqetësonte njerëzit në fund të vitit 1999, të cilët ishin të shqetësuar se kalimi në vitin 2000 mund të dëmtonte sistemet kompjuterike. Sfidat ishin shumë më pak se sa pritej. Në të vërtetë, vetëm aplikacionet që regjistronin vitet në format dyshifror u përballën me zerozimin e datave. Shumë zhvillues bënë punë shtesë për të siguruar që aplikacionet e tyre të mos preken nga problemi Y2K.
Kur është koha Kur do të përballet Unix me probleme?
Vështirësi të ngjashme i presin sistemet Unix jo para vitit 2038, kur datat e ruajtura në formatin e përmendur më sipër do të kalojnë hapësirën 32-bit. Ka ende 18 vjet, por zhvilluesit e bërthamës tashmë po punojnë për të shmangur dështimet e ardhshme.
Problemi i vitit 2038 ndonjëherë përmendet si problemi Y2K38. Nëse nuk zgjidhet deri të martën më 19 janar 2038, pas kësaj date sistemet mund të mendojnë se ka ardhur viti 1901. Një nga mënyrat për të zgjidhur këtë problem është kalimi në një përfaqësim 64-bit të informacionit mbi datën dhe kohën. Disa mendojnë se kjo do të jetë shumë më e ndërlikuar se sa mund të duket.
Në çdo rast, për të panikuar është ende herët. Ajo që është vërtet e rëndësishme sot është përvjetori i 50-të i sistemeve Unix, të cilat njihen si një nga sistemet operuese më të rëndësishme në histori.
Burimi: 3dnews.ru
