深入探索 Linux 内核定制:从模块管理到内核编译
1. 引言
Linux 内核作为操作系统的核心,与计算机硬件紧密交互。通过定制内核,我们可以提供额外的硬件支持、改变现有硬件支持方式,还能优化系统性能。本文将详细介绍 Linux 内核定制的相关知识,包括内核模块的使用、新内核的编译以及内核补丁的应用。
2. 内核模块
2.1 模块概述
许多设备驱动和内核特性既可以编译进内核,也可以作为模块插入内核,以减小内核大小。通常,标准设备支持编译进内核,其他设备和特性的支持以模块形式存在。例如,由于声卡和网卡制造商众多,这些组件的驱动通常以模块形式存在,而 IDE 硬盘支持因常用而编译进内核。
2.2 模块存储位置
模块通常存储在/lib/modules/<kernel-version>目录的子目录中。例如,查看 2.6.5 - 1.358 内核的部分网卡驱动模块,可使用以下命令:
[root@server1 root]# ls -F /lib/modules/2.6.5-1.358/kernel/drivers/net/ 3c501.ko* b44.ko* forcedeth.ko* ppp_async.ko* starfire.ko* 3c503.ko* bonding/ hamachi.ko* ppp_deflate.ko* sundance.ko* 3c505.ko* cs89x0.ko* hp100.ko* ppp_generic.ko* sungem.ko* 3c507.ko* d