内核模块
在整个启动的过程中,是否能成功的驱动我们主句的硬件设备,是内核完成的工作,而内核一般都是压缩文档,在使用之前内核之前必须要将内核减压到的内存中。
为了应对日新月异的硬件,目前内核都具有可读取模块化驱动程序的功能,也就是所谓的(modules模块化)所谓模块化。
内核与内核模块放在:
.内核:/boot/vmlinuz或/boot/vmlinuz-version
.内核解压缩所需的RAM Disk:/boot/initrd(/booy/initrd-version)
.内核模块:/lib/modules/version/kernel或/lib/modules/$(uname-r)/kernel;
.核心代码:/usr/src/linux或/usr/kernels/(要安装才会有,默认不会安装)
如果内核被顺利的加载系统当中,那么就会有几个日志信息记录下来:
.内核版本:/proc/version
.系统核心功能:/proc/sys/kernel
如果新的硬件,而系统不支持,怎么办?
.重新编译内核,并加入最新的硬件驱动程序原始码
.将该硬件的去东莞程序编译成为模块,启动时加载该模块
核心模块直接的相关性
arch:与硬件平台有关的项目,例如CPU
crypto:核心所支持的加密技术,例如md5或者des等等
drivers:一些硬件的驱动程序,例如显卡,网卡,PCI相关的硬件等
fs:内核所支持的filesystem
lib:一些函数库
net:与网络相关的各项协议数据
sound:与音效有关的各项模块
如果手动的一个一个去检查模块信息,然后去定义存储他们的相关性,我们可能会累死,所以Linux当然会提供一些
模块相关性的解决方案,那就是检查/lib/modules/$(uname -r)/modules.dep 文件,生成这个文件可以使用
depmod [-Ane]
-A:不加任何参数时,depmod会主动的去分析目前的模块,并且重新写入/lib/modules/$(uname-r)/modiles.dep
当中,若加入-A参数时,则depmod会去搜寻比modules.dep内还要更新的模块,如果真找到新模块,才会升级。
-n:不写入modules.dep,而是将结果输出到屏幕上
-e;显示出目前已加载的不可运行的模块名称
核心模块的查看:
lsmod:显示内容包括有:
.模块名称(Module)
.模块大小(size)
.此模块是否被其他模块所使用过(Used by other modules)
查看每个模块的信息:
modinfo [-adln] [module_name][file_name]
-a:仅列出作者名称
-d:仅列出该modules的说明
-l:仅列出授权(license)
-n:仅列出该模块的详细路径。
内核模块的加载与移除
insmod [/full/path/module_name] [parameters]
移除模块:
rmmod [-fw] module_name
-f:forece
-w:wait,若该模块正在使用,则rmmod会等待该模块使用完毕,才移除他
modprobe [-lcfr] module_name :无需完整路径名即可
-c :列出目前所有系统的模块
-l :列出目前在/lib/modules/`uname -r`/kernel
-f :强制加载该模块
-r :类似rmod,remove
核心模块的额外参数配置:/etc/modprobe.conf,现在的新版Centos已经默认没有这个配置文件了,当然你可以自己创建,现在配置文件是一个文件夹/etc/modprobe.d/*
aliasing :使用模块别名加载移除
blacklist:阻止kernel加载某些模块:假如要禁止使用pcskr,使用方法
在目录下配置这个文件:/etc/modprobe.d/blacklist.conf
语法:#Do not load the ‘pcspkr’modules on boot
blacklist pcspkr
在整个启动的过程中,是否能成功的驱动我们主句的硬件设备,是内核完成的工作,而内核一般都是压缩文档,在使用之前内核之前必须要将内核减压到的内存中。
为了应对日新月异的硬件,目前内核都具有可读取模块化驱动程序的功能,也就是所谓的(modules模块化)所谓模块化。
内核与内核模块放在:
.内核:/boot/vmlinuz或/boot/vmlinuz-version
.内核解压缩所需的RAM Disk:/boot/initrd(/booy/initrd-version)
.内核模块:/lib/modules/version/kernel或/lib/modules/$(uname-r)/kernel;
.核心代码:/usr/src/linux或/usr/kernels/(要安装才会有,默认不会安装)
如果内核被顺利的加载系统当中,那么就会有几个日志信息记录下来:
.内核版本:/proc/version
.系统核心功能:/proc/sys/kernel
如果新的硬件,而系统不支持,怎么办?
.重新编译内核,并加入最新的硬件驱动程序原始码
.将该硬件的去东莞程序编译成为模块,启动时加载该模块
核心模块直接的相关性
arch:与硬件平台有关的项目,例如CPU
crypto:核心所支持的加密技术,例如md5或者des等等
drivers:一些硬件的驱动程序,例如显卡,网卡,PCI相关的硬件等
fs:内核所支持的filesystem
lib:一些函数库
net:与网络相关的各项协议数据
sound:与音效有关的各项模块
如果手动的一个一个去检查模块信息,然后去定义存储他们的相关性,我们可能会累死,所以Linux当然会提供一些
模块相关性的解决方案,那就是检查/lib/modules/$(uname -r)/modules.dep 文件,生成这个文件可以使用
depmod [-Ane]
-A:不加任何参数时,depmod会主动的去分析目前的模块,并且重新写入/lib/modules/$(uname-r)/modiles.dep
当中,若加入-A参数时,则depmod会去搜寻比modules.dep内还要更新的模块,如果真找到新模块,才会升级。
-n:不写入modules.dep,而是将结果输出到屏幕上
-e;显示出目前已加载的不可运行的模块名称
核心模块的查看:
lsmod:显示内容包括有:
.模块名称(Module)
.模块大小(size)
.此模块是否被其他模块所使用过(Used by other modules)
查看每个模块的信息:
modinfo [-adln] [module_name][file_name]
-a:仅列出作者名称
-d:仅列出该modules的说明
-l:仅列出授权(license)
-n:仅列出该模块的详细路径。
内核模块的加载与移除
insmod [/full/path/module_name] [parameters]
移除模块:
rmmod [-fw] module_name
-f:forece
-w:wait,若该模块正在使用,则rmmod会等待该模块使用完毕,才移除他
modprobe [-lcfr] module_name :无需完整路径名即可
-c :列出目前所有系统的模块
-l :列出目前在/lib/modules/`uname -r`/kernel
-f :强制加载该模块
-r :类似rmod,remove
核心模块的额外参数配置:/etc/modprobe.conf,现在的新版Centos已经默认没有这个配置文件了,当然你可以自己创建,现在配置文件是一个文件夹/etc/modprobe.d/*
aliasing :使用模块别名加载移除
blacklist:阻止kernel加载某些模块:假如要禁止使用pcskr,使用方法
在目录下配置这个文件:/etc/modprobe.d/blacklist.conf
语法:#Do not load the ‘pcspkr’modules on boot
blacklist pcspkr