Bodo računalniki 19. januarja 2038 prenehali delovati?

Leto 2038 bi lahko povzročilo, da bi večina sodobnih računalnikov prenehala delovati, če se na to ne pripravimo. Razlog za to ni računalniški virus ali razpadanje strojne opreme, ampak način, kako računalniki beležijo čas.

Skoraj vsak računalnik beleži čas z 32-bitnim procesorjem. Začetek štetja časa 00:00:00 se prične na 1. januar 1970. Ta čas je bil postavljen kot standard za sodobne računalniške sisteme, vendar obstaja velika težava. 19. januarja 2038 ob 03:14:07 bo v 32-bitnem sistemu, ki shranjuje podatke o času v številnih računalnikih, zmanjkalo položajev. Procesor lahko namreč zabeleži 2^32 oziroma 4.294.967.295 različnih vrednosti znotraj 4 GB pomnilnika. Ker je polovica teh vrednosti namenjena shranjevanju drugih podatkov, lahko sistem zabeleži 2.147.483.647 sekund po 01. 01. 1970. Ko bo števil zmanjkalo, bo računalnik lahko spremenil samo še predznak in tako bo zapisan datum 13. december 1901.

Sprememba datumov bo zagotovo vplivala na uporabo programov z licencami. Programerji imajo že zdaj težave pri uporabi datumov po 19. 01. 2038. Enostavna rešitev za ta problem ne obstaja. Vgrajeni sistemi v avtomobilih in drugih napravah so načrtovani tako, da lahko delujejo skozi celoten življenjski cikel brez posodobitve programske opreme. Določene sisteme se lahko posodobi, pri drugih pa to ni mogoče in bo do leta 2038 potrebno najti drugo rešitev. Ena možnost je sprememba shranjevanja podatkov v 32-bitnim sistemu. To bi teoretično omogočilo shranjevanje datumov vse do leta 2106, vendar bi sistemi, ki so uporabljali datume pred letom 1970 naleteli na težave. Če bi povečali shranjevanje podatkov na 64-bitni sistem, bi imeli težave pri združljivosti s starejšimi sistemi.

Čeprav univerzalne rešitve ni in tiste najbolj razširjene še vedno vsebujejo hrošče (angl. “bugs”), obstajajo pozitivne novice. Večina novih elektronskih naprav uporablja 64-bitni sistem. Ta pri beleženju časa nima težav in ga lahko brez napak beleži skoraj naslednjih 300 milijard let. Najverjetneje bodo programerji kmalu imeli rešili problem in rešitev bo zagotovo tu pred letom 2038.

 

Povzeto po: InterestingEngineering

J. R: