經過兩個月的開發, Linus Torvalds 發布了新版本的“Linux Kernel 5.7” 其中突出了各種變化,例如 FS exFAT 的新實現,用於創建 UDP 隧道的 bareudp 模塊, 針對 ARM64 的基於指針身份驗證的保護,將 BPF 程序附加到 LSM 控制器的能力, Curve25519 的新實現、分割鎖檢測器、與 PREEMPT_RT 的 BPF 兼容性等等。
這個新版本採納了 15033 名開發者的 1961 個修復,補丁大小為 39 MB(更改影響了 11590 個文件,添加了 570560 行代碼,刪除了 297401 行)。 41 中引入的所有更改中大約 5.7% 與設備驅動程序相關,大約 16% 的更改與更新特定於硬件架構的代碼相關。
Linux Kernel 5.7的新增功能
這個新版本呈現了一個 新的 exFAT 驅動程序實施,基於三星當前開發的“sdfat”(2.x) 代碼庫。 之前添加到內核中的驅動程序基於過時的三星代碼 (版本 1.2.9),性能落後新驅動程序約 10%。
對於 XFS,元數據驗證和 fsck 執行已得到改進 對於活動分區。 建議使用一個庫來重建 btree 結構,將來將使用該庫來處理 xfs_repair 以實現無需卸載分區即可恢復的可能性。
在網絡子系統方面, Netfilter 包含的更改可顯著加快大量 nftable 的處理速度,這需要檢查子網、網絡端口、協議和 MAC 地址的組合。
除了強調這一點之外 添加了對硬件加速機制的支持以封裝以太網幀 802.11(Wi-Fi)。
採用第三方補丁,將 ethtool 工具從 ioctl() 轉換為使用 netlink 接口。 新接口簡化了擴展的添加,改進了錯誤處理,允許您在狀態更改時發送通知,簡化了內核和用戶空間之間的交互,並減少了同步命名列表的數量。
同時為了虛擬化和安全 添加了指針身份驗證的硬件實現, 使用專門的指令 ARM64 CPU 來防禦使用 ROP 技術的攻擊 其中攻擊者不會嘗試將其代碼放入內存中,而是對已加載庫中以返回控制指令結尾的機器指令塊進行操作。
在 SELinux 上,“checkreqprot”參數已被棄用, 它允許您在處理規則時禁用內存保護檢查(允許使用可執行內存區域,無論規則中指定的要求如何)。 kernfs 符號鏈接可以從父目錄繼承上下文。
增加了對EFI混合啟動模式的支持, 它允許從 64 位 CPU 上運行的 32 位固件加載 64 位內核,而無需使用專門的引導加載程序。
除此之外 突出顯示了能夠識別和調試分割阻塞的系統, 由於原子指令數據跨越兩個 CPU 緩存行,因此在訪問內存中未對齊的數據時會發生這種情況。
此類崩潰會導致性能顯著下降(比數據落在同一緩存行上的原子操作慢 1000 個週期)。 根據“split_lock_detect”引導參數,內核可以動態檢測此類鎖定並發出警告或嚮導致鎖定的應用程序發送 SIGBUS 信號。
排出
終於 如果您想了解更多 關於這個新版本的Linux內核,您可以查閱完整列表 在以下鏈接中進行更改。
關於新版本的可用性,您應該知道 現在可供下載和編譯 從網站 Linux 內核官方網站 而對於某些發行版的預編譯版本,它們已經可供某些發行版使用。