Y2038-problemet

Denne Linux-versjonen var i utgangspunktet dødsdømt, men får nå «evig» liv

Løsning til Y2038-problemet er utgitt.

32 bits-utgaven av Linux-kjernen blir nå oppdatert til å støtte 64 bits «Unix time». Det gir kraftig forlenget levetid. Illustrasjonen viser Linux-maskoten Tux over et eldre kart over Linux-kjernen.
32 bits-utgaven av Linux-kjernen blir nå oppdatert til å støtte 64 bits «Unix time». Det gir kraftig forlenget levetid. Illustrasjonen viser Linux-maskoten Tux over et eldre kart over Linux-kjernen. (Illustrasjon: Linux-kart: Contantine Shulyupin. Tux: Larry Ewing. Montasje: digi.no)

Løsning til Y2038-problemet er utgitt.

Joda, tittelen er nok litt overdrevet på både den ene og den andre måten, men saken handler om et stort problem for en utbredt versjon av Linux og for en del andre Unix-lignende eller POSIX-kompatible systemer, nemlig at de egentlig er laget for å dø klokka 03.14.08 UTC/GMT den 19. januar 2038. 

Som digi.no også omtalte tidlig i januar (for abonnenter), er disse systemene basert på en klokke – Unix time – som ved hjelp av 32 bit teller antallet sekunder som har gått siden klokka 00:00:00 1. januar 1970. Den 19. januar 2038 er 31 av de 32 bitene brukt opp. Da skifter den mest signifikante biten verdi fra 0 til 1. Dette er en fortegnsbit, noe som betyr at verdien av tallet blir negativ, og i blant annet programmeringsspråket C innebærer dette udefinert atferd. 

Over til 64 bit

Nå har IT-verdenen stort sett flyttet seg over til systemer med 64 bits minneadresser. Det gjør det enkelt å lagre et mye større tall for antallet sekunder som har gått siden 1.1.1970.

Les også

64 bit-støtte gjelder også mange Linux-baserte systemer, men langt fra alle. I dag er det særlig integrerte systemer og IoT-enheter som benytter 32 bits Linux. Derfor er Y2038-problemet, som det kalles, fortsatt et reelt problem.

I slutten av januar ble løsningen lansert, noe blant annet ZDNet har omtalt. Det dreier seg om innføringen av en 64 bits verdi for Unix time, time_t, i 32 bits Linux. Løsningen vil bli en del av Linux 5.6, men skal også gjøres tilgjengelig i Linux 5.4-serien.

Dette vil dermed være de første versjonene av 32 bits Linux som kan brukes også etter 2038.

Fortsatt jobb å gjøre

Selv om den nevnte løsningen fjerner den grunnleggende delen av problemet, så er ikke jobben over. For utvikleren av løsningen, Arnd Bergmann, skriver at alle «Epoch»-problemer som finnes i 64 bits systemer, også berører 32 bits systemer. Spesielt nevner han tidsstempelet til flere ulike filsystemer, hvor en rekke er lagret som 31 bit + fortegn. Dette må fortsatt løses. 

I tillegg må en rekke applikasjoner og hele «brukerområdet» i 32 bits Linux kompileres på nytt med støtte for 64 bits tidsgjengivelse.

Da vil i alle fall klokka kunne brukes fra til den 4. desember år 29.227.702.659. Helt evig liv, er det jo ikke. Men nærme nok.

Les også

Kommentarer (0)

Kommentarer (0)
Til toppen