如今 (18.04+) 有更多的内核风格,但并非所有的风格都有很好的描述。我看到这些:
generic
,默认值,可能带有-hwe
分支;virtual
— 与 相同generic
但不包括modules-extra
。也可以有-hwe
分支;kvm
;azure
,,,aws
——针对云提供商gcp
;gke
oem
- 那是谁?;oracle
— 什么 Oracle 系统?
那么,我该如何选择?例如,VPS 可能不需要generic
内核,virtual
需要的宝贵磁盘空间要少得多,但也许kvm
更好?首先,它们有什么区别?
Wiki 上有一个关于这个主题的页面(https://wiki.ubuntu.com/Kernel/Dev/Flavours),但它已经过时了。
答案1
Ubuntu 内核团队有一个专门网站链接到有关 Ubuntu 内核软件包和版本的各种报告。从那里,查看软件包版本快速查看当前可用的 Ubuntu 版本上维护了哪些内核。
为 Ubuntu 预先打包的内核版本列表:
linux
提供通用内核(12.04+)linux-hwe
提供 UbuntuLTS 支持堆栈linux-hwe-edge
内核比linux-hwe
linux-kvm
为虚拟系统提供内核(16.04+)linux-aws
为 Amazon Web Services (14.04+) 提供内核linux-aws-edge
linux-aws
内核比(16.04+) 新linux-aws-hwe
可能会提供比linux-aws-edge
linux-azure
为 Azure 系统 (14.04+) 提供内核linux-euclid
为 Intel Euclid 系统 (16.04) 提供内核linux-gcp
为 Google Cloud Platform (16.04+) 提供内核linux-gcp-edge
可提供比linux-gcp
(18.04)更新的内核linux-oem
提供内核原始设备制造商包括戴尔、联想、宏碁等系统(16.04+)linux-oem-osp1
linux-oem
内核比(18.04+)新linux-oracle
为 Oracle 系统 (16.04+) 提供内核linux-oracle-edge
linux-oracle
内核比(尚未发布)更新linux-raspi2
为 BCM2709 架构 (16.04+) 提供内核linux-snapdragon
为 Qualcomm Snapdragon 410c 架构(16.04+)提供内核
这里列出的不包括一些在软件包版本,但在Ubuntu 软件包搜索。每个描述都改编自 Ubuntu 软件包或apt-cache show <package>
命令中的描述。
那么,我该如何选择?
不可否认,没有明确的指南来根据具体情况选择使用哪种内核。
最终用户通常不需要选择不同的 Linux 内核,例如,在虚拟机中安装 Ubuntu Desktop 时,它就可以正常工作。如果提供下载图片不能满足需求,而用户必须决定使用哪个内核,那么很可能用户需要询问提供运行 Ubuntu 服务的人。他们应该有答案。
首先,有什么区别呢?
一句话:优化。
最终用户通常不会去了解每个为 Ubuntu 预装的内核都做了哪些优化。除非文档写得正确,否则很难知道它们有什么区别。有一个地方可以找到答案:Changelog。
更新日志针对每个软件包和当前支持的版本。例如,linux
bionic的更新日志已经注意到与各种平台的优化相关的更多变化,同时linux-kvm
bionic的更新日志已经注意到更多与容器(操作系统级虚拟化)相关的变化。
总结最终用户无需选择,而是使用 Ubuntu 映像中包含的任何内核。否则,请寻找具有相关知识的人——服务提供商或任何人。