Linux
是什麼決定了哪些核心模組在編譯期間靜態地建構在核心中?
我剛剛編譯了一個新核心,然後問自己:在編譯過程中,是什麼決定了核心中靜態建構了哪些核心模組?
然後我刪除
/lib/modules
,重新啟動,發現我的系統工作正常,所以看起來所有基本模組都是靜態建構在核心中的。如果沒有
/lib/modules
,核心會載入 22 個。在存在目錄的情況下,它會載入 67 個模組。
作為配置過程的一部分,通常在執行時執行此操作
make config
或make menuconfig
類似操作。您可以將模組設置為內置(標記為*
)或模組化(標記為M
)。您可以在此處
make menuconfig
的螢幕截圖中看到這方面的範例:
鑑於您
/kernel
在 之外添加了標籤/linux-kernel
,我假設您也對通用案例感興趣。自 1991 年以來,在 Solaris 中,所有內容都是動態載入的,除了基本的核心粘合程式碼、預設調度程序和分頁器/交換器。
甚至根文件系統程式碼和模組載入器也是動態載入的。
這避免了手動配置核心的需要。鑑於 Solaris 也不需要配置依賴於大小的功能(只要有足夠的記憶體,新核心對象就會在執行時自動創建),因此不需要在 Solaris 上進行任何手動配置。
我想知道 Linux 何時會達到這種自動化狀態……但是我相信這永遠不會發生,因為理論上不需要的核心配置(參見 Solaris)被用作告訴使用者的有趣方法
hey, you are able to control the linux kernel
。