關(guān)于 Linux 內(nèi)核的 30 件你不知道的事
Linux 內(nèi)核今年 30 歲了。
Linux 內(nèi)核今年 30 歲了。這開(kāi)創(chuàng)性的開(kāi)源軟件的三個(gè)十年,讓用戶能夠運(yùn)行自由軟件,讓他們能從運(yùn)行的應(yīng)用程序中學(xué)習(xí),讓他們能與朋友分享他們所學(xué)到的知識(shí)。有人認(rèn)為,如果沒(méi)有 Linux 內(nèi)核,我們?nèi)缃袼硎艿?開(kāi)源文化 和自由軟件的累累碩果,可能就不會(huì)應(yīng)時(shí)而出現(xiàn)。如果沒(méi)有 Linux 作為催化劑,蘋(píng)果、微軟和谷歌所開(kāi)源的那些就不可能開(kāi)源。Linux 作為一種現(xiàn)象,對(duì)開(kāi)源文化、軟件開(kāi)發(fā)和用戶體驗(yàn)的影響,是怎么強(qiáng)調(diào)都不為過(guò)的,但所有這一切,都濫觴于一個(gè) Linux 內(nèi)核。
Linux 內(nèi)核是啟動(dòng)計(jì)算機(jī)、并識(shí)別和確保計(jì)算機(jī)內(nèi)外所連接的所有組件之間通信的軟件。這些對(duì)于大多數(shù)用戶從未想過(guò),更不用說(shuō)能理解的代碼,Linux 內(nèi)核有很多令人驚訝的地方。以下是 Linux 內(nèi)核在其三十年生命中每一年的一件事。順序無(wú)關(guān)。
- Linux 是第一個(gè)具有 USB 3.0 驅(qū)動(dòng)的操作系統(tǒng)。Sarah Sharp 在 2009 年 6 月 7 日宣布她的 USB 3.0 設(shè)備的驅(qū)動(dòng)程序可以使用了,她的代碼被包含在內(nèi)核 2.6.31 版本中。
- 當(dāng)某些事件發(fā)生時(shí),內(nèi)核會(huì)將自己標(biāo)記為“受污染”,這在以后的故障排除中可能有用。運(yùn)行一個(gè)“被污染”的內(nèi)核并不是什么問(wèn)題。但如果出現(xiàn)錯(cuò)誤,首先要做的是在一個(gè)沒(méi)有被污染的內(nèi)核上重現(xiàn)該問(wèn)題。
- 你可以指定一個(gè)主機(jī)名或域名作為 ip= 內(nèi)核命令行選項(xiàng)的一部分,Linux 會(huì)保留它,而不是用 DHCP 或 BOOTP 提供的主機(jī)名或域名來(lái)覆蓋它。例如,ip=::::myhostname::dhcp 設(shè)置主機(jī)名 myhostname。
- 在文本啟動(dòng)過(guò)程中,可以選擇顯示黑白的、16 色的或 224 色的 Tux 徽標(biāo)之一。
- 在娛樂(lè)業(yè)中,DRM 是一種用來(lái)防止訪問(wèn)媒介的技術(shù)。然而,在 Linux 內(nèi)核中,DRM 指的是直接渲染管理器Direct Rendering Manager,它指的是用于與對(duì)接顯卡的 GPU 的庫(kù)(libdrm)和驅(qū)動(dòng)程序。
- 能夠在不重啟的情況下給 Linux 內(nèi)核打補(bǔ)丁。
- 如果你自己編譯內(nèi)核,你可以將文本控制臺(tái)配置為超過(guò) 80 列寬。
- Linux 內(nèi)核提供了內(nèi)置的 FAT、exFAT 和 NTFS(讀和寫(xiě))支持。
- Wacom 平板電腦和許多類似設(shè)備的驅(qū)動(dòng)程序都內(nèi)置在內(nèi)核中。
- 大多數(shù)內(nèi)核高手使用 git send-email 來(lái)提交補(bǔ)丁。
- 內(nèi)核使用一個(gè)叫做 Sphinx 的文檔工具鏈,它是用 Python 編寫(xiě)的。
- Hamlib 提供了具有標(biāo)準(zhǔn)化 API 的共享庫(kù),可以通過(guò)你的 Linux 電腦控制業(yè)余無(wú)線電設(shè)備。
- 我們鼓勵(lì)硬件制造商幫助開(kāi)發(fā) Linux 內(nèi)核,以確保兼容性。這樣就可以直接處理硬件,而不必從制造商那里下載驅(qū)動(dòng)程序。直接成為內(nèi)核一部分的驅(qū)動(dòng)程序也會(huì)自動(dòng)從新版本內(nèi)核的性能和安全改進(jìn)中受益。
- 內(nèi)核中包含了許多樹(shù)莓派模塊(Pi Hats)的驅(qū)動(dòng)程序。
- netcat 樂(lè)隊(duì)發(fā)布了一張只能作為 Linux 內(nèi)核模塊 播放的專輯。
- 受 netcat 發(fā)布專輯的啟發(fā),人們又開(kāi)發(fā)了一個(gè) 把你的內(nèi)核變成一個(gè)音樂(lè)播放器 的模塊。
- Linux 內(nèi)核的功能支持許多 CPU 架構(gòu):ARM、ARM64、IA-64、 m68k、MIPS、Nios II、PA-RISC、OpenRISC、PowerPC、s390、 Sparc、x86、Xtensa 等等。
- 2001 年,Linux 內(nèi)核成為第一個(gè) 以長(zhǎng)模式運(yùn)行的 x86-64 CPU 架構(gòu)。
- Linux 3.4 版引入了 x32 ABI,允許開(kāi)發(fā)者編譯在 64 位模式下運(yùn)行的代碼,而同時(shí)只使用 32 位指針和數(shù)據(jù)段。
- 內(nèi)核支持許多不同的文件系統(tǒng),包括 Ext2、Ext3、Ext4、JFS、XFS、GFS2、GCFS2、BtrFS、NILFS2、NFS、Overlay FS、UDF 等等。
- 虛擬文件系統(tǒng)Virtual File System(VFS)是 Linux 內(nèi)核中的一個(gè)軟件層,為用戶運(yùn)行的應(yīng)用程序提供文件系統(tǒng)接口。它也是內(nèi)核的一個(gè)抽象層,以便不同的文件系統(tǒng)實(shí)現(xiàn)可以共存。
- Linux 內(nèi)核包括一個(gè)實(shí)體的盲文輸出設(shè)備的驅(qū)動(dòng)程序。
- 在 2.6.29 版本的內(nèi)核中,啟動(dòng)時(shí)的 Tux 徽標(biāo)被替換為 “Tuz”,以提高人們對(duì)當(dāng)時(shí)影響澳大利亞的塔斯馬尼亞魔鬼Tasmanian Devil(即袋獾)種群的一種侵襲性癌癥的認(rèn)識(shí)。
- 控制組Control Groups(cgroups)是容器(Docker、Podman、Kubernetes 等的基礎(chǔ)技術(shù))能夠存在的原因。
- 曾經(jīng)花了大量的法律行動(dòng)來(lái)解放 CIFS,以便將其納入內(nèi)核中,而今天,CIFS 模塊已被內(nèi)置于內(nèi)核,以實(shí)現(xiàn)對(duì) SMB 的支持。這使得 Linux 可以掛載微軟的遠(yuǎn)程共享和基于云的文件共享。
- 對(duì)于計(jì)算機(jī)來(lái)說(shuō),產(chǎn)生一個(gè)真正的隨機(jī)數(shù)是出了名的困難(事實(shí)上,到目前為止是不可能的)。hw_random 框架可以利用你的 CPU 或主板上的特殊硬件功能,盡量改進(jìn)隨機(jī)數(shù)的生成。
- 操作系統(tǒng)抖動(dòng) 是應(yīng)用程序遇到的干擾,它是由后臺(tái)進(jìn)程的調(diào)度方式和系統(tǒng)處理異步事件(如中斷)的方式的沖突引起的。像這些問(wèn)題在內(nèi)核文檔中都有詳細(xì)的討論,可以幫助面向 Linux 開(kāi)發(fā)的程序員寫(xiě)出更聰明的代碼。
- make menuconfig 命令可以讓你在編譯前使用 GUI 來(lái)配置內(nèi)核。Kconfig 語(yǔ)言定義了內(nèi)核配置選項(xiàng)。
- 對(duì)于基本的 Linux 服務(wù)器,可以實(shí)施一個(gè) 看門(mén)狗 系統(tǒng)來(lái)監(jiān)控服務(wù)器的健康狀況。在健康檢查間隔中,watchdog 守護(hù)進(jìn)程將數(shù)據(jù)寫(xiě)入一個(gè)特殊的 watchdog 內(nèi)核設(shè)備,以防止系統(tǒng)重置。如果看門(mén)狗不能成功記錄,系統(tǒng)就會(huì)被重置。有許多看門(mén)狗硬件的實(shí)現(xiàn),它們對(duì)遠(yuǎn)程任務(wù)關(guān)鍵型計(jì)算機(jī)(如發(fā)送到火星上的計(jì)算機(jī))至關(guān)重要。
- 在火星上有一個(gè) Linux 內(nèi)核的副本,雖然它是在地球上開(kāi)發(fā)的。