Viti 2020 është një moment historik për Unix: në fillim të vitit, sistemi origjinal i operativit bëri 50 vjet. Koha Unix, e njohur edhe si "data e epokës", është numri i sekondave që kanë kaluar nga 1 janari 1970. Por çfarë shqetëson zhvilluesit e bërthamës në lidhje me përvjetorin e gjysmë shekulli të Unix-it?

Megjithëse disa nga zhvillimet e hershme të Unix-i parashikojnë fillimin zyrtar të "epokës" së tij, 1 janari 1970 mbetet pika zero në kohë për POSIX. Prandaj, me fillimin e 1 janarit 2020, platforma zyrtarisht bëri 50 vjet.
Koha Unix kundrejt kohës njerëzore
Nga pikëpamja e kohës njerëzore, 50 vjet është një periudhë e madhe. Nga pikëpamja e kohës Unix, nuk ka asgjë të veçantë në 50 vjet, dhe 43 vjet do ishin gjithashtu të rëndësishme. Sistemet Unix (duke përfshirë Linux) ruajnë vlerat e datës dhe orës si numrin e sekondave që kanë kaluar nga 1970-01-01 00:00:00 UTC, me regjistrim në 32 bits. Për të përcaktuar sa sekonda kanë kaluar nga ajo kohë dhe, për rrjedhojë, 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 në formën e numrit të sekondave që nga fillimi i 1970-01-01.

Cila është data maksimale që mund të ruajnë sistemet Unix?
Për të kuptuar sa kohë mund të përmbajnë sistemet Unix, duhet të vlerësoni kapacitetin e fushës 32-bit. Kjo mund të llogaritet kështu:
$ echo '2^32' | bc
4294967296
Megjithatë, duke pasur parasysh se Unix parashikon ruajtjen e shifrave negative, një bit është rezervuar për shenjën, duke e reduktuar, kështu, vlerën e kohës në:
$ echo '2^31' | bc
2147483648
Dhe dhe pasi numĂ«rimi Unix fillon nga 0, kjo do tĂ« thotĂ« se ne kemi 2 147 483 648 vlera, por mĂ« e madhja Ă«shtĂ« 2 147 483 647 â vlera e datĂ«s dhe orĂ«s Unix nuk mund tĂ« kalojĂ« kĂ«tĂ« numĂ«r. Ashtu siç odometri nĂ« njĂ« makinĂ« nuk mund tĂ« tregojĂ« mĂ« shumĂ« se 999 999 kilometra â shtoni 1, dhe vlera do tĂ« kthehet nĂ« zero.
Sa zgjat një vit në sekonda?
Numri i sekondave në një vit mund të llogaritet kështu:
$ expr 24 * 60 * 60 * 365
31536000
Në një vit të prishur, shtohet një ditë më shumë:
$ 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 do të jetë koha 1577836800. Llogaritja është pak më e komplikuar, sepse duhet të merret në konsideratë vitet e prishura. Që nga fillimi i epokës Unix, kanë qenë 12 të tillë, duke filluar nga viti 1972 deri në vitin 2016. Kështu, kanë kaluar 38 vite normale.
Këtu është si duket ekipi expr për të llogaritur sekondat e kaluara gjatë 50 viteve:
$ expr 24 * 60 * 60 * 365 * 38 + 24 * 60 * 60 * 366 * 12
1577836800
Ose kështu, duke marrë parasysh llogaritjet e mëparshme:
$ expr 31536000 * 38 + 31622400 * 12
1577836800
Ky mënyrë e regjistrimit të kohës e bëri sistemet Unix të paprekshme ndaj problemit Y2K, për të cilin njerëzit në fund të vitit 1999 ishin të shqetësuar se kalimi në vitin 2000 mund të dëmtonte sistemet kompjuterike. Vështirësitë ishin shumë më pak se sa pritej. Faktikisht, vetëm aplikacionet që regjistronin vitet në format dyshifror u përballën me problematikën e shfaqjes së datave të reja. Shumë zhvillues bënë punë shtesë për të garantuar që aplikacionet e tyre nuk do të preken nga problemi Y2K.
Kur do Unix të hasë probleme?
Vështirësi të ngjashme pritet të përballen sistemet Unix jo përpara vitit 2038, kur datat e ruajtura në formatin e përshkruar më parë do të tejkalojnë hapësirën 32-bit. Ka ende 18 vjet, por zhvilluesit e kernelit tashmë po punojnë për të shmangur dështimet e ardhshme.
Problemi i vitit 2038 shpesh përmendet si problemi Y2K38. Nëse nuk do të zgjidhet para martës 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 besojnë se kjo do të jetë shumë më e komplikuar sesa duket.
Në çdo rast, është ende herët për të panikuar. Ajo që është me të vërtetë e rëndësishme sot është përvjetori 50-vjeçar i sistemeve Unix, të njohura si një nga sistemet operative më të rëndësishme në histori.
Burimi: 3dnews.ru
