Linux Kernel 5.19 正式發(fā)布,支持龍芯 CPU架構(gòu)
經(jīng)過兩個(gè)多月的開發(fā),Linux Kernel 5.19 終于來了,它引入了對(duì) ZSTD 壓縮固件文件的支持、對(duì) AMD 的安全嵌套分頁功能的支持、用于管理多路徑 TCP (MPTCP) 流的新用戶空間 API、初始支持龍芯“LoongArch”RISC ISA CPU架構(gòu),以及支持ARM Scalable Matrix Extension (SME)。
還新增了對(duì)主管模式基于頁面的內(nèi)存類型的支持,以及在 RISC-V 架構(gòu)的 64 位系統(tǒng)上運(yùn)行 32 位二進(jìn)制文件的能力,支持 SMP 協(xié)處理器、KCSAN 和 Xtensa 架構(gòu)的休眠,新的通用票證spinlock 類型以添加對(duì)各種架構(gòu)(如 RISC-V、OpenRISC 和 C-SKY)中完整 qspinlock 實(shí)現(xiàn)的支持,并為 fanotify 機(jī)制添加一個(gè) FAN_MARK_EVICTABLE 新標(biāo)志,以避免將目標(biāo) inode 固定在 inode 緩存中。
Linux 5.19 還添加了一個(gè)新的英特爾“現(xiàn)場(chǎng)掃描”機(jī)制來檢測(cè)英特爾 CPU 中的問題,一個(gè)基于 Android Goldfish 模擬器的 m68k 架構(gòu)的虛擬機(jī)實(shí)現(xiàn),以及支持使用任何給定的 inode 存儲(chǔ)數(shù)十億個(gè)擴(kuò)展屬性以及一個(gè)新的“記錄屬性重放”功能,允許在 XFS 文件系統(tǒng)中以原子方式同時(shí)修改多個(gè)擴(kuò)展文件屬性。
最重要的是,EROFS 只讀文件系統(tǒng)已更新為使用 fscache 層來提高運(yùn)行大量容器時(shí)的性能,一個(gè)新的 memory.reclaim 主動(dòng)回收接口來觸發(fā)內(nèi)存 cgroup 上的內(nèi)存回收,能夠內(nèi)核在使用 Zswap 時(shí)控制內(nèi)存的使用,以及跟蹤污染內(nèi)核的模塊的能力。
在安全方面,Linux 5.19 改進(jìn)了鎖定模式以防止特權(quán)進(jìn)程在內(nèi)核控制之外更改內(nèi)核內(nèi)存,增加了對(duì) Landlock 安全模塊中規(guī)則的支持以控制文件的重命名,增加了對(duì) fs-verity 文件摘要的支持到完整性測(cè)量架構(gòu) (IMA),添加了 Clang 編譯的結(jié)構(gòu)隨機(jī)化強(qiáng)化功能,并進(jìn)一步改進(jìn)了隨機(jī)數(shù)生成器。
“就個(gè)人而言,這里最有趣的部分是我在 arm64 筆記本電腦上發(fā)布(并且正在寫這篇文章),”Linus Torvalds 說。“這是我期待已久的事情,感謝朝日?qǐng)F(tuán)隊(duì),它終于成為現(xiàn)實(shí)。很長一段時(shí)間以來,我們一直使用 arm64 硬件來運(yùn)行 Linux,但直到現(xiàn)在它都沒有真正用作開發(fā)平臺(tái)。”
在其他更改中,Linux 內(nèi)核 5.19 為 virtio-blk 驅(qū)動(dòng)程序添加了輪詢 I/O 支持,以將延遲提高多達(dá) 10%,添加了對(duì)處理 ID 映射到 OverlayFS 文件系統(tǒng)的掛載的支持,改進(jìn)了 SLUB 內(nèi)存的調(diào)試基礎(chǔ)架構(gòu)分配器,在 BPF 映射中存儲(chǔ)類型化指針的能力,以及對(duì) io_uring 子系統(tǒng)和 x86 拆分鎖檢測(cè)機(jī)制的各種改進(jìn)。
當(dāng)然,Linux Kernel 5.19 中還包含大量更新和新的驅(qū)動(dòng)程序,以增加對(duì)新設(shè)備的支持,包括 Raspberry Pi Sense HAT 操縱桿、Mega World 控制器的力反饋、ThinkPad TrackPoint Keyboard II 和 Google Whiskers 觸摸板。
此外,Linux 5.19 實(shí)現(xiàn)了一個(gè)新的“硬件時(shí)間戳引擎”子系統(tǒng),以支持可以記錄時(shí)間戳以響應(yīng)事件的設(shè)備,例如 NVIDIA Tegra 194。
喜歡編譯內(nèi)核的人現(xiàn)在可以從kernel.org網(wǎng)站下載 Linux 5.19 的源代碼壓縮包。其他所有人都必須等待其發(fā)行版的維護(hù)者將內(nèi)核升級(jí)到版本 5.19,然后再嘗試將其安裝更新到新的 Linux 內(nèi)核系列。
隨著 Linux Kernel 5.19 的推出,下一個(gè)內(nèi)核版本(Linux Kernel 5.20)的合并窗口現(xiàn)已打開。然而,Linus Torvalds 似乎計(jì)劃最終放棄 5.x 系列,轉(zhuǎn)而使用 Linux 6.0。“我可能會(huì)稱它為 6.0,因?yàn)槲议_始擔(dān)心再次被大數(shù)字弄糊涂,” Torvalds 說。