Linux Kernel是最新版本的Linux內(nèi)核,支持Intel、Alpha、PPC、Sparc、IA-64 、ARM、MIPS、Amiga、Atari和IBM s/390等,還支持32位大文件系統(tǒng)。而在Intel平臺(tái)上,物理內(nèi)存最大支持可以達(dá)到64GB。加強(qiáng)對(duì)IDE和SCSI硬件系統(tǒng)的支持,并增強(qiáng)了對(duì)USB設(shè)備和3D加速卡的支持。雖然并不像人們期望的那樣有很大更新,但也好的多了。如果你還在使用舊版本的linux kernel,趕快更新吧,絕對(duì)不會(huì)讓你失望。
目前官方已經(jīng)發(fā)布了linux kernel v6.0.2,能夠支持 NVMe 帶內(nèi)認(rèn)證,支持 OpenRISC 和 LoongArch 架構(gòu)的 PCI 總線,使用 XFS 和 io_uring 時(shí)的異步緩沖寫(xiě)入,以及 io_uring 零拷貝網(wǎng)絡(luò)傳輸支持。新版本還帶來(lái)了對(duì) RISC-V 硬件架構(gòu)的“Zicbom”擴(kuò)展的支持,用于管理具有非緩存一致性 DMA 的設(shè)備,還有新的運(yùn)行時(shí)驗(yàn)證子系統(tǒng),允許內(nèi)核狀態(tài)監(jiān)控,支持生成新的 CXL 內(nèi)存區(qū)域,支持在 OverlayFS 文件系統(tǒng)上正確實(shí)現(xiàn) POSIX 訪問(wèn)控制列表,以及實(shí)現(xiàn)第二代 Btrfs“發(fā)送”協(xié)議,支持發(fā)送大型數(shù)據(jù)和原始?jí)嚎s擴(kuò)展。
最上面是用戶(hù)(或應(yīng)用程序)空間。這是用戶(hù)應(yīng)用程序執(zhí)行的地方。用戶(hù)空間之下是內(nèi)核空間,Linux 內(nèi)核正是位于這里。
GNU C Library (glibc)也在這里。它提供了連接內(nèi)核的系統(tǒng)調(diào)用接口,還提供了在用戶(hù)空間應(yīng)用程序和內(nèi)核之間進(jìn)行轉(zhuǎn)換的機(jī)制。這點(diǎn)非常重要,因?yàn)閮?nèi)核和用戶(hù)空間的應(yīng)用程序使用的是不同的保護(hù)地址空間。每個(gè)用戶(hù)空間的進(jìn)程都使用自己的虛擬地址空間,而內(nèi)核則占用單獨(dú)的地址空間。
Linux 內(nèi)核可以進(jìn)一步劃分成 3 層。最上面是系統(tǒng)調(diào)用接口,它實(shí)現(xiàn)了一些基本的功能,例如 read 和 write。系統(tǒng)調(diào)用接口之下是內(nèi)核代碼,可以更精確地定義為獨(dú)立于體系結(jié)構(gòu)的內(nèi)核代碼。這些代碼是 Linux 所支持的所有處理器體系結(jié)構(gòu)所通用的。在這些代碼之下是依賴(lài)于體系結(jié)構(gòu)的代碼,構(gòu)成了通常稱(chēng)為 BSP(Board Support Package)的部分。這些代碼用作給定體系結(jié)構(gòu)的處理器和特定于平臺(tái)的代碼。
一、系統(tǒng)調(diào)用接口
SCI 層提供了某些機(jī)制執(zhí)行從用戶(hù)空間到內(nèi)核的函數(shù)調(diào)用。正如前面討論的一樣,這個(gè)接口依賴(lài)于體系結(jié)構(gòu),甚至在相同的處理器家族內(nèi)也是如此。SCI 實(shí)際上是一個(gè)非常有用的函數(shù)調(diào)用多路復(fù)用和多路分解服務(wù)。在 ./linux/kernel 中您可以找到 SCI 的實(shí)現(xiàn),并在 ./linux/arch 中找到依賴(lài)于體系結(jié)構(gòu)的部分。
二、進(jìn)程管理
進(jìn)程管理的重點(diǎn)是進(jìn)程的執(zhí)行。在內(nèi)核中,這些進(jìn)程稱(chēng)為線程,代表了單獨(dú)的處理器虛擬化(線程代碼、數(shù)據(jù)、堆棧和 CPU 寄存器)。在用戶(hù)空間,通常使用進(jìn)程 這個(gè)術(shù)語(yǔ),不過(guò) Linux 實(shí)現(xiàn)并沒(méi)有區(qū)分這兩個(gè)概念(進(jìn)程和線程)。內(nèi)核通過(guò) SCI 提供了一個(gè)應(yīng)用程序編程接口(API)來(lái)創(chuàng)建一個(gè)新進(jìn)程(fork、exec 或 Portable Operating System Interface [POSIX] 函數(shù)),停止進(jìn)程(kill、exit),并在它們之間進(jìn)行通信和同步。
進(jìn)程管理還包括處理活動(dòng)進(jìn)程之間共享 CPU 的需求。內(nèi)核實(shí)現(xiàn)了一種新型的調(diào)度算法,不管有多少個(gè)線程在競(jìng)爭(zhēng) CPU,這種算法都可以在固定時(shí)間內(nèi)進(jìn)行操作。這種算法就稱(chēng)為 O(1) 調(diào)度程序,這個(gè)名字就表示它調(diào)度多個(gè)線程所使用的時(shí)間和調(diào)度一個(gè)線程所使用的時(shí)間是相同的。 O(1) 調(diào)度程序也可以支持多處理器(稱(chēng)為對(duì)稱(chēng)多處理器或 SMP)。您可以在 ./linux/kernel 中找到進(jìn)程管理的源代碼,在 ./linux/arch 中可以找到依賴(lài)于體系結(jié)構(gòu)的源代碼。
三、內(nèi)存管理
內(nèi)核所管理的另外一個(gè)重要資源是內(nèi)存。為了提高效率,如果由硬件管理虛擬內(nèi)存,內(nèi)存是按照所謂的內(nèi)存頁(yè) 方式進(jìn)行管理的(對(duì)于大部分體系結(jié)構(gòu)來(lái)說(shuō)都是 4KB)。Linux 包括了管理可用內(nèi)存的方式,以及物理和虛擬映射所使用的硬件機(jī)制。
不過(guò)內(nèi)存管理要管理的可不止 4KB 緩沖區(qū)。Linux 提供了對(duì) 4KB 緩沖區(qū)的抽象,例如 slab 分配器。這種內(nèi)存管理模式使用 4KB 緩沖區(qū)為基數(shù),然后從中分配結(jié)構(gòu),并跟蹤內(nèi)存頁(yè)使用情況,比如哪些內(nèi)存頁(yè)是滿的,哪些頁(yè)面沒(méi)有完全使用,哪些頁(yè)面為空。這樣就允許該模式根據(jù)系統(tǒng)需要來(lái)動(dòng)態(tài)調(diào)整內(nèi)存使用。
為了支持多個(gè)用戶(hù)使用內(nèi)存,有時(shí)會(huì)出現(xiàn)可用內(nèi)存被消耗光的情況。由于這個(gè)原因,頁(yè)面可以移出內(nèi)存并放入磁盤(pán)中。這個(gè)過(guò)程稱(chēng)為交換,因?yàn)轫?yè)面會(huì)被從內(nèi)存交換到硬盤(pán)上。內(nèi)存管理的源代碼可以在 ./linux/mm 中找到。
四、虛擬文件系統(tǒng)
虛擬文件系統(tǒng)(VFS)是 Linux 內(nèi)核中非常有用的一個(gè)方面,因?yàn)樗鼮槲募到y(tǒng)提供了一個(gè)通用的接口抽象。VFS 在 SCI 和內(nèi)核所支持的文件系統(tǒng)之間提供了一個(gè)交換層(請(qǐng)參看圖 4)。
在 VFS 上面,是對(duì)諸如 open、close、read 和 write 之類(lèi)的函數(shù)的一個(gè)通用 API 抽象。在 VFS 下面是文件系統(tǒng)抽象,它定義了上層函數(shù)的實(shí)現(xiàn)方式。它們是給定文件系統(tǒng)(超過(guò) 50 個(gè))的插件。文件系統(tǒng)的源代碼可以在 ./linux/fs 中找到。
文件系統(tǒng)層之下是緩沖區(qū)緩存,它為文件系統(tǒng)層提供了一個(gè)通用函數(shù)集(與具體文件系統(tǒng)無(wú)關(guān))。這個(gè)緩存層通過(guò)將數(shù)據(jù)保留一段時(shí)間(或者隨即預(yù)先讀取數(shù)據(jù)以便在需要是就可用)優(yōu)化了對(duì)物理設(shè)備的訪問(wèn)。緩沖區(qū)緩存之下是設(shè)備驅(qū)動(dòng)程序,它實(shí)現(xiàn)了特定物理設(shè)備的接口。
五、網(wǎng)絡(luò)堆棧
網(wǎng)絡(luò)堆棧在設(shè)計(jì)上遵循模擬協(xié)議本身的分層體系結(jié)構(gòu)?;叵胍幌?,Internet Protocol (IP) 是傳輸協(xié)議(通常稱(chēng)為傳輸控制協(xié)議或 TCP)下面的核心網(wǎng)絡(luò)層協(xié)議。TCP 上面是 socket 層,它是通過(guò) SCI 進(jìn)行調(diào)用的。
socket 層是網(wǎng)絡(luò)子系統(tǒng)的標(biāo)準(zhǔn) API,它為各種網(wǎng)絡(luò)協(xié)議提供了一個(gè)用戶(hù)接口。從原始幀訪問(wèn)到 IP 協(xié)議數(shù)據(jù)單元(PDU),再到 TCP 和 User Datagram Protocol (UDP),socket 層提供了一種標(biāo)準(zhǔn)化的方法來(lái)管理連接,并在各個(gè)終點(diǎn)之間移動(dòng)數(shù)據(jù)。內(nèi)核中網(wǎng)絡(luò)源代碼可以在 ./linux/net 中找到。
六、設(shè)備驅(qū)動(dòng)程序
Linux 內(nèi)核中有大量代碼都在設(shè)備驅(qū)動(dòng)程序中,它們能夠運(yùn)轉(zhuǎn)特定的硬件設(shè)備。Linux 源碼樹(shù)提供了一個(gè)驅(qū)動(dòng)程序子目錄,這個(gè)目錄又進(jìn)一步劃分為各種支持設(shè)備,例如 Bluetooth、I2C、serial 等。設(shè)備驅(qū)動(dòng)程序的代碼可以在 ./linux/drivers 中找到。
七、依賴(lài)體系結(jié)構(gòu)的代碼
盡管 Linux 很大程度上獨(dú)立于所運(yùn)行的體系結(jié)構(gòu),但是有些元素則必須考慮體系結(jié)構(gòu)才能正常操作并實(shí)現(xiàn)更高效率。./linux/arch 子目錄定義了內(nèi)核源代碼中依賴(lài)于體系結(jié)構(gòu)的部分,其中包含了各種特定于體系結(jié)構(gòu)的子目錄(共同組成了 BSP)。對(duì)于一個(gè)典型的桌面系統(tǒng)來(lái)說(shuō),使用的是 i386 目錄。每個(gè)體系結(jié)構(gòu)子目錄都包含了很多其他子目錄,每個(gè)子目錄都關(guān)注內(nèi)核中的一個(gè)特定方面,例如引導(dǎo)、內(nèi)核、內(nèi)存管理等。這些依賴(lài)體系結(jié)構(gòu)的代碼可以在 ./linux/arch 中找到。
二、linux kernel 6.0 還包括許多更新和新的驅(qū)動(dòng)程序,以便更好地支持硬件。除此之外,它還增加了許多錯(cuò)誤 Bug 修復(fù)和調(diào)整,以提供比以前的內(nèi)核更好的性能,這里最值得注意的是對(duì)大型系統(tǒng)上的任務(wù)安排的調(diào)整,對(duì)內(nèi)核內(nèi) TLS 實(shí)現(xiàn)的性能改進(jìn),以及新的 IORING_RECV_MULTISHOT flag,以使 recv () 調(diào)用能夠進(jìn)行多鏡頭操作。
三、安全方面,Linux 內(nèi)核 6.0 實(shí)現(xiàn)了從 bootloader 的設(shè)置數(shù)據(jù)中獲取隨機(jī)數(shù) seeds 到 x86 和 m68k 內(nèi)核,支持 SafeSetID 安全模塊來(lái)控制 setgroups () 的變化,支持 ARIA 加密算法,以及支持鉤子連接到控制組或單一目標(biāo)進(jìn)程到 BPF 安全模塊。
四、其他硬件等特性支持如下:
- 像 A750 和 A770 這樣的英特爾 Arc 獨(dú)立 GPU 可以在 Linux 6.0 內(nèi)核的 i915 DRM 內(nèi)核驅(qū)動(dòng)上運(yùn)行,但目前仍然是實(shí)驗(yàn)性的,所以需要“force_probe”選項(xiàng)來(lái)啟用。但至少在 Linux 6.0 中,現(xiàn)在可以使用這些新的英特爾桌面獨(dú)顯與更新的 Mesa 堆棧配對(duì)。
- 更多的 AMD RDNA3 的啟用,希望能夠與即將推出的 Radeon RX 7000 系列顯卡一起工作。
- 高通驍龍 8xc Gen 3 支持和對(duì)聯(lián)想 ThinkPad X13s Arm 筆記本電腦早期支持。這項(xiàng)工作在主線上仍處于早期形式,但至少已經(jīng)可以使用,并開(kāi)辟了 Arm Linux 筆記本電腦選項(xiàng)。
- 各種調(diào)度器的變化,包括一些針對(duì) AMD Zen 的 NUMA 平衡增強(qiáng),以及 AMD CPU 現(xiàn)在傾向于 MWAIT 而不是 HALT。
- 英特爾 Raptor Lake 的各種補(bǔ)充,如 TCC 冷卻驅(qū)動(dòng)、RAPL 驅(qū)動(dòng)中的 Raptor Lake P、Raptor Lake USB4 / Thunderbolt,以及其他缺失的 Raptor Lake ID。還有一些初步的 Meteor Lake 支持,比如音頻代碼和其他地方。
- 對(duì) AMD Ryzen 7000“Raphael”平臺(tái)的音頻驅(qū)動(dòng)支持。
- 支持 IO_uring 用戶(hù)空間塊驅(qū)動(dòng),各種 IO_uring 優(yōu)化,以及其他有希望的 I / O 相關(guān)工作,如 Btrfs Send Protocol v2。
- 對(duì)英特爾 Habana Labs Gaudi 2 的初步支持。
- H.265 / HEVC media user-space API 現(xiàn)在已經(jīng)宣布穩(wěn)定。
- 安全關(guān)鍵系統(tǒng)的運(yùn)行時(shí)間驗(yàn)證。
收起介紹展開(kāi)介紹
目前官方已經(jīng)發(fā)布了linux kernel v6.0.2,能夠支持 NVMe 帶內(nèi)認(rèn)證,支持 OpenRISC 和 LoongArch 架構(gòu)的 PCI 總線,使用 XFS 和 io_uring 時(shí)的異步緩沖寫(xiě)入,以及 io_uring 零拷貝網(wǎng)絡(luò)傳輸支持。新版本還帶來(lái)了對(duì) RISC-V 硬件架構(gòu)的“Zicbom”擴(kuò)展的支持,用于管理具有非緩存一致性 DMA 的設(shè)備,還有新的運(yùn)行時(shí)驗(yàn)證子系統(tǒng),允許內(nèi)核狀態(tài)監(jiān)控,支持生成新的 CXL 內(nèi)存區(qū)域,支持在 OverlayFS 文件系統(tǒng)上正確實(shí)現(xiàn) POSIX 訪問(wèn)控制列表,以及實(shí)現(xiàn)第二代 Btrfs“發(fā)送”協(xié)議,支持發(fā)送大型數(shù)據(jù)和原始?jí)嚎s擴(kuò)展。
Linux內(nèi)核簡(jiǎn)介
現(xiàn)在讓我們從一個(gè)比較高的高度來(lái)審視一下 GNU/Linux 操作系統(tǒng)的體系結(jié)構(gòu)。您可以從兩個(gè)層次上來(lái)考慮操作系統(tǒng),如圖 2 所示。最上面是用戶(hù)(或應(yīng)用程序)空間。這是用戶(hù)應(yīng)用程序執(zhí)行的地方。用戶(hù)空間之下是內(nèi)核空間,Linux 內(nèi)核正是位于這里。
GNU C Library (glibc)也在這里。它提供了連接內(nèi)核的系統(tǒng)調(diào)用接口,還提供了在用戶(hù)空間應(yīng)用程序和內(nèi)核之間進(jìn)行轉(zhuǎn)換的機(jī)制。這點(diǎn)非常重要,因?yàn)閮?nèi)核和用戶(hù)空間的應(yīng)用程序使用的是不同的保護(hù)地址空間。每個(gè)用戶(hù)空間的進(jìn)程都使用自己的虛擬地址空間,而內(nèi)核則占用單獨(dú)的地址空間。
Linux 內(nèi)核可以進(jìn)一步劃分成 3 層。最上面是系統(tǒng)調(diào)用接口,它實(shí)現(xiàn)了一些基本的功能,例如 read 和 write。系統(tǒng)調(diào)用接口之下是內(nèi)核代碼,可以更精確地定義為獨(dú)立于體系結(jié)構(gòu)的內(nèi)核代碼。這些代碼是 Linux 所支持的所有處理器體系結(jié)構(gòu)所通用的。在這些代碼之下是依賴(lài)于體系結(jié)構(gòu)的代碼,構(gòu)成了通常稱(chēng)為 BSP(Board Support Package)的部分。這些代碼用作給定體系結(jié)構(gòu)的處理器和特定于平臺(tái)的代碼。
linux kernel主要子系統(tǒng)
現(xiàn)在使用圖 3 中的分類(lèi)說(shuō)明 Linux 內(nèi)核的主要組件。一、系統(tǒng)調(diào)用接口
SCI 層提供了某些機(jī)制執(zhí)行從用戶(hù)空間到內(nèi)核的函數(shù)調(diào)用。正如前面討論的一樣,這個(gè)接口依賴(lài)于體系結(jié)構(gòu),甚至在相同的處理器家族內(nèi)也是如此。SCI 實(shí)際上是一個(gè)非常有用的函數(shù)調(diào)用多路復(fù)用和多路分解服務(wù)。在 ./linux/kernel 中您可以找到 SCI 的實(shí)現(xiàn),并在 ./linux/arch 中找到依賴(lài)于體系結(jié)構(gòu)的部分。
二、進(jìn)程管理
進(jìn)程管理的重點(diǎn)是進(jìn)程的執(zhí)行。在內(nèi)核中,這些進(jìn)程稱(chēng)為線程,代表了單獨(dú)的處理器虛擬化(線程代碼、數(shù)據(jù)、堆棧和 CPU 寄存器)。在用戶(hù)空間,通常使用進(jìn)程 這個(gè)術(shù)語(yǔ),不過(guò) Linux 實(shí)現(xiàn)并沒(méi)有區(qū)分這兩個(gè)概念(進(jìn)程和線程)。內(nèi)核通過(guò) SCI 提供了一個(gè)應(yīng)用程序編程接口(API)來(lái)創(chuàng)建一個(gè)新進(jìn)程(fork、exec 或 Portable Operating System Interface [POSIX] 函數(shù)),停止進(jìn)程(kill、exit),并在它們之間進(jìn)行通信和同步。
進(jìn)程管理還包括處理活動(dòng)進(jìn)程之間共享 CPU 的需求。內(nèi)核實(shí)現(xiàn)了一種新型的調(diào)度算法,不管有多少個(gè)線程在競(jìng)爭(zhēng) CPU,這種算法都可以在固定時(shí)間內(nèi)進(jìn)行操作。這種算法就稱(chēng)為 O(1) 調(diào)度程序,這個(gè)名字就表示它調(diào)度多個(gè)線程所使用的時(shí)間和調(diào)度一個(gè)線程所使用的時(shí)間是相同的。 O(1) 調(diào)度程序也可以支持多處理器(稱(chēng)為對(duì)稱(chēng)多處理器或 SMP)。您可以在 ./linux/kernel 中找到進(jìn)程管理的源代碼,在 ./linux/arch 中可以找到依賴(lài)于體系結(jié)構(gòu)的源代碼。
三、內(nèi)存管理
內(nèi)核所管理的另外一個(gè)重要資源是內(nèi)存。為了提高效率,如果由硬件管理虛擬內(nèi)存,內(nèi)存是按照所謂的內(nèi)存頁(yè) 方式進(jìn)行管理的(對(duì)于大部分體系結(jié)構(gòu)來(lái)說(shuō)都是 4KB)。Linux 包括了管理可用內(nèi)存的方式,以及物理和虛擬映射所使用的硬件機(jī)制。
不過(guò)內(nèi)存管理要管理的可不止 4KB 緩沖區(qū)。Linux 提供了對(duì) 4KB 緩沖區(qū)的抽象,例如 slab 分配器。這種內(nèi)存管理模式使用 4KB 緩沖區(qū)為基數(shù),然后從中分配結(jié)構(gòu),并跟蹤內(nèi)存頁(yè)使用情況,比如哪些內(nèi)存頁(yè)是滿的,哪些頁(yè)面沒(méi)有完全使用,哪些頁(yè)面為空。這樣就允許該模式根據(jù)系統(tǒng)需要來(lái)動(dòng)態(tài)調(diào)整內(nèi)存使用。
為了支持多個(gè)用戶(hù)使用內(nèi)存,有時(shí)會(huì)出現(xiàn)可用內(nèi)存被消耗光的情況。由于這個(gè)原因,頁(yè)面可以移出內(nèi)存并放入磁盤(pán)中。這個(gè)過(guò)程稱(chēng)為交換,因?yàn)轫?yè)面會(huì)被從內(nèi)存交換到硬盤(pán)上。內(nèi)存管理的源代碼可以在 ./linux/mm 中找到。
四、虛擬文件系統(tǒng)
虛擬文件系統(tǒng)(VFS)是 Linux 內(nèi)核中非常有用的一個(gè)方面,因?yàn)樗鼮槲募到y(tǒng)提供了一個(gè)通用的接口抽象。VFS 在 SCI 和內(nèi)核所支持的文件系統(tǒng)之間提供了一個(gè)交換層(請(qǐng)參看圖 4)。
在 VFS 上面,是對(duì)諸如 open、close、read 和 write 之類(lèi)的函數(shù)的一個(gè)通用 API 抽象。在 VFS 下面是文件系統(tǒng)抽象,它定義了上層函數(shù)的實(shí)現(xiàn)方式。它們是給定文件系統(tǒng)(超過(guò) 50 個(gè))的插件。文件系統(tǒng)的源代碼可以在 ./linux/fs 中找到。
文件系統(tǒng)層之下是緩沖區(qū)緩存,它為文件系統(tǒng)層提供了一個(gè)通用函數(shù)集(與具體文件系統(tǒng)無(wú)關(guān))。這個(gè)緩存層通過(guò)將數(shù)據(jù)保留一段時(shí)間(或者隨即預(yù)先讀取數(shù)據(jù)以便在需要是就可用)優(yōu)化了對(duì)物理設(shè)備的訪問(wèn)。緩沖區(qū)緩存之下是設(shè)備驅(qū)動(dòng)程序,它實(shí)現(xiàn)了特定物理設(shè)備的接口。
五、網(wǎng)絡(luò)堆棧
網(wǎng)絡(luò)堆棧在設(shè)計(jì)上遵循模擬協(xié)議本身的分層體系結(jié)構(gòu)?;叵胍幌?,Internet Protocol (IP) 是傳輸協(xié)議(通常稱(chēng)為傳輸控制協(xié)議或 TCP)下面的核心網(wǎng)絡(luò)層協(xié)議。TCP 上面是 socket 層,它是通過(guò) SCI 進(jìn)行調(diào)用的。
socket 層是網(wǎng)絡(luò)子系統(tǒng)的標(biāo)準(zhǔn) API,它為各種網(wǎng)絡(luò)協(xié)議提供了一個(gè)用戶(hù)接口。從原始幀訪問(wèn)到 IP 協(xié)議數(shù)據(jù)單元(PDU),再到 TCP 和 User Datagram Protocol (UDP),socket 層提供了一種標(biāo)準(zhǔn)化的方法來(lái)管理連接,并在各個(gè)終點(diǎn)之間移動(dòng)數(shù)據(jù)。內(nèi)核中網(wǎng)絡(luò)源代碼可以在 ./linux/net 中找到。
六、設(shè)備驅(qū)動(dòng)程序
Linux 內(nèi)核中有大量代碼都在設(shè)備驅(qū)動(dòng)程序中,它們能夠運(yùn)轉(zhuǎn)特定的硬件設(shè)備。Linux 源碼樹(shù)提供了一個(gè)驅(qū)動(dòng)程序子目錄,這個(gè)目錄又進(jìn)一步劃分為各種支持設(shè)備,例如 Bluetooth、I2C、serial 等。設(shè)備驅(qū)動(dòng)程序的代碼可以在 ./linux/drivers 中找到。
七、依賴(lài)體系結(jié)構(gòu)的代碼
盡管 Linux 很大程度上獨(dú)立于所運(yùn)行的體系結(jié)構(gòu),但是有些元素則必須考慮體系結(jié)構(gòu)才能正常操作并實(shí)現(xiàn)更高效率。./linux/arch 子目錄定義了內(nèi)核源代碼中依賴(lài)于體系結(jié)構(gòu)的部分,其中包含了各種特定于體系結(jié)構(gòu)的子目錄(共同組成了 BSP)。對(duì)于一個(gè)典型的桌面系統(tǒng)來(lái)說(shuō),使用的是 i386 目錄。每個(gè)體系結(jié)構(gòu)子目錄都包含了很多其他子目錄,每個(gè)子目錄都關(guān)注內(nèi)核中的一個(gè)特定方面,例如引導(dǎo)、內(nèi)核、內(nèi)存管理等。這些依賴(lài)體系結(jié)構(gòu)的代碼可以在 ./linux/arch 中找到。
linux kernel 6新功能
一、在虛擬化方面也有好消息,Linux 內(nèi)核 6.0 引入了新的偽設(shè)備,叫做“guest vCPU stall detector”,可以作為“看門(mén)狗”,告訴主機(jī)虛擬機(jī)是否停滯。在 Linux 6.0 中還有新的 debugfs 接口,新的 BPF 迭代器,一組新的 BPF kfuncs,用于生成和檢查 SYN cookies 的新 BPF 助手,以及新的基于 io_uring 的用戶(hù)空間塊驅(qū)動(dòng)器。二、linux kernel 6.0 還包括許多更新和新的驅(qū)動(dòng)程序,以便更好地支持硬件。除此之外,它還增加了許多錯(cuò)誤 Bug 修復(fù)和調(diào)整,以提供比以前的內(nèi)核更好的性能,這里最值得注意的是對(duì)大型系統(tǒng)上的任務(wù)安排的調(diào)整,對(duì)內(nèi)核內(nèi) TLS 實(shí)現(xiàn)的性能改進(jìn),以及新的 IORING_RECV_MULTISHOT flag,以使 recv () 調(diào)用能夠進(jìn)行多鏡頭操作。
三、安全方面,Linux 內(nèi)核 6.0 實(shí)現(xiàn)了從 bootloader 的設(shè)置數(shù)據(jù)中獲取隨機(jī)數(shù) seeds 到 x86 和 m68k 內(nèi)核,支持 SafeSetID 安全模塊來(lái)控制 setgroups () 的變化,支持 ARIA 加密算法,以及支持鉤子連接到控制組或單一目標(biāo)進(jìn)程到 BPF 安全模塊。
四、其他硬件等特性支持如下:
- 像 A750 和 A770 這樣的英特爾 Arc 獨(dú)立 GPU 可以在 Linux 6.0 內(nèi)核的 i915 DRM 內(nèi)核驅(qū)動(dòng)上運(yùn)行,但目前仍然是實(shí)驗(yàn)性的,所以需要“force_probe”選項(xiàng)來(lái)啟用。但至少在 Linux 6.0 中,現(xiàn)在可以使用這些新的英特爾桌面獨(dú)顯與更新的 Mesa 堆棧配對(duì)。
- 更多的 AMD RDNA3 的啟用,希望能夠與即將推出的 Radeon RX 7000 系列顯卡一起工作。
- 高通驍龍 8xc Gen 3 支持和對(duì)聯(lián)想 ThinkPad X13s Arm 筆記本電腦早期支持。這項(xiàng)工作在主線上仍處于早期形式,但至少已經(jīng)可以使用,并開(kāi)辟了 Arm Linux 筆記本電腦選項(xiàng)。
- 各種調(diào)度器的變化,包括一些針對(duì) AMD Zen 的 NUMA 平衡增強(qiáng),以及 AMD CPU 現(xiàn)在傾向于 MWAIT 而不是 HALT。
- 英特爾 Raptor Lake 的各種補(bǔ)充,如 TCC 冷卻驅(qū)動(dòng)、RAPL 驅(qū)動(dòng)中的 Raptor Lake P、Raptor Lake USB4 / Thunderbolt,以及其他缺失的 Raptor Lake ID。還有一些初步的 Meteor Lake 支持,比如音頻代碼和其他地方。
- 對(duì) AMD Ryzen 7000“Raphael”平臺(tái)的音頻驅(qū)動(dòng)支持。
- 支持 IO_uring 用戶(hù)空間塊驅(qū)動(dòng),各種 IO_uring 優(yōu)化,以及其他有希望的 I / O 相關(guān)工作,如 Btrfs Send Protocol v2。
- 對(duì)英特爾 Habana Labs Gaudi 2 的初步支持。
- H.265 / HEVC media user-space API 現(xiàn)在已經(jīng)宣布穩(wěn)定。
- 安全關(guān)鍵系統(tǒng)的運(yùn)行時(shí)間驗(yàn)證。
- 下載地址
linux kernel v6.0.5 Stable官方版
- 本地下載通道:
- 浙江電信下載
- 北京聯(lián)通下載
- 江蘇電信下載
- 廣東電信下載
有問(wèn)題? 點(diǎn)此報(bào)錯(cuò)
發(fā)表評(píng)論
0條評(píng)論軟件排行榜
- 1統(tǒng)信uos家庭版 v22正式版
- 2windows10神州網(wǎng)信政府版 V2022-L.1345.000官方鏡像版
- 3windows server 2008 r2 64位簡(jiǎn)體中文版
- 4windows server 2012 r2 簡(jiǎn)體中文版
- 5msdos7.10.iso 啟動(dòng)盤(pán)
- 6Windows Server 2016正式版
- 7蘋(píng)果系統(tǒng)mac os v10.10附安裝教程
- 8win7精簡(jiǎn)版32位 終極純凈版
- 9RedHat Linux(紅帽子linux) ISO 9.0中文版
- 10ubuntu桌面版 v22.04.2官方版
熱門(mén)推薦
- OpenBSD系統(tǒng) 7.5官方版355M / 英文
- remix os pc版 2016011402官方版1.38G / 簡(jiǎn)體中文
- RedHat Linux(紅帽子linux) ISO 9.0中文版1.63G / 簡(jiǎn)體中文
- StartOS(原Ylmf OS) 6.0 官方版 1019.26M / 簡(jiǎn)體中文
- Tiny Core Linux v6.4.114.31M / 簡(jiǎn)體中文
- Windows Virtual PC 32&64位 v6.1.7600官方版31.63M / 簡(jiǎn)體中文
- winxp sp3 純凈版 官方原版安裝版545.17M / 簡(jiǎn)體中文
- tinyxp中文版(最小的winxp系統(tǒng)) v1.0純凈安裝版299.55M / 簡(jiǎn)體中文
- 鳳凰系統(tǒng)x86u盤(pán)版(phoenix os) v2.0.0官方版371M / 簡(jiǎn)體中文