The future of 32-bit support in the kernel
9 days ago
- #Linux
- #kernel
- #32-bit
- 32-bit systems are considered obsolete for new products, with support mainly for existing hardware and software.
- Most non-embedded architectures have transitioned to 64-bit or are no longer in use.
- Embedded Linux systems predominantly use Arm processors, with 64-bit (armv8) now surpassing 32-bit (armv7) in devicetree files.
- Support for pre-armv7 CPUs is limited, with many out of production but still supported in the kernel.
- Non-Arm 32-bit architectures (e.g., arc, microblaze) are being replaced by RISC-V in new products.
- Nommu (no memory-management unit) processors are no longer being built, with support mainly for existing systems.
- Running 32-bit user space on a 64-bit kernel is recommended for memory-constrained systems.
- Maintaining 32-bit support is complex, especially for high memory (supporting up to 16GB, soon capped at 4GB).
- Proposals like 'densemem' and separating kernel/user-space address spaces aim to simplify 32-bit support.
- The year-2038 problem is mostly solved in the kernel but remains in some applications and languages.
- Big-endian support is obsolete but remains due to IBM's ongoing support for mainframe and PowerPC systems.
- Future removals include high-memory support (~2027), nommu support (~2028), and various outdated CPU supports.