内核与内核模块
先来看一下,内核与内核模块放在哪?这里以centos6为例
- 内核: /boot/vmlinuz或/boot/vmlinuz-version
- 内核解压所需要RAMDisk: /boot/initrc(/boot/initrc-version)
- 内核模块:/lib/modules/version/kernel或/lib/modules/uname -r/kernel
- 内核源码:/usr/src/linux (安装过才会有,默认无)
- 内核版本:/proc/version
- 系统内核功能:/proc/sys/kernel
内核模块
我们先来看一下内核文件
内核模块的存放位置,打开/lib/modules/version/kernel或/lib/modules/uname -r/kernel
arch crypto drivers fs kernel lib mm net sound
(1)arch :与硬件平台有关的选项,如 CUP等
(2)crypto:加密相关的技术
(3)drives:硬件驱动程序,如显卡、网卡。
(4)fs:文件系统
(5)lib:函数库
(6)net:网络相关的各项协议数据,和防火墙模块
(7)sound:声音有关的模块
内核模块的查看
我们如何知道系统加载了哪些模块
lsmod 命令
lsmod Module Size Used by nls_utf8 1455 0 fuse 79892 2 autofs4 27000 3 8021q 20475 0 garp 7152 1 8021q ... 部分省略 ... ib_mad 41340 3 ib_umad,ib_cm,ib_sa ib_core 82732 10 ib_ipoib,rdma_ucm,ib_ucm,ib_uverbs,ib_umad,rdma_cm,ib_cm,iw_cm,ib_sa,ib_mad ib_addr 8304 3 rdma_ucm,rdma_cm,ib_core ... 部分省略 ... e1000 134799 0 vmware_balloon 7199 0 sg 29350 0 i2c_piix4 11232 0 shpchp 29130 0 ext4 381065 3 ... 部分省略 ... dm_mirror 14864 0 dm_region_hash 12085 1 dm_mirror dm_log 9930 2 dm_mirror,dm_region_hash dm_mod 102467 2 dm_mirror,dm_log
其中我们可以看到我们已经见过的模块,例如,e1000网卡驱动模块,ext4文件系统模块等等
如果想要看更详细的模块信息,我们可以使用modinfo命令
modinfo的用法格式
modinfo [ adln ] [ modulename|filename… ]
-a ;仅列出作者名称 -d : 仅列出modules的说明 -l : 仅列出授权 -n : 仅列出指定模块的详细路径
示例
[root@Centos6 ~]#modinfo ext4 filename: /lib/modules/2.6.32-696.el6.x86_64/kernel/fs/ext4/ext4.ko license: GPL description: Fourth Extended Filesystem author: Remy Card, Stephen Tweedie, Andrew Morton, Andreas Dilger, Theodore Ts'o and others srcversion: 74AEE2BDA63AC8482A78F4D depends: mbcache,jbd2 vermagic: 2.6.32-696.el6.x86_64 SMP mod_unload modversions 我们可以看出这个模块的来源,以及模块的较为简单的说明
模块的加载与删除
当我们想要自己加载需要的模块,需要用到一个简单的命令,modprobe
modprobe格式的用法
modprobe [-lcfr] module_name modprode 后直接指定模块名即可,不用写出其绝对路径,十分简单方便 相关参数
-l :列出当前系统中所有模块完整文件名 -c :列出所有模块 -f :强制加载模块 -r :删除指定模块
示例
# 加载cifs模块 [root@Centos6 ~]#modprobe cifs
# 删除cifs模块 [root@Centos6 ~]#modprobe -r cifs
原创文章,作者:M25_ymd,如若转载,请注明出处:http://www.178linux.com/86283