• Welcome to Български Националистически Форумъ.
 
avatar_Hatshepsut

Задава се компютърниятъ „Проблемъ 2038 година“ – Y2K38

Започната отъ Hatshepsut, 28 Дек 2021, 06:26:22

0 Потрѣбители и 1 гостъ преглеждатъ тази тема.

Hatshepsut

Задава се компютърният ,,Проблем 2038 година" – Y2K38

Преди повече от 20 години целият свят се стресна преди началото на 2000-та година. Тогава настъпваше нов век и ново хилядолетие, които символизираха началото на нова ера. Усещанията бяха съвсем необичайни, въпреки че за историята и течението на времето няма никакво значение какви са цифрите върху измислените от човека календари.

Millennium bug

В новините от това време изключително активно се обсъждаше новия феномен, който никога не се е случвал в миналото – проблемът на 2000-та година. В телевизионните програми, в интернет и дори вестниците ни плашеха с предстоящия цифров апокалипсис. Навсякъде се твърдеше, че с настъпването на новото хилядолетие компютрите ще се превърнат едва ли не в тикви. Едновременно с тях, това ще стане и с всичката електроника, която по какъвто и да било начин пресмята и показва времето. Всичко се дължеше на това по какъв начин компютрите записват датите и по-конкретно годината на датите. За тяхното обозначаване се използваха само две цифри – например 97, 98, 99 и накрая 00. А след това? Този начин на записване на датите даваше възможност да се намали големината на записваните данни, а и никой не виждаше смисъл да се използват четири цифри за датата.



За компютрите двете нули съвсем не означават 2000-та година. В този случай за компютъра е все едно дали това е 1900-та или нулевата година. По този начин може да не стане ясно кога са издадени новите лични карти, банките биха объркали всички разплащания, а самолетите биха летели незнайно накъде. Хората се страхуваха, че могат да възникнат подобни и дори по-неприятни ситуации.

За решаването на този проблем, който всички медии твърде подробно описаха още преди да настъпи, се говори, че са изхарчени стотици милиарди долари, като точната сума никой не знае. Хипотетично (сривове все пак имаше) този бъг не би трябвало да доведе до апокалипсис. Тогава редица влиятелни хора казаха, че тези пари съвсем не са изхарчени напразно и че в противен случай светът щеше да престане да съществува. Редица специалисти посочиха, че почти всичката електроника се оказа незасегната от Y2K и разработеното специално програмно осигуряване за решаване на проблема на 2000-та година не е оказало особено влияние на тяхната работа.

Проблемът 2038 година

Оттогава изминаха повече от 20 години, а сега все повече се приближаваме до аналогичен проблем – ,,Проблемът 2038 година" или Y2K38. Той прилича на предишния глобален бъг по това, че отново на компютрите може да не достигат символи за запис на точната дата и изминалото време, което машините пресмятат в секунди. Сега отново се говори, че нещата са изключително сериозни. Дали наистина е така?

В началото на съвременната компютърна ера се използваха 16 битови системи, при които в една клетка памет могат да съхраняват 65536 значения. Но към днешен ден компютрите управляват на практика всички аспекти от нашия живот, докато преди двайсетина години те не бяха толкова интегрирани в ежедневието. По-късно се появиха 32-битови системи, които застанаха стабилно и задълго, само че не завинаги.

Компютърното време отново ще се обърка след като през 2038 година на 19-ти януари настъпи 03:14:08 часа.

Проблемът засяга всички операционни системи и софтуер, които използват 32 битово число Integer, за да представят датата и часа след 00:00:00 UTC на 1 януари 1970 година. Последната дата, която може да бъде представена по този начин е 03:14:07 UTC на 19 януари 2038 година. Да напомним, че повечето UNIX системи съхраняват датите именно по този начин и тази система обикновено се нарича UNIX time. Въпреки това, проблемът ще засегне и други не-UNIX системи и програми, които представят датите по този начин. От друга страна, в Linux винаги се използват 64-битови данни при 64-битовите архитектури, а в най-новите версии на Linux ядрото е осигурена 64-битовата поддръжка на данните и за 32-битовите архитектури, и едва ли ще се наложи прилагането на някакви специални мерки.



Когато говорим за компютърно пресмятане на времето, 32-битовият условно наречен Skynet проблем разполага с 2 147 483 647 секунди и с още толкова, но със знак минус, само че вторите не могат да се използват, понеже ще доведат до грешки в изчисляването на времето. И ето, че всички тези секунди ще свършат през 2038 година, понеже този начин на пресмятане започна да се използва през 1970-та. Тоест 2 147 483 647 е максималното възможно число, което се помества в една 32-битова клетка със знак, без да се използват някакви специфични трикове.

Помните ли 2012 година, когато отвсякъде звучеше трака Gangnam Style на южнокорееца PSY? За две години това изпълнение стана първото видео в YouTube с над 2 милиона гледания. Именно тогава се прояви бъгът, който напомня на всички за ограничените възможности на тогава съществуващите компютърни системи. Когато YouTube се появи и започна работа, на всички се струваше че една 32-битова клетка е повече от достатъчно, за да се използва като брояч на гледанията.

