2038-problemet

(the year 2038 problem) – det faktum att Unix och Unixkompatibla system ofta bara kan räkna tid till år 2038. – Det beror på att Unix räknar tid från den 1 januari 1970 (se epok) och därefter räknar sekunder med 31 binära siffror. Det högsta tal som kan anges med 31 siffror i binär notation är något över 2,1 miljarder, och dessa ≈2,1 miljarder sekunder från den 1 januari 1970 räcker till klockan 04:14:07 den 19 januari 2038 (svensk tid). Då slår räkneverket om, men inte till noll, utan till minus ≈2,1 miljarder sekunder, räknat från 1970, vilket innebär att datorn beter sig som om det var den 13 december 1901. 2038‑problemet är alltså besläktat med 2000‑problemet. (Se också heltalsöversvämning.) – Den uppenbara lösningen är att gå över till att ange tiden med 63 binära siffror. Om man gör det räcker sekunderna i över 292 miljarder år. De flesta nyare datorer har 64‑bitarsprocessorer som kan hantera 63‑siffriga binära tal, men om inte alla system och applikationer anger tid på samma sätt, eller inte är programmerade att förstå varandras tid, uppstår ändå krångel. Både macOS och Linux är sedan länge anpassade för att klara 2038-problemet, men det kan ändå uppstå problem med program och tjänster som inte är det. – Windows har inte ett inbyggt 2038‑problem, men datorer med Windows behöver ofta utbyta information med Unixservrar.

[tidmätning] [unix] [ändrad 29 mars 2020]

Dagens ord: 2022-07-30