Linux 內核是 Linux 操作系統 (OS) 的支柱,是計算機硬件與其進程之間的基本接口。
Linus Torvalds近日宣布Linux 6.3 核心合併視窗已關閉,該版本將不再支援 Intel ICC 編譯器。具體來說,這裡指的是 Intel ICC 編譯器,也就是之前為人熟知的“Intel C++ Compiler Classic”,後來它與現代的 Intel DPC++ 編譯器一起過渡到了 LLVM/Clang。
通過 Linux 6.3 的第一個候選版本,我們對這個新內核版本的特性和變化有了更多的了解。 已添加到 Linux 6.3 的關鍵功能之一是新的“rtla hwnoise”工具。
幾個月前,曾有傳言指出 Linux 核心將停止支援 Intel 的 ICC 編譯器,而現在,隨著Linux 6.3 的發布,這一說法已經成真。事實上,雖然 LLVM/Clang 編譯器作為 GCC 編譯器(長期以來 GCC 一直是 LLVM/Clang 的主要用途)的補充,越來越多地被各種開發者和組織用於構建 Linux 內核,但 Intel 的 ICC 編譯器也能夠構建 Linux 內核,儘管它的使用並不廣泛。然而,核心開發者最終決定放棄對 ICC 編譯器的支援。
首先,Intel ICC 是一款高度最佳化的 C (icc) 和 C++ (icpc) 編譯器,一些開發者和組織使用它來創建 Linux 核心。其獨立版本已被 Intel OneAPI 取代。
移除對英特爾ICC編譯器的支持這一想法最早由Linux開發者山田正弘於去年10月提出。據Linux核心開發者稱,與英特爾ICC編譯器支援相關的核心改動微乎其微,而且目前核心建置中的ICC支援似乎處於休眠狀態,並未引起任何關注。既然無人關心或註意到,這項提議將從主線核心中移除ICC支持,從而釋放目前用於ICC支援的約300行程式碼。
核心的創建者林納斯·托瓦茲回應稱,他贊成放棄英特爾ICC編譯器:
“我認為沒有人真正使用過 ICC。 我不記得聽過一個關於 ICC 問題的詞,我不認為這是因為它模仿 GCC 太好了以至於沒有人遇到任何問題。
其他內核開發人員表示贊成這一變化。 此外,隨著英特爾的 ICC 編譯器從其舊的專有代碼庫轉移到基於 LLVM 的模型,新的 ICC 編譯器可能最終能夠使用 Clang 路徑編譯內核。
基本上, Intel 編譯器的主要Linux 內核頭檔已經三年沒有修改了,許多開發者/用戶忘記了或甚至不知道 ICC 對內核構建的支持,而且至少有一個明顯的、未修改的問題已被報告與 ICC 內核構建有關。
此外,英特爾經典的ICC編譯器已被基於LLVM建構的更現代的oneAPI DPC++/C++編譯器所取代。自10月以來,沒有人表示有興趣使用這款經典的英特爾編譯器編譯最新的核心程式碼。
因此,放棄對英特爾 ICC 的支持並不是真正的損失。 GCC 和 LLVM/Clang 仍然是構建主要 Linux 內核的兩個關鍵編譯器。
GCC 長期以來一直是構建主線內核的事實選擇,而近年來 LLVM/Clang 主線被證明非常適合構建 Linux 內核,並被用於各種構建 Linux 生產內核,以及移植LLVM。 /Clang 的各種編譯器功能。 因此,隨著 Linux 內核版本 6.3 的到來,英特爾的 ICC 編譯器將被淘汰。
最後,如果您有興趣了解更多相關信息,可以點擊以下連結查看詳情。