Linux-kernel klaar voor Y2K38
- October 1, 2020
- 0
Wat Y2K voor COBOL-mainframes was, is Y2K38 voor Linux, macOS en andere POSIX-compatibele besturingssystemen. Deze stellen de tijd immers allemaal voor als het aantal seconden sinds 1 januari 1970 om middernacht UTC, in de vorm van een signed 32-bits integer.
Daardoor eindigt de Unix-tijd op 19 januari 2038 om 3:14:07 UTC. Daarna worden de getallen negatief, en daardoor zou de datum geïnterpreteerd worden als 13 december 1901. Dat is niet de bedoeling… De kernelontwikkelaars zijn al jaren aan een oplossing bezig, en die is er nu in Linux 5.6. Uiteraard moet ook alle bovenliggende software aangepast worden: voor tijdstippen moet de software het 64-bits type time_t gebruiken, ondersteund vanaf glibc-2.32 en musl-1.2. Dat wordt nog een hele klus, maar daarna hoeven we ons niet meer over Y2K-achtige problemen zorgen te maken tot in het jaar 29.227.702.659.