Linux内核采用的是模块化技术,这样保证了内核的可维护性和可扩展性。模块化设计允许我们在需要时才将某个模块加载到内核,实现动态内核的调整。
Linux内核模块的命名方式通常为“模块名称.ko”,在CentOS 7中内核模块被集中存储在/lib/modules目录下。
对内核模块的基本操作:
1 查看内核模块:
[root@test modules]# lsmod | head
Module Size Used by
tcp_diag 693 0
inet_diag 7882 1 tcp_diag
ip_vs_wrr 1639 0
ip_vs 103551 2 ip_vs_wrr
libcrc32c 841 1 ip_vs
ip6t_REJECT 3731 2
nf_conntrack_ipv6 6588 3
nf_defrag_ipv6 16175 1 nf_conntrack_ipv6
xt_state 1064 3
输出的三列信息,分别是内核模块的名称、占用内存大小、是否被使用,如果第三列为0,则该模块可以随时卸载,否则无法被卸载。

2 动态加载和卸载内核模块;
[root@test modules]# modprobe ip_vs

[root@test modules]# lsmod | grep ip_vs #查看模块是否加载成功
ip_vs_wrr 1639 0
ip_vs 103551 2 ip_vs_wrr

3 动态卸载模块:
[root@test modules]# modprobe -r ip_vs

4 查看内核模块信息:、
[root@test modules]# modinfo ip_vs
filename: /lib/modules/2.6.32-696.el6.i686/kernel/net/netfilter/ipvs/ip_vs.ko
license: GPL
srcversion: 0FB85919D62C4255E412E5C

5 如果要永久性加载模块,可以这样做:
[root@test modules]# echo "modinfo ip_vs" >> /etc/rc.d/rc.local