![设备驱动程序是内核的一部分还是内核的扩展?](https://linux22.com/image/1584262/%E8%AE%BE%E5%A4%87%E9%A9%B1%E5%8A%A8%E7%A8%8B%E5%BA%8F%E6%98%AF%E5%86%85%E6%A0%B8%E7%9A%84%E4%B8%80%E9%83%A8%E5%88%86%E8%BF%98%E6%98%AF%E5%86%85%E6%A0%B8%E7%9A%84%E6%89%A9%E5%B1%95%EF%BC%9F.png)
我想知道内核的确切定义是什么(不确定是否对一个定义达成一致)。
我们可以说内核是由不能从中删除的组件组成的吗?例如:我们不能从内核中删除进程调度程序或中断处理程序。
但是我们可以删除设备驱动程序(因此内核工作时设备驱动程序不是必需的),所以我们可以说设备驱动程序实际上不是内核的一部分而是内核的扩展吗?
答案1
(注意 Linux 标签),我认为您不能将删除设备驱动程序的能力归类为与其是否是内核的一部分相关,因为很有可能编译内置驱动程序的内核 - 这是一种平衡行为,既要有足够的东西让系统能够正确启动,又不能有太多东西不被太多人使用而浪费内存。我认为,如果事物是内核的一部分或内核的扩展,那么除了特定对话的参与者之外,无法真正解决语义问题。
此链接将内核视为硬件平台之上和用户空间之下的所有内容,作为内核的一部分 - 显然包括设备驱动程序,这是一个可靠且合理的定义。
也许定义 Linux 内核的另一种方式是“Linux 中由 Linus Torvalds 监管的部分”,使用这种方式可以帮助人们澄清内核扩展的含义。当然,由于 FUSE 之类的东西,这变成了一条灰线。(即用户空间中的文件系统)