от jet(21-02-2015)

Всички компютърни системи разчитат много на часовници за да изпълняват функциите си. Появява се проблем, когато операционната система на компютъра не знае как да брои след определено число. В случая с Линукс и то с 32бит. версии годината е 2038 по аналогия с Проблема 2000 “Millennium Bug” през 2000г. когато компютрите не можеха да прехвърлят от 1999 към 2000 поради кодирането на годината само с две цифри - така ставаше преход от 1999 към 1900.

При 32-битовите Линукс системи, тъй като 32 битовите ядра съхраняват часът и датата като 32битово число със знак, ще се получи преход от 3:13 на 19 Ян. 2038 към 0:00 1 Ян. 1970. поради препълване на 32 битовия брояч.

Ето една анимация на проблема:

Сигурно си мислите, че до 2038г. няма да са останали много работещи 32 битови системи, но дори и днес е пълно с вградени системи които използват 8 и 16 битови процесори. Така че ще има доста засегнати системи.

Вградените системи се използват в много критични ситуации и веднъж монтирани се подменят много рядко или никога.

Няма универсално решение на проблема, но добрата новина е, че се работи по проблема и има още 23 години.

Проблемът в Линукс ядрото е решен, но остава останалия софтуер - например файлови системи, SQL бази данни, както и многото приложен софтуер, а и все още продължават да се произвеждат вградени системи без да се отчита проблема.

Изт.



<< ARM атакува Intel на сървърния пазар | pf-kernel с версия за Linux 3.19 >>