Linux

是什麼決定了哪些核心模組在編譯期間靜態地建構在核心中?

  • September 21, 2015

我剛剛編譯了一個新核心,然後問自己:在編譯過程中,是什麼決定了核心中靜態建構了哪些核心模組?

然後我刪除/lib/modules,重新啟動,發現我的系統工作正常,所以看起來所有基本模組都是靜態建構在核心中的。

如果沒有/lib/modules,核心會載入 22 個。在存在目錄的情況下,它會載入 67 個模組。

作為配置過程的一部分,通常在執行時執行此操作make configmake menuconfig類似操作。您可以將模組設置為內置(標記為*)或模組化(標記為M)。

您可以在此處make menuconfig的螢幕截圖中看到這方面的範例:

菜單配置截圖

鑑於您/kernel在 之外添加了標籤/linux-kernel,我假設您也對通用案例感興趣。

自 1991 年以來,在 Solaris 中,所有內容都是動態載入的,除了基本的核心粘合程式碼、預設調度程序和分頁器/交換器。

甚至根文件系統程式碼和模組載入器也是動態載入的。

這避免了手動配置核心的需要。鑑於 Solaris 也不需要配置依賴於大小的功能(只要有足夠的記憶體,新核心對象就會在執行時自動創建),因此不需要在 Solaris 上進行任何手動配置。

我想知道 Linux 何時會達到這種自動化狀態……但是我相信這永遠不會發生,因為理論上不需要的核心配置(參見 Solaris)被用作告訴使用者的有趣方法hey, you are able to control the linux kernel

引用自:https://unix.stackexchange.com/questions/231124