目录:
内核模块路径
查看已加载的内核
加载与卸载内核模块
修改内核参数
Linux内核采用的是模块化技术,这样的设计使得系统内核可以保持最小化,同时确保了内核的可扩展性与可维护性,模块化设计允许我们在需要时才将模块加载至内核,实现动态内核调整。本文重点关注方法与思路,具体实现可以参考kernel-doc文档。
2.9.1 内核模块存放位置
Linux内核模块文件的命名方式通常为<模块名称.ko>,CentOS 6.3系统的内核模块被集中存放在/lib/modules/`uname -r`/[1]目录下(uname -r获得的信息为当前内核的版本号)。下面通过几个实例说明对内核模块的基本操作。
2.9.2 查看已加载内核模块
lsmod命令用来显示当前Linux内核模块状态,不是使用任何参数会显示当前已经加载的所有内核模块。输出的三列信息分别为模块名称、占用内存大小、是否在被使用,如果第三列为0则该模块可以随时卸载,非0则无法执行modprobe删除模块。
- [root@centos6 ~]# lsmod
- Module Size Used by
- bridge 79950 0
- stp 2173 1 bridge
- llc 5642 2 bridge,stp
- fuse 66891 2
- autofs4 27212 3
- sunrpc 263516 1
- ipt_REJECT 2351 2
- nf_conntrack_ipv4 9506 2
- nf_defrag_ipv4 1483 1 nf_conntrack_ipv4
- iptable_filter 2793 1
- ip_tables 17831 1 iptable_filter
- (部分输出省略)
|
2.9.3 加载与卸载内核模块
modprobe命令可以动态加载与卸载内核模块:
- [root@centos6 ~]# modprobe ip_vs #动态加载ip_vs模块
- [root@centos7 ~]# lsmod |grep ip_vs #查看模块是否加载成功
- [root@centos7 ~]# modprobe -r ip_vs #动态卸载ip_vs模块
|
modinfo命令可以查看内核模块信息:
- [root@centos7 ~]# modinfo ip_vs
- filename: /lib/modules/2.6.32-279.el6.x86_64/kernel/net/netfilter/ipvs/ip_vs.ko
- license: GPL
- srcversion: 01386EABC060B63920E181B
- depends: ipv6,libcrc32c
- vermagic: 2.6.32-279.el6.x86_64 SMP mod_unload modversions
|