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
. 这是否意味着编译到内核中的模块没有参数?
两个目录有什么区别。
还有无太大关系/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
:组件可以为此公开自定义界面)。