/proc/sys vs /sys/modules/mod/parameter

ast*_*ast 10 linux kernel proc sysctl

最近几天我一直在想它到底是如何工作的。我们可以使用 sysctl 设置内核运行时参数,echo boolen 1> /proc/sys/module/exactParameter/sys/modules/module/parameters/parameter我们也可以设置值。

模块的参数是否/proc/sys/仅与硬编译到内核相关?或者也可以有可加载内核模块的参数?

LKM 加载到运行内核后,在/sys/modules/module/paraeter/params. 这是否意味着编译到内核中的模块没有参数?

两个目录有什么区别。

Gil*_*il' 5

还有无太大关系/proc/sys/sys其他比一个事实,即两者都是内核接口和名称的巧合。

/proc/syssysctl的接口,它是内核配置参数。读取或修改/proc/sys/foo/bar相当于获取或设置foo.barsysctl。sysctl 值是按语义类别组织的,它们与内核的结构没有本质的关系。许多 sysctl 值是存在于每个 Linux 系统上的设置,而不管编译了哪些驱动程序或功能;有些与可选功能(例如某些网络协议)有关,但与特定硬件设备无关。

/sys/module顾名思义,是内核模块的接口。每个目录对应一个内核模块。您可以foo通过写入/sys/module/foo/parameters/*.

加载到内核中的组件从内核命令行读取它们的参数。这些参数不能在运行时设置(至少不能通过自动生成的界面,例如/sys/module:组件可以为此公开自定义界面)。