在 Ubuntu 中安装内核时(例如http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.0-vivid/),这些文件分别是什么:
linux-headers-4.0.0-xxx_all.deb
linux-headers-4.0.0-xxx-generic_xxx_i386/amd64.deb
linux-image-4.0.0-xxx-generic_xxx_i386/amd64.deb
linux-headers-4.0.0-xxx-lowlatency_xxx_i386/amd64.deb
linux-image-4.0.0-xxx-lowlatency_xxx_i386/amd64.deb
答案1
Debian(以及 Ubuntu 和其他衍生版本)将 Linux 内核包分为几个部分:
linux-image-VERSION-PATCHLEVEL-FLAVOR
包含由引导加载程序加载的内核映像,该文件包含符号表(由某些系统工具使用)、包含内核配置的文件(为系统管理员提供信息)以及可以动态加载的模块。这是系统正常使用所需要的包。linux-headers-VERSION-PATCHLEVEL-FLAVOR
包含标头随内核源一起提供或在内核编译期间生成。编译第三方内核模块需要这些头文件。linux-libc-dev
包含用于编译用户空间程序的标头。这些标头是向后兼容的(与用于编译内核模块的标头不同),因此无需安装多个版本。linux-doc-VERSION
包含内核文档。它对于编写内核模块或诊断内核行为的人很有用。linux-source-VERSION
包含内核源代码。想要编译自己的内核的人可以安装这个二进制包并解压其中包含的存档。linux-tools-VERSION
包含依赖于内核版本的工具。目前只有perf
。
包装有特色版本(上游版本)来自补丁级别(每次影响二进制兼容性的更改都会增加)。错误修复可能会影响二进制兼容性,因此需要重新编译模块,因此必须可以安装多个补丁级别的内核(以及头文件和第三方模块),以便您可以同时拥有正在运行的内核和正在运行的内核的文件您下次重新启动时将同时安装的内核文件。每个版本的文档和源代码都有一个包,因为不需要针对不同的补丁级别拥有它们的多个副本。
不同之处味道s 对应内核编译选项。某些内核选项是折衷的,例如支持具有大物理内存的计算机(以内核内存的开销为代价)或仅支持具有小物理内存的计算机(开销较小但最大 RAM 量较小)。
在当前版本的 Ubuntu 中,只有两种内核风格:“通用”(适用于大多数计算机)和“低延迟”(这使得程序更具反应性,但会增加一点 CPU 开销,请参阅https://askubuntu.com/questions/126664/why-to-choose-low-latency-kernel-over-generic-or-realtime-ones)。 Debian 还有更多,其中大部分仅在特定架构上有意义。
除了具有完整版本号的包之外,还有包名称中不包含版本号的元包。这样,您就可以安装linux-image-generic
始终依赖于最新软件包的eg。例如,版本 3.13.0.42 取决于,版本 3.13.0.43 取决于,等等。随着软件包升级,会引入更新的内核软件包。linux-image-VERSION-PATCHLEVEL-generic
linux-image-generic
linux-image-3.13.0-42-generic
linux-image-generic
linux-image-3.13.0-43-generic
linux-image-generic