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