В края на 2014 година се оказа, че разредността на този брояч е недостатъчна. Тогава в началото на месец декември медиите започнаха да публикуват заглавия от типа ,,Хитът Gangnam Style срина YouTube". Всъщност това не беше вярно, но все пак имаше лаг – някакви си 5 милиона гледания. Естествено, специалистите на YouTube предвидиха какво ще стане и започнаха да модернизират своята платформа много по-рано, като започнаха да я прехвърлят към 64-битови типове данни. Върху тази задача специален екип започна да работи още през есента на 2014 година и увеличи броячите на общия брой на гледанията до 9,22 квинтилиона.

Историята с Gangnam Style е съвсем нагледен пример за това, какво точно ни очаква през 2038 година, ако не положим поне минимални усилия. Отдавна има 64-битови процесори и съответния софтуер за тях. Дори Windows XP вече има 64 битов вариант, а през 2011 година по същия път тръгна Apple с нейната десктоп операционна система. Но все още се използват немалко компютърни системи, които не отговарят на тези нови изисквания, а и навярно има немалко потребители, на които се налага да използват древната електроника.

Какво би могло да стане?

GPS

Веднага можем да се досетим за GPS системите, които се базират на точното измерване на времето и транслират тази информация. Вече се появи мит, че сателитите и техните управляващи системи през 2038 година навярно ще спрат да работят нормално и ще повлекат със себе си всичко останало. Да напомним, че времето при GPS системите стартира през 1980 година, като непрекъснато се пресмятат седмиците и секундите. Нещо повече, на всеки 19,7 години, които са равни на 1024 седмици, настъпва събитието GPS week number rollover, когато броенето започва отново: използваното 10-битово значение е достатъчно за запис на информацията само на 1023 седмици. Следващият рестарт се пада именно през 2038 година, като предишният бе през 2019-та.



При съвременните GPS системи бяха направени промени, след които започна използването на 13 бита за запис на седмицата. Това дава възможност за пресмятане на седмиците до 2137 година. Що се отнася до крайното оборудване, тук всичко стои на раменете на съвременните обновявания на софтуера, а това пряко зависи от неговите производители и доставчици. Преди време заради твърде закъсняла реакция пострадаха някои летища, научно оборудване, климатични системи, битови GPS навигатори и дори старите  iPhone и iPad. Тоест, основният проблем се дължи на неправилната обработка на данните за време в крайните устройства.

Компютрите, смартфоните, базите данни и софтуерът

Днес е трудно да бъде намерено ново компютърно устройство с 32-битова платформа. Всички вече преминават към 64 бита, не остават настрани и мобилните устройства.

Но проблемът не е толкова в хардуера и операционните системи, понеже има 32-битови ОС, които могат да използват 64-битови тип данни за запис на времето, има и беззнакови 32-битови ОС. Основният проблем е в приложния софтуер, при вградените системи, комуникационните протоколи (например NTP), базите данни, файловите системи, драйверите и още много други. На един хипотетичен 64-битов компютър могат да бъдат стартирани 32-битови приложения, които да бъдат тотално засегнати от проблема 2038 година. Има и 64-битови програми, които не са написани и не са компилирани правилно.

В наши дни стана особено популярна концепцията ,,Интернет на нещата", която може да се окаже едно от най-слабите звена в тази верига, ако разработчиците не предвидят различните нюанси. Съвсем не е изключено този проблем да бъде частично или напълно игнориран, поради желанието да се икономиса и да се намалят разходите за разработването на софтуер и за нов хардуер. Така че през 2038 година проблеми ще има, но да се надяваме, че няма да бъдат особено сериозни.

За справянето с този проблем може да се използва адаптация на ,,несъвместимия" код. Това важи например при базите данни, в които е възможно записването на датите в подходящия формат. Тук ще е необходима работата на програмистите и повече дисково пространство – четворно повече за запис на датите. В миналото това бе едно много сериозно ограничение, но сега тези обеми от данни не са никакъв проблем.

Софтуерът може да бъде прекомпилиран, стига да го има сорс-кода. В тази светлина открит остава въпросът за вътрешната съвместимост. Преходът към новите подходящи решения изисква време. Нека да си представим голяма компания с над 10 хиляди служители, която стартира нов пощенски сървър с нов клиент. В този случай всичко трябва да се прехвърли, датите да се преформатират и на хората да се обясни как да работят с всичко това. Да не забравяме, че има големи охранителни системи с десетки охранителни камери, които съхраняват логове в размер на многобройни гигабайти.

Компютърният проблем 2038 година е съвсем реален, ако нищо не бъде направено и специалистите бездействат. Най-голямо опасение при някои експерти предизвикват именно вградените системи. Това са автомобилните компютри, климатиците, охранителните системи, рутерите, също така и съвременните хладилници, електрониката на които трябва да работи през цялото време на техния технологичен живот.

Голяма част от професионалната общност счита предишния Y2K бъг за по-сериозен, отколкото предстоящия Y2K38, главно защото преди двадесетина години решението съвсем не бе толкова очевидно. В този ред на мисли можем да кажем, че след 17 години компютрите ще бъдат много по-разпространени, отколкото преди 21 години и те ще бъдат много повече, което означава и повече засегната техника. Но едва ли можем да очакваме въстание на машините.

https://www.kaldata.com/

Powered by EzPortal