核心与核心模块
-
核心: /boot/vmlinuz 或 /boot/vmlinuz-version;
-
核心解压缩所需 RAM Disk: /boot/initrd (/boot/initrd-version);
-
核心模块: /lib/modules/version/kernel 或 /lib/modules/$(uname -r)/kernel;
-
核心原始码: /usr/src/linux 或 /usr/src/kernels/ (要安装才会有,默认不安装)
如果该核心被顺利的加载系统当中了,那么就会有几个资讯纪录下来:
-
核心版本: /proc/version
-
系统核心功能: /proc/sys/kernel
核心模块与相依性
既然要处理核心模块,自然就得要了解了解我们核心提供的模块之间的相关性啦! 基本上,核心模块的放置处是在 /lib/modules/$(uname -r)/kernel 当中,里面主要还分成几个目录:
arch :与硬件平台有关的项目,例如 CPU 的等级等等; crypto :核心所支持的加密的技术,例如 md5 或者是 des 等等; drivers :一些硬件的驱动程序,例如显卡、网络卡、PCI 相关硬件等等; fs :核心所支持的 filesystems ,例如 vfat, reiserfs, nfs 等等; lib :一些函式库; net :与网络有关的各项协议数据,还有防火墙模块 (net/ipv4/netfilter/*) 等等; sound :与音效有关的各项模块;
如果要我们一个一个的去检查这些模块的主要资讯,然后定义出他们的相依性, 我们可能会疯掉吧!所以说,我们的 Linux 当然会提供一些模块相依性的解决方案罗~ 对啦!那就是检查 /lib/modules/$(uname -r)/modules.dep 这个文件啦!他记录了在核心支持的模块的各项相依性。
-A :不加任何参数时, depmod 会主动的去分析目前核心的模块,并且重新写入 /lib/modules/$(uname -r)/modules.dep 当中。若加入 -A 参数时,则 depmod 会去搜寻比 modules.dep 内还要新的模块,如果真找到新模块,才会升级。 -n :不写入 modules.dep ,而是将结果输出到萤幕上(standard out); -e :显示出目前已加载的不可运行的模块名称范例一:若我做好一个网络卡驱动程序,档名为 a.ko,该如何升级核心相依性? [root@www ~]# cp a.ko /lib/modules/$(uname -r)/kernel/drivers/net [root@www ~]# depmod
核心模块的观察
那你到底晓不晓得目前核心加载了多少的模块呢?粉简单啦!利用 lsmod 即可!
[root@www ~]# lsmod Module Size Used by autofs4 24517 2 hidp 23105 2....(中间省略)....8139too 28737 0 8139cp 26305 0 mii 9409 2 8139too,8139cp <==mii 还被 8139cp, 8139too 使用....(中间省略)....uhci_hcd 25421 0 <==底下三个是 U盘 相关的模块!ohci_hcd 23261 0 ehci_hcd 33357 0 |
本文转自岁月丶倾城博客51CTO博客,原文链接http://blog.51cto.com/alca0126/1547467如需转载请自行联系原作者
laihuadongcto