Linux中國

關於 Linux 內核的 30 件你不知道的事

Linux 內核今年 30 歲了。這開創性的開源軟體的三個十年,讓用戶能夠運行自由軟體,讓他們能從運行的應用程序中學習,讓他們能與朋友分享他們所學到的知識。有人認為,如果沒有 Linux 內核,我們如今所享受的 開源文化 和自由軟體的累累碩果,可能就不會應時而出現。如果沒有 Linux 作為催化劑,蘋果、微軟和谷歌所開源的那些就不可能開源。Linux 作為一種現象,對開源文化、軟體開發和用戶體驗的影響,是怎麼強調都不為過的,但所有這一切,都濫觴於一個 Linux 內核

Linux 內核是啟動計算機、並識別和確保計算機內外所連接的所有組件之間通信的軟體。這些對於大多數用戶從未想過,更不用說能理解的代碼,Linux 內核有很多令人驚訝的地方。以下是 Linux 內核在其三十年生命中每一年的一件事。順序無關。

  1. Linux 是第一個具有 USB 3.0 驅動的操作系統。Sarah Sharp 在 2009 年 6 月 7 日宣布她的 USB 3.0 設備的驅動程序可以使用了,她的代碼被包含在內核 2.6.31 版本中。
  2. 當某些事件發生時,內核會將自己標記為「受污染」,這在以後的故障排除中可能有用。運行一個「被污染」的內核並不是什麼問題。但如果出現錯誤,首先要做的是在一個沒有被污染的內核上重現該問題。
  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. 我們鼓勵硬體製造商幫助開發 Linux 內核,以確保兼容性。這樣就可以直接處理硬體,而不必從製造商那裡下載驅動程序。直接成為內核一部分的驅動程序也會自動從新版本內核的性能和安全改進中受益。
  14. 內核中包含了許多樹莓派模塊(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. 虛擬文件系統 Virtual File System (VFS)是 Linux 內核中的一個軟體層,為用戶運行的應用程序提供文件系統介面。它也是內核的一個抽象層,以便不同的文件系統實現可以共存。
  22. Linux 內核包括一個實體的盲文輸出設備的驅動程序。
  23. 在 2.6.29 版本的內核中,啟動時的 Tux 徽標被替換為 「Tuz」,以提高人們對當時影響澳大利亞的 塔斯馬尼亞魔鬼 Tasmanian Devil (即袋獾)種群的一種侵襲性癌症的認識。
  24. 控制組 Control Groups (cgroups)是容器(Docker、Podman、Kubernetes 等的基礎技術)能夠存在的原因。
  25. 曾經花了大量的法律行動來解放 CIFS,以便將其納入內核中,而今天,CIFS 模塊已被內置於內核,以實現對 SMB 的支持。這使得 Linux 可以掛載微軟的遠程共享和基於雲的文件共享。
  26. 對於計算機來說,產生一個真正的隨機數是出了名的困難(事實上,到目前為止是不可能的)。hw_random 框架可以利用你的 CPU 或主板上的特殊硬體功能,盡量改進隨機數的生成。
  27. 操作系統抖動 是應用程序遇到的干擾,它是由後台進程的調度方式和系統處理非同步事件(如中斷)的方式的衝突引起的。像這些問題在內核文檔中都有詳細的討論,可以幫助面向 Linux 開發的程序員寫出更聰明的代碼。
  28. make menuconfig 命令可以讓你在編譯前使用 GUI 來配置內核。Kconfig 語言定義了內核配置選項。
  29. 對於基本的 Linux 伺服器,可以實施一個 看門狗 系統來監控伺服器的健康狀況。在健康檢查間隔中,watchdog 守護進程將數據寫入一個特殊的 watchdog 內核設備,以防止系統重置。如果看門狗不能成功記錄,系統就會被重置。有許多看門狗硬體的實現,它們對遠程任務關鍵型計算機(如發送到火星上的計算機)至關重要。
  30. 在火星上有一個 Linux 內核的副本,雖然它是在地球上開發的。

via: https://opensource.com/article/21/8/linux-kernel

作者:Seth Kenlon 選題:lujun9972 譯者:wxy 校對:wxy

本文由 LCTT 原創編譯,Linux中國 榮譽推出


本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive

對這篇文章感覺如何?

太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
雨落清風。心向陽

    You may also like

    Leave a reply

    您的郵箱地址不會被公開。 必填項已用 * 標註

    此站點使用Akismet來減少垃圾評論。了解我們如何處理您的評論數據

    More in:Linux中國