Linux 5.6 Is The First Kernel For 32-Bit Systems Ready To Run Past Year 2038
On top of all the spectacular work coming with Linux 5.6, here is another big improvement that went under my radar until today: Linux 5.6 is slated to be the first mainline kernel ready for 32-bit systems to run past the Year 2038!
On 19 January 2038 is the "Year 2038" problem where the Unix timestamp can no longer fit within a signed 32-bit integer. For years the Linux kernel developers have been working to mitigate against this issue also commonly referred to as the "Y2038" problem, but with Linux 5.6 (and potentially back-ported to 5.4/5.5 stable branches) is the first where 32-bit kernels should be ready to go for operating past this threshold.
Arnd Bergmann who has been involved in the Y2038 Linux kernel effort announced, "Some related parts of the series were picked up into the nfsd, xfs, alsa and v4l2 trees. A final set of patches in linux-mm removes the now unused time_t/timeval/timespec types and helper functions after all five branches are merged for linux-5.6, ensuring that no new users get merged. As a result, linux-5.6, or my backport of the patches to 5.4, should be the first release that can serve as a base for a 32-bit system designed to run beyond year 2038, with a few remaining caveats/"
Those caveats include that user-space needs to be built against 64-bit time_t, which will be possible with GNU C Library 2.32 and Musl libc 1.2. On the user-space application side for avoiding the Y2038 problem they must be using all of the modern Linux kernel system calls.
Great seeing this Y2038 work largely culminating with Linux 5.6 and hopefully all 32-bit systems will be updated to a 5.6 kernel or later within the next eighteen years.