Соли 2020 барои Unix соли муҳим аст: дар ибтидои сол системаи оператсионии аслӣ 50-сола шуд. Вақтҳои Unix, ки бо номи "санаҳои давра" низ маълуманд, шумораи сонияҳое мебошанд, ки аз 1 январи соли 1970 гузаштаанд. Аммо дар робита ба солгарди нимасраи Юникс таҳиягарони ядроро чӣ ба ташвиш меорад?

Гарчанде ки баъзе пешрафтҳои аввали Unix аз оғози расмии "давраи он" пеш омадаанд, 1 январи соли 1970 дар вақти POSIX нуқтаи сифр боқӣ мемонад. Аз ин рӯ, бо оғози 1 январи соли 2020, платформа расман 50-сола шуд.
Вақт Unix бар зидди замони инсон
Аз нигоҳи вақти инсонӣ, 50 сол муддати тӯлонӣ аст. Аз нигоҳи вақти Unix, 50 сол чизи махсус нест ва 43 сол аҳамияти камтар нахоҳад дошт. Системаҳои Unix (аз ҷумла Linux) арзишҳои сана ва вақтро ҳамчун шумораи сонияҳое, ки аз 1970-01-01 00:00:00 UTC гузаштаанд, дар 32 бит нигоҳ медорад. Барои муайян кардани он, ки аз он вақт инҷониб чанд сония гузаштааст ва аз ин рӯ арзиши ҷории вақти Unix, шумо метавонед фармонро иҷро кунед:
$date +%s
1576883876
Аргументи %s пас аз фармони сана сана ва вақти ҷорӣро ҳамчун шумораи сонияҳо аз 1970-01-01 нишон медиҳад.

Ҳадди ниҳоии системаҳои санаӣ чӣ қадар аст? Unix?
Барои фаҳмидани он ки системаи Unix чӣ қадар вақт дошта метавонад, шумо бояд қобилияти майдони 32-битро ҳисоб кунед. Онро чунин ҳисоб кардан мумкин аст:
$ echo '2^32' | аз милод
4294967296
Аммо, азбаски Unix инчунин рақамҳои манфиро нигоҳ медорад, як бит барои аломат ҷудо карда мешавад, бинобар ин, арзиши вақтро то:
$ echo '2^31' | аз милод
2147483648
Ва азбаски рақамгузории Unix аз 0 оғоз мешавад, ин маънои онро дорад, ки мо 2 арзиш дорем, аммо бузургтаринаш 147 аст - Қиматҳои санаи Unix наметавонад аз ин рақам зиёд бошад. Ҳамон тавре ки одометр дар мошин наметавонад зиёда аз 483 километрро нишон диҳад - 648 илова кунед ва арзиш ба сифр мерасад.
Як сол дар сонияҳо чанд вақт аст?
Шумораи сонияҳоро дар як сол ба таври зерин ҳисоб кардан мумкин аст:
$expr 24 * 60 * 60 * 365
31536000
Дар соли кабиса як рӯзи дигар илова карда мешавад:
$expr 24 * 60 * 60 * 366
31622400

Чӣ тавр Unix 50-солагии худро нишон медиҳад?
1 январи соли 2020 соати 12:00 ваќт 1577836800 мешавад. Ҳисоб кардан то андозае мушкилтар аст, зеро солҳои кабиса бояд ба инобат гирифта шавад. Аз оғози давраи Unix, 12 чунин сол вуҷуд дошт, ки аз соли 1972 оғоз шуда, дар соли 2016 ба охир мерасад. Яъне 38 соли оддй гузашт.
Ин аст он чизе ки фармони expr барои ҳисоб кардани сонияҳо дар 50 соли охир ба назар мерасад:
$expr 24 * 60 * 60 * 365 * 38 + 24 * 60 * 60 * 366 * 12
1577836800
Ё ин ки бо назардошти ҳисобҳои қаблӣ:
$expr 31536000 * 38 + 31622400 * 12
1577836800
Ин тарзи сабти вақт системаҳои Unix-ро аз мушкилоти Y2K эмин кард, ки одамон дар охири соли 1999 нигарон буданд, ки гузариши соли 2000 ба системаҳои компютерӣ осеб мерасонад. Мушкилот назар ба чашмдошт хеле кам шуд. Дарвоқеъ, танҳо барномаҳое, ки солҳоро дар формати ду-рақама сабт мекунанд, санаҳои аз нав барқароркунии худро аз сар мегузаронанд. Бисёре аз таҳиягарон кори иловагӣ анҷом доданд, то боварӣ ҳосил кунанд, ки барномаҳои онҳо аз масъалаи Y2K таъсир нарасонанд.
Кай вакт аст Оё Unix мушкилот дорад?
Мушкилоти ба ин монанд системаҳои Unix-ро на пештар аз соли 2038 интизор мешаванд, вақте ки санаҳои дар формати дар боло тавсифшуда нигоҳ дошташуда аз фазои 32-бит зиёд хоҳанд шуд. То ҳол 18 сол боқӣ мондааст, аммо таҳиягарони ядро аллакай барои пешгирӣ кардани нокомиҳои оянда кор мекунанд.
Мушкилоти соли 2038 баъзан ҳамчун мушкилоти Y2K38 номида мешавад. Агар он то рӯзи сешанбе, 19 январи соли 2038 ҳал нашавад, системаҳо пас аз он сана метавонанд фикр кунанд, ки он соли 1901 аст. Яке аз роҳҳои ҳалли ин мушкилот гузаштан ба намоиши 64-битии иттилооти сана ва вақт мебошад. Баъзеҳо боварӣ доранд, ки ин назар ба он ки ба назар мерасад, хеле душвортар хоҳад буд.
Дар ҳар сурат, воҳима кардан ҳанӯз барвақт аст. Он чизе, ки имрӯз воқеан муҳим аст, 50-солагии системаҳои Unix мебошад, ки яке аз муҳимтарин системаҳои оператсионӣ дар таърих эътироф шудааст.
Манбаъ: 3dnews.ru
