Fedora 上那些内核包

Fedora 上和内核相关的包很多,运行下面的命令看一下:


~% repoquery -q ‘kernel*’
kernel-0:2.6.35.11-83.fc14.x86_64
kernel-debug-0:2.6.35.11-83.fc14.x86_64
kernel-debug-debuginfo-0:2.6.35.6-45.fc14.x86_64
kernel-debug-devel-0:2.6.35.11-83.fc14.x86_64
kernel-debuginfo-0:2.6.35.6-45.fc14.x86_64
kernel-debuginfo-common-x86_64-0:2.6.35.6-45.fc14.x86_64
kernel-devel-0:2.6.35.11-83.fc14.x86_64
kernel-doc-0:2.6.35.11-83.fc14.noarch
kernel-headers-0:2.6.35.11-83.fc14.x86_64



我们一一看一下这些包的内容和用途。

kernel 这个包不言而喻了,必备的,里面包含了vmlinuz,initramfs,以及所有内核模块,也就是/lib/modules/uname -r下面的东东。

kernel-devel 这个包是给开发内核驱动,写内核模块的人用的,里面包含了内核源代码中的头文件,Kconfig文件,Makefile等等。

kernel-headers 这个包是给glibc 等用户空间的库、程序使用的,它提供内核导出到用户空间的所有头文件,主要在/usr/include/linux/中,这样以来用户空间就可以和内核使用相同的常量,结构体定义等等。

kernel-doc 这个包提供内核文档,即源代码 Documentation/目录下的文档,不过里面包含了make htmldocs 和 make mandocs 之后的文档。

kernel-debug 和 kernel 包类似,但编译时使用的是带debug选项的config文件。

kernel-debug-devel 同理,和 kernel-devel 包类似。

kernel-debuginfo,给SystemTap在 kernel 上使用的。 kernel-debug-debuginfo 同理,供 SystemTap在 kernel-debug 上使用。 而 kernel-debuginfo-common 包为它们提供一些共同的源文件。注意,kernel-debuginfo 包提供vmlinux! 像 crash 这样的工具也需要它。

这里似乎少了一个 kernel-firmware,原来在 Fedora 上它已经改名为 linux-firmware 了,但是在RHEL上面没改,里面提供内核源代码目录 firmware/ 里面的固件。

当然了,因为 perf 也在内核源代码树中,所以 perf 这个包也是从同一个spec文件生成的。