Linux
/proc/sys 與 /sys/modules/mod/parameter
最近幾天我一直想知道它到底是如何工作的。我們可以使用 sysctl 設置核心執行時參數
echo boolen 1> /proc/sys/module/exactParameter
,/sys/modules/module/parameters/parameter
也可以設置值。模組的參數是否
/proc/sys/
僅與硬編譯到核心相關?或者也可能有可載入核心模組的參數?LKM 載入到執行 Kernel 後會在
/sys/modules/module/paraeter/params
. 這是否意味著編譯到核心中的模組沒有參數?兩個目錄有什麼區別。
/proc/sys
除了兩者都是核心介面和/sys
名稱的巧合之外,兩者之間幾乎沒有關係。
/proc/sys
是sysctl的介面,它是核心配置參數。讀取或修改/proc/sys/foo/bar
相當於獲取或設置foo.bar
sysctl。Sysctl 值是按語義類別組織的,它們與核心的結構沒有內在的關係。許多 sysctl 值是存在於每個 Linux 系統上的設置,無論編譯在什麼驅動程序或功能中;有些與可選功能(例如某些網路協議)有關,但與特定硬體設備無關。
/sys/module
顧名思義,是核心模組的介面。每個目錄對應一個核心模組。foo
您可以通過寫入來讀取,有時還可以修改模組的參數/sys/module/foo/parameters/*
。載入到核心中的組件從核心命令行讀取它們的參數。這些參數不能在執行時設置(至少不能通過自動生成的介面,例如
/sys/module
:組件可以為此公開自定義介面)。