Linux之内核模块
2017-12-17 14:47
155 查看
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
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
相关文章推荐
- 【转载】从 2.4 到 2.6:Linux 内核可装载模块机制的改变对设备驱动的影响
- 在Ubuntu上为Android系统编写Linux内核驱动程序 + 编写加载动态模块ko
- linux-2.6内核模块引用计数的实现
- Linux 2.6内核的编译步骤及模块的动态加载
- linux-2.6内核模块引用计数的实现
- 从 2.4 到 2.6:Linux 内核可装载模块的区别和变化
- Linux 驱动开发之内核模块开发 (二)—— 内核模块编译 Makefile 入门
- Linux 内核 给模块传递参数
- 谢烟客---------Linux之理解内核、内核模块、编译内核
- Linux 2.6内核驱动之hello模块
- 在 Linux 下用户空间与内核空间数据交换的方式,第 1 部分: 内核启动参数、模块参数与sysfs、sysctl、系统调用和netlink
- Linux 内核模块编程
- Linux下hello.ko内核模块制作的全过程
- linux模块编程(二)——运行不息的内核线程kthread
- Linux内核参数和模块参数
- 装卸Linux系统内核模块分析
- s3c2440移植linux(转载) 以及内核模块的自定义安装
- 记linux内核处理bootargs到内核并加载模块时传入参数(module_param_named()等)
- (转载) 在 Linux 下用户空间与内核空间数据交换的方式,第 1 部分: 内核启动参数、模块参数与sysfs、sysctl、系统调用和netlink
- 基于linux2.6.30.4内核的DM9000网卡驱动编译成模块成功ping通