当我在分区后以专家模式设置全新的 Ubuntu Server 安装时,您必须选择 Linux 内核。显示大约 5 个选项,如 Linux-generic、Linux-image-... 等。标准选择是 Linux-generic,但我不知道该选择哪一个。
有人能解释一下要使用哪个内核以及为什么吗?这通常会产生什么影响?内核之间有什么区别?内核是什么意思?
答案1
以下内容适用于 MAAS https://docs.maas.io/2.1/en/installconfig-nodes-ubuntu-kernels
列出
- 一般的
- 硬件支持内核(18.04 LTS 将升级并使用 18.10 内核,然后是 19.04,然后是 19.10,最后是 20.04,这对于非常现代的硬件很有用)低
- 低延迟内核(见下文)
更多内核选项可以通过以下方式查看https://help.ubuntu.com/community/UbuntuStudio/RealTimeKernel
内核类型
-通用内核 - 这是 Ubuntu 默认提供的普通内核。
-preempt 内核 - 此内核基于 -generic 内核源代码树,但采用不同的配置(设置)构建以减少延迟。也称为软实时内核。
-rt 内核 - 基于 Ubuntu 内核源代码树,并应用了 Ingo Molnar 维护的 PREEMPT_RT 补丁。也称为硬实时内核。
-lowlatency 内核 - 与 -preempt 内核非常相似,基于 -generic 内核源代码树,但使用更积极的配置来进一步减少延迟。也称为软实时内核。
-实时内核 - 基于 vanilla 内核源代码树,并应用了 Ingo Molnar 维护的 PREEMPT_RT 补丁。也称为硬实时内核。
内核混乱
关于 -lowlatency 和 -realtime 内核的用途仍然存在一些混淆。
-realtime 和 -rt(硬实时)内核的目标是不惜一切代价实现尽可能低的延迟。用技术术语来说,“硬实时系统应该始终满足其最后期限”。因此,开发人员应该使用最先进的编程技术(休眠自旋锁、PI 互斥、完全抢占、IRQ 线程等),并牺牲可靠性、节能和吞吐量等。应该分析内核的几乎所有部分,以确保始终发生正确的行为。
-preempt 和 -lowlatency(软实时)内核的目标是实现良好的实时特性,同时提供受欢迎的特性,如坚如磐石的可靠性、良好的节能特性以及良好的吞吐量。但这样并不能保证在所有条件下都具有最低的延迟。
我列出了 MAAS,因为我确信它会是你所获得的 5 个选项中的 3 个,我不记得你提到的 5 个选项是什么,但另一个参考资料涵盖了低延迟
--
我将提供 HWE 或硬件支持堆栈的链接。使用 HWE 可获得最新内核(具有更多功能和内核模块 [驱动程序]),适用于最新硬件,但会损失 [微小?] 稳定性(主要是它们测试较少,尤其是在生产中)
https://wiki.ubuntu.com/Kernel/LTSEnablementStack https://wiki.ubuntu.com/Kernel/RollingLTSEnablementStack
最终这是你的选择(你最了解你的硬件、最终用途等);但我猜对我们当中的 90% 以上的人来说它是通用内核。