Unix-ին 50 տարի է: ինչ նշանակում է դա?

2020 թվականը կարևոր է Unix-ի համար: տարվա սկզբում սկզբնական օպերացիոն համակարգը 50 տարեկան է եղել: Unix-ի ժամանակը, որը հայտնի է որպես «դարաշրջանի նշված ժամանակ», դա այն.seconds-ի քանակն է, որ անցել է 1970 թվականի հունվարի 1-ից: Սակայն ինչն է անհանգստացնում միջուկի մշակողներին Unix-ի կես դարական տարեդարձի կապակցությամբ:

Unix-ին 50 տարի է: ինչ նշանակում է դա?

Չնայած որ Unix-ի մի շարք վաղ արդյունքներ նախորդում են դրա «դարաշրջանի» պաշտոնական մեկնարկին, 1970 թվականի հունվարի 1-ը շարունակում է մնալ POSIX-ի ժամանակի զրոյական կետը: Այդ պատճառով 2020 թվականի հունվարի 1-ից սկսած, պաշտոնապես գործող հարթակը հենց 50 տարեկան է:

Ժամ Unix-ը մարդկանց ժամանակի նկատմամբ

Մարդկանց ժամանակի տեսանկյունից, 50 տարի՝ մեծ ժամանակահատված է: Unix-ի ժամանակի համար 50 տարին ոչինչ հատուկ չէ, իսկ 43 տարին այնքան էլ նշանակալի չեն լինի: Unix համակարգերը (այսկը Linux) պահում են ամսաթվի և ժամանակի արժեքները որպես այն.seconds-ի քանակը, որ անցել է 1970-01-01 00:00:00 UTC-ից, 32 բիթի գրանցմամբ: Որպեսզի որոշվի, թե որքան.seconds է անցել այդ ժամանակից և, հետևաբար, գործող Unix ժամանակի արժեքը, կարելի է կատարել հրամանը:

$ date +%s

1576883876

date հրամանի հետո %s արգումը սահմանում է ներկայիս ամսաթվի և ժամանակի ցուցադրությունը 1970-01-01-ի սկզբից անցած.seconds-ի քանակով:

Unix-ին 50 տարի է: ինչ նշանակում է դա?

Unix համակարգերն ինչ առավելագույն ամսաթվեր կարող են պահել: Unix?

Unix համակարգի կարողությունը հասկանալու համար անհրաժեշտ է գնահատել 32 բիթի դաշտի հզորությունը: Դա կարելի է հաշվարկել այս կերպ:

$ echo ‘2^32’ | bc

4294967296

Բայց քանի որ Unix-ը նախատեսում է պահել բացասական թվեր, մեկ բիթ է ապահովվում նշանի համար, այնպես որ, ժամանակի արժեքը նվազում է:

$ echo ‘2^31’ | bc

2147483648

Եվ քանի որ Unix-ում հաշվարկումը սկսվում է 0-ից, դա նշանակում է, որ մեզ մնացել են 2,147,483,648 արժեքներ, բայց ամենամեծը 2,147,483,647 է՝ Unix-ի ամսաթվի և ժամանակի արժեքները չեն կարող գերազանցել այդ թիվը: ինչպես ավտոմեքենայի ոդոմետրը չի կարող ցույց տալ ավելի քան 999,999 կիլոմետր՝ ավելացրեք 1 և արժեքը 0-ին փոխակերպվում է:

Ինչպիսի երկարություն ունի տարին.seconds-ով:

Տարին.seconds-ով կարելի է հաշվարկել այս կերպ:

$ expr 24 * 60 * 60 * 365

31536000

Յուրաքանչյուր Leap տարվա մեկ այլ օր է ավելացվում:

$ expr 24 * 60 * 60 * 366

31622400

Unix-ին 50 տարի է: ինչ նշանակում է դա?

Ինչպես Unix-ը տեսնում է իր 50-րդ տարեդարձը:

2020 թվականի հունվարի 1-ին, ժամը 12:00-ին կլինի ժամանակ 1577836800: Հաշվարկը մի փոքր դժվարանում է, քանի որ պետք է հաշվի առնել Leap տարիները: Unix-ի դարաշրջանի սկզբից եղել է 12 Leap տարի, սահմանապես 1972-ից մինչ 2016-ը: Դա նշանակում է, որ սովորական տարիներ եղել են 38:

Սա է expr հրամանը 50 տարվա ընթացքում.seconds-ի հաշվարկման համար:

$ 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 տարի, բայց kernel մշակողները արդեն աշխատում են, որպեսզի խուսափեն առաջիկա անկումներից։

2038 թվականի խնդիրը sometimes կոչվում է Y2K38։ Եթե սա չլուծվի երեքշաբթի, հունվարի 19-ին, 2038 թվականին, ապա այս ամսաթվից հետո համակարգերը կարող են մտածել, որ եկել է 1901 թվականը։ Այս խնդիրը լուծելու համար մի եղանակ կլինի անցնել 64-բիթանոց ամսաթվերի և ժամանակի ներկայացմանը։ Որոշները կարծում են, որ սա էլ շատ ավելի բարդ կլինի, քան երևում է։

Իհարկե, դեռ վաղ է վախենալու։ Իսկ այսօր իսկապես կարևորն է Unix համակարգերի 50-ամյա հոբելյանը, որոնք ճանաչվում են պատմության ամենակարևոր օպերացիոն համակարգերից մեկը։



Ընտանիք: 3dnews.ru
Գնել հուսալի հյուրընկալում DDoS պաշտպանությամբ, VPS VDS սերվերներով 🔥 Գնել հուսալի հյուրընկալում DDoS պաշտպանությամբ, VPS VDS սերվերներով | ProHoster