Moderne computere kan stoppe med at fungere den 19. januar 2038

Året 2038 kan få de fleste moderne computere til at stoppe med at fungere, hvis vi ikke forbereder os på det. Det skyldes ikke en massiv virus eller nedbrydende hardware, det har alt at gøre med, hvordan computere holder styr på tiden.

Næsten alle computere holder tiden ved hjælp af en 32-bit processor og tæller fremad fra 00:00:00 UTC den 1. januar 1970, der omtales som “epoken”. Dette tidspunkt blev fastsat som standard for moderne computersystemer, men der er et stort problem. Syv sekunder efter kl. 3:14 UTC den 19. januar 2038 vil det 32-bit-system, som gemmer disse tidsdata i mange computere, løbe tør for positioner.

Problemet ligner Y2K-problemet, hvor en 2-cifret værdi ikke længere kunne bruges til at kode år 2000 eller senere, men er anderledes, idet denne 32-bit-fejl er relateret til Unix-lignende systemer og Unix-tidsformatet.

Disse ligheder med Y2K-fejlen har i vid udstrækning ført til, at 2038-problemet er blevet kendt som Unix Millennium Bug.

The Unix Millennium Bug

Processorer, der kører 32-bit software, kan håndtere 232 forskellige værdier eller 4.294.967.295 forskellige tal inden for 4 GB hukommelse. Disse systemer lagrer datoer og tidspunkter i 32-bit stykker. I virkeligheden halveres dette store antal forskellige værdier til tidsregistrering og andre datalagringsapplikationer. Det efterlader 2.147.483.647 positive værdier, som data kan lagres i.

Det betyder, at det sidste tidspunkt, der kan repræsenteres i Unix 32-bit tidskoden på 32-bit, er 231-1 eller 2.147.483.647 sekunder efter 1. januar 1970. Tider efter dette punkt vil vende tilbage og blive gemt som negative tal. Dette skyldes, at lagringssystemet løber tør for hele tal til at modulere, så der kun er tegn tilbage at ændre. Computere vil derefter fortolke dette som den 13. december i 1901 og fremefter i stedet for den faktiske dato.

Dette lyder måske ikke som noget særligt, men tænk på alle de måder, vi bruger software på. Hvis du har licenser, der er tidsstemplet, kan du pludselig miste adgangen til vigtige arbejdsdokumenter, finansielle oplysninger og meget mere.

Problemer vil ikke bare begynde at opstå i 2038, enhver software, der anvender fremtidige datoer, skal snart rettes. Programmer, der arbejder med datoer 20 år ude i fremtiden, som f.eks. investeringsfonde og avancerede planlægningsprogrammer, skulle rettes senest i 2018.

Alt dette lyder måske som et simpelt fix, hvor man bare ændrer slutdatoen for lagringsmetoden, men så simpelt er det ikke. Computeringeniører bag spil og apps, der har ventetider, har allerede problemer med at kode datoer efter den 19. januar 2038. Fordi lagringsmetoden er 32-bit Unix, er det umuligt for disse tredjepartsprogrammører at kode datoer efter dette tidspunkt.

RELATERET: 12 ÆLDSTE WEBSIDER FRA 1980’ERNE OG 90’ERNE ER STADIG ONLINE I DAG

Men hvad så, spørger du måske. Datoerne vil blive ændret, programmørerne forventer allerede disse problemer, og eventuelle problemer vil ikke skabe panik, de vil bare blive løst hurtigt. Nå, men det er ikke helt sandt.

Transportsystemer, herunder flyudstyr og moderne biler, bruger indlejret software, som ofte forbliver uberørt. Næsten alt i moderne biler styres af deres ECU eller onboard-computer, som bruger Unix-tidsregistrering til at spore datoer og tidspunkter. Det betyder, at denne fejl potentielt kan afbryde ABS bremsesystemer, elektroniske stabilitetskontroller, traktionskontrol og GPS-systemer; de kan alle blive væsentligt påvirket.

Alle disse systemer vil ikke kræve adgang til datoer for at køre, men nogle vil, og det er svært at vide, hvilke der blev programmeret med datoafhængig kode.

Sådan, hvad er løsningen? Der er ikke en nem en.

Embedded systemer som dem i biler og apparater er designet til at holde gennem enhedens livscyklus uden en softwareopdatering. Tilsluttet elektronik kan hurtigt rettes med en softwareopdatering, når tiden er inde, men det er de indlejrede systemer, der sandsynligvis vil skabe størst ravage i 2038, da de fleste ikke vil blive opdateret.

En mulighed er at ændre datalagringssystemet for 32-bit heltal til et ikke-fortegnet 32-bit heltal. Dette ville teoretisk set give mulighed for datalagring helt frem til 2106, men ethvert system, der brugte en dato før 1970, ville få problemer med at få adgang til disse data.

Hvis datalagringen øges til 64-bit, ville vi løbe ind i problemer med kompatibilitetslagring mellem ældre systemer, der kun bruger 32-bit datalagring.

Der er ingen nuværende universalløsning på problemet, og selv de mest almindeligt accepterede rettelser har stadig fejl i visse anvendelsesområder. Der er dog positive nyheder til sidst.

Det meste nye elektroniske udstyr er designet til at bruge den nyere 64-bit datalagringsmetode. Et så stort datointegritet ville strække sig 20 gange længere end universets anslåede nuværende alder, ca. 292 milliarder år kl. 15:30:08 UTC søndag den 4. december 292.277.026.596. Så din iPhone er måske bare i sikkerhed indtil da.

Kilde: Heldigvis er dette problem velkendt og er blevet grundigt undersøgt, hvilket betyder, at computeringeniører sandsynligvis vil løse problemerne, i hvert fald med software, der stadig opdateres og vedligeholdes. Men hvad angår den nydelige Prius fra 1997, der står i din garage i 2038? Du vil måske ikke kunne køre i den efter kl. 3.14 om morgenen i januar 2038 på grund af den fejlbehæftede computer.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.