Hacker News 中文摘要

RSS订阅

内核中32位支持的未来 -- The future of 32-bit support in the kernel

文章摘要

Arnd Bergmann在2025年欧洲开源峰会上指出,32位系统在新产品中已过时,仅需支持现有硬件和软件。作为内核架构维护者,他提到Linux桌面和手机等设备早已转向64位,若非嵌入式系统仍需支持,32位支持早已从内核中移除。

文章总结

标题:内核中32位支持的未来

在2025年欧洲开源峰会上,Arnd Bergmann明确表示,32位系统在新产品中已经过时,唯一保留支持的原因是为了兼容现有的硬件和软件。作为内核架构支持的主要维护者,Bergmann经常被问及是否可以移除32位支持,因此他认为现在是时候深入讨论这一可能性。

Bergmann指出,桌面系统早已转向64位平台,Unix系统在30年前就已实现这一转变,Linux桌面也在20年前跟进。手机及相关设备在过去十年中也已全面转向64位。如果Linux只需支持这些系统,32位支持早已被移除。然而,嵌入式Linux系统仍然广泛使用32位处理器,尤其是Arm处理器。尽管近年来64位Arm处理器的设备树文件数量已超过32位,但仍有大量32位系统在使用。

对于早期的Arm处理器(如armv4和armv6),虽然硬件已停产,但内核仍保留支持。Bergmann提到,未来可能会逐步移除对这些处理器的支持,但具体时间取决于用户需求。此外,内核仍在为一些32位板卡提供支持,但每增加一个32位板卡,就会有至少十个64位板卡获得支持。

非Arm架构的32位处理器(如arc、microblaze等)也在逐渐被RISC-V取代。RISC-V因其无需兼容Arm的特性,成为新产品的首选。此外,没有内存管理单元(nommu)的处理器(如armv7-m、m68k等)也处于边缘状态,几乎没有人再开发基于这些硬件的产品。

对于仍需运行32位应用程序的用户,Bergmann建议在64位内核上运行32位用户空间,以减少内存占用。他强烈反对在64位处理器上运行32位内核。

维护32位支持的最大痛点之一是内存管理子系统,尤其是对高内存(high memory)的支持。高内存在32位系统中用于映射超过800MB的物理内存,但这一机制复杂且需要内核广泛支持。未来,内核将不再支持超过4GB内存的32位系统。

为解决高内存问题,开发者提出了多种方案,如分离内核和用户空间地址空间的“4G/4G”方法,以及新的“densemem”内存模型。此外,使用zram交换设备也是一种简化方案。

另一个与32位系统相关的问题是2038年问题(year-2038 problem),即32位时间戳将在2038年溢出。尽管内核和主要C库已解决这一问题,但许多软件包仍存在未修复的漏洞。Bergmann预计,32位桌面系统将无法在2038年后继续使用。

大端序(big-endian)支持也面临类似问题,尽管已过时,但由于IBM仍在支持大端序的主机和PowerPC系统,内核仍需保留这一功能。

总结来说,内核将继续支持armv7系统至少十年,而其他32位支持将逐步移除。高内存支持可能在2027年左右被移除,nommu支持则可能在2028年移除。开发者需要通过多种方式判断处理器是否仍在使用,以决定是否移除支持。

最后,Bergmann表示,内核不会支持大端序的RISC-V系统,而nommu esp32处理器虽然有趣,但缺乏实际应用场景。

评论总结

  1. 关于32位系统的保留与淘汰

    • 支持保留32位系统的观点认为,32位系统在某些场景下仍然有用,例如Apple Watch和WASM平台仍使用32位地址空间(评论9:"Ripping out support for 32-bit pointers seems like a bad idea.")。此外,32位系统可能更节能(评论4:"It costs less energy to switch 32 transistors than 64.")。
    • 反对保留32位系统的观点认为,32位系统已成为过去,淘汰它们可以简化维护(评论6:"I think they should keep it all around, and keep it buildable.")。
  2. 关于Linux的通用性与维护成本

    • 有人认为Linux作为通用操作系统,应保持对多种硬件的支持,以体现其开放性(评论7:"Open source has always been about making hardware outlive commercial interest.")。
    • 也有人认为,Linux的广泛采用使其成为主流,但淘汰某些硬件支持可能会增加维护复杂性(评论5:"The decision to drop support for certain hardware because it complicates maintenance...")。
  3. 关于硬件简化与用户控制

    • 有人认为,简化硬件和系统有助于用户保持对技术的控制(评论3:"Being able to run linux on a simple enough hardware... help us, as individuals, remain in control.")。
    • 也有人担心,过度简化可能导致技术复杂化,减少用户自由(评论3:"The more complex things are, the less freedom we have.")。
  4. 关于大端序的淘汰

    • 有人认为大端序已逐渐被淘汰,这是技术发展的自然趋势(评论2:"It will be relegated to the computing dustbin like non-8-bit bytes and EBCDIC.")。
  5. 关于内存管理的创新

    • 有人提出使用zram交换设备来管理额外物理内存的创新方案(评论10:"One other possibility is to drop high memory, but allow the extra physical memory to be used as a zram swap device.")。