关于 Linux 内核,你不知道的 30 件事

Linux 内核今年迎来 30 周年。
100 位读者喜欢这篇文章。
30 years

Image CC0 Seth Kenlon

Linux 内核今年迎来 30 周年。这是开源软件开创先河的三十年,它使用户能够运行自由软件,从他们运行的应用程序中学习,并将他们学到的知识与朋友分享。有人认为,如果没有 Linux 内核,我们今天享有的开放文化和自由软件的奢华可能不会在我们所处的时代出现。如果没有 Linux 作为催化剂,苹果、微软和谷歌的开放部分几乎不可能开放。Linux 作为一种文化现象、软件开发和用户体验的影响怎么强调都不过分,然而这一切都始于一个内核。

内核是启动计算机的软件,它识别并确保计算机内部和外部连接的所有组件之间的通信。对于大多数用户从未考虑过,更不用说理解的代码,关于 Linux 内核有很多令人惊讶的事情。这里没有特别的顺序,以下是关于内核的每个生命周期年份的一个事实

  1. Linux 是第一个采用 USB 3.0 驱动程序的操作系统。Sage Sharp 于 2009 年 6 月 7 日宣布他们的 USB 3.0 设备驱动程序已可用,并且他们的代码已包含在内核版本 2.6.31 中

  2. 当发生某些事件可能对以后的故障排除有用时,内核会将自身标记为tainted。运行“tainted”内核不是问题。如果出现问题,首先要做的故障排除步骤之一是在非 tainted 内核上重现问题。

  3. 您可以将主机名或域名指定为 ip= 命令行选项的一部分,Linux 会保留它,而不是用 DHCP 或 BOOTP 提出的主机名或域名覆盖它。例如,ip=::::myhostname::dhcp 获取名称 myhostname

  4. 在文本启动期间,有一个黑白、16 色和 224 色的 Tux 标志版本。

  5. 在娱乐行业,DRM 是用于防止访问媒体的技术。但是,在 Linux 内核中,DRM 指的是 Direct Rendering Manager(直接渲染管理器),指的是用于与显卡 GPU 交互的库 (libdrm) 和驱动程序。

  6. 可以在不重启的情况下修补 Linux 内核。

  7. 编译自己的内核时,您可以将文本控制台配置为超过 80 列。编译后,它可以配置为引导加载程序设置。

  8. Linux 内核提供内置的 FAT、exFAT 和 NTFS(读写)兼容性。

  9. Wacom 平板电脑和许多类似设备的驱动程序都内置在内核中。

  10. 大多数内核黑客使用 git send-email 提交补丁。

  11. 内核使用名为 Sphinx 的文档工具链,它是用 Python 编写的。

  12. Hamlib 提供带有标准化 API 的共享库,用于通过 Linux 计算机控制业余无线电设备,该计算机具有各种无线电支持。

  13. 鼓励硬件制造商帮助开发内核,以确保兼容性。因此,可以直接寻址硬件,而无需从制造商处下载驱动程序。直接成为内核一部分的驱动程序还可以自动从新内核版本的性能和安全性改进中受益。

  14. 内核中包含许多 Raspberry Pi 模块(Pi Hats)的驱动程序。

  15. 乐队 netcat 发行了一张专辑,只能作为 Linux 内核模块播放。

  16. 受 netcat 专辑发行的启发,还开发了一个将内核变成音乐播放器的模块。

  17. Linux 内核支持多种 CPU 架构:ARM、ARM64、IA-64、m68k、MIPS、Nios II、PA-RISC、OpenRISC、PowerPC、s390、Sparc、x86、Xtensa 等。

  18. 2001 年,Linux 内核率先在长模式下运行 x86-64 CPU 架构

  19. Linux 版本 3.4 引入了 x32 ABI,允许开发人员编译代码以在 64 位模式下运行,同时仅使用 32 位指针和数据字段。

  20. 内核支持许多不同的文件系统,包括 Ext2、Ext3、Ext4、JFS、XFS、GFS2、GCFS2、BtrFS、NILFS2、NFS、Overlay FS、UDF 等。

  21. 虚拟文件系统是内核中的一个软件层,为应用程序用户运行的文件系统接口提供支持。它也是内核的抽象,以便不同的文件系统实现可以共存。

  22. Linux 内核包含物理盲文输出设备的驱动程序。

  23. 对于内核版本 2.6.29,启动期间的 Tux 标志被“Tuz”取代,以提高人们对当时影响澳大利亚塔斯马尼亚恶魔种群的侵袭性癌症的认识。

  24. 控制组 (cgroups) 是容器(Docker、Podman、Kubernetes 等基础技术)能够存在的原因。

  25. 为了使其能够被包含进来,经历了广泛的法律诉讼,但今天 CIFS 模块已内置到内核中以启用 SMB 支持。这允许 Linux 挂载 Microsoft 远程和基于云的文件共享。

  26. 计算机要生成真正的随机数是出了名的困难(事实上到目前为止是不可能的)。hw_random 框架可以利用 CPU 或主板上的特殊硬件功能来努力改进随机数生成。

  27. 操作系统抖动是应用程序因后台进程的调度方式以及系统处理异步事件(如中断)的方式的冲突而遇到的干扰。将任务绑定到内核定义的 CPU 集,使用 cgroups 和 SMP IRQ 亲和性是内核为程序员提供的用于减少操作系统抖动的选项。内核文档中详细讨论了这些问题,帮助针对 Linux 的程序员可以编写更智能的代码。

  28. make menuconfig 命令允许您使用 GUI 在编译之前配置内核。Kconfig 语言定义内核配置选项。

  29. 对于重要的 Linux 服务器,可以实施看门狗系统来监控服务器的健康状况。在健康检查之间,看门狗守护程序将数据写入特殊的看门狗内核设备,以防止系统重置。如果看门狗未能记录成功,则系统将重置。存在许多看门狗硬件的实现,它们对于远程关键任务计算机(例如发送到火星的计算机)至关重要。

  30. 虽然它是在地球上开发的,但在火星行星上有一个 Linux 内核的副本。

接下来阅读什么
标签
Seth Kenlon
Seth Kenlon 是一位 UNIX 极客、自由文化倡导者、独立多媒体艺术家和 D&D 爱好者。他曾在电影和计算机行业工作,而且经常同时工作。

1 条评论

向 Linux 及其所有子孙后代(如 Ingenuity?)致敬

Creative Commons License本作品根据 Creative Commons Attribution-Share Alike 4.0 International License 获得许可。
© . All rights reserved.