内核通过不同的接口向用户输出内核信息。我们可通过这些接口访问和修改内核参数。共有三种接口,其中两种是procfs和sysfs虚拟文件系统,第三种是sysctl命令。
-
启用procfs虚拟文件系统的内核选项是"Filesystems-->Pseudo filesystems-->proc file system support"。procfs文件系统挂载在/proc目录,可用cat、more等shell命令查看目录中的文件。
-
sysctl命令也可以修改和查看内核变量,sysctl操作的内核变量位于/proc/sys目录下。启用sysctl支持的内核选项是"General setup-->Sysctl support"。
-
procfs和sysctl接口已使用多年,从2.6内核开始,引入新的sysfs虚拟文件系统,它挂载在/sys目录下。启用sysfs的内核选项是"Filesystems-->Pseudo filesystems-->sysfs filesystem support (NEW)"。sysfs以更整齐更直观的方式向用户展示了内核的各种参数。/proc将会向sysfs迁移。
另外,通过ioctl(input/output control)system call和Netlink接口也可以向内核发送命令,执行内核参数配置工作,大多数的网络配置参数都可以用这两个接口修改。ifconfig和route命令使用ioctl接口,IPROUTE2使用Netlink接口。
网络的ioctl命令在include/linux/sockios.h中定义。这些命令被定义成类似于SIOCSIFMTU的宏,宏的命令规则是这样 的,开头四个字符SIOC代表ioctl命令;S表示set,G表示get;if表示接口类型;MTU表示mtu。其它字符的表示方式还有:ADD表示添 加,RT表示路由等。
来自http://zonghe.17xie.com/book/10128307/54053.html