【问题标题】:Difference/relationship between Kernel/Microkernel/Hypervisor内核/微内核/管理程序之间的差异/关系
【发布时间】:2017-12-23 09:29:51
【问题描述】:

我是这个话题的新手。 我一直在网上冲浪以寻找有关该主题的信息,现在,我也更加困惑。如果我没记错的话,他们会管理硬件并在用户空间和设备的真实物理部分之间建立连接(如果不是这样,请纠正我)。但两者之间的真正区别是什么?我如何对它们进行分类?我正在寻找的是一个明确的答案,它可以促使我获得正确的参考,以便更好地理解和深入研究该领域。

【问题讨论】:

    标签: kernel hypervisor microkernel


    【解决方案1】:

    从学术角度来看,以下内容可能不是 100% 准确,但我相信抓住了它的精髓:

    内核 - 一个程序,其目的是控制和多路复用硬件以使其他程序受益。通常在 CPU 的最高特权操作模式下运行。操作系统的最里面的组件。

    内核的两个示例任务是 (1) 调度,即允许不同的程序共享 CPU,每个程序都保证(或多或少)公平地共享 CPU 和 (2) 提供一个文件系统,它允许不同的程序访问存储设备,例如磁盘。

    内核的一个典型例子是Linux

    微内核 - 一种用于构建内核的特定架构,其中采用模块化方法将内核程序分割成一组独立且可替换的代码模块。该设计允许以较低的特​​权级别运行通常与内核相关的一些功能。

    重用之前的例子,微内核仍然会处理调度,但是文件系统和磁盘访问,通常会被实现为一个程序,以比微内核本身更低的权限运行,使用客户端/服务器方法连接到哪些其他程序以访问磁盘资源。

    微内核的主要示例是GNU Hurd

    Hypervisor - 一个程序,其目的是控制和复用其他内核的硬件。通常运行在比为此目的而发明的内核更高的特权级别。允许在多个操作系统或其实例之间共享单个硬件。管理程序与内核的不同之处在于它们的接口——内核公开了一个系统调用编程接口,例如 POSIX,而管理程序接口(如作为来宾运行的操作系统所观察到的)主要看起来只是一个“裸”的 CPU 和硬件,具有为了半虚拟化形式的性能,该原则的可选偏差是可能的。

    如果我们再次以上面的示例服务为例,管理程序中的调度与内核的调度本质上没有什么不同(除了调度的实体是操作系统虚拟 CPU 而不是单个程序),但管理程序通常不会公开文件系统接口,而是将看起来像原始存储设备的东西(例如磁盘)暴露给它控制的客户操作系统。

    管理程序的一个很好的例子是KVM,有趣的是它是一个内置在内核中的管理程序(内核是Linux)。

    【讨论】:

    • 如果您可以添加更多信息和更多细节(甚至可能有一些示例),那么答案可以被认为是完整的!
    • @Leos313 更好吗? :-)
    • 更好:) 在我的空闲时间我会尝试添加更多细节来扩展答案
    【解决方案2】:

    简短的回答是,微内核是虚拟机管理程序的一种可能实现(正确的实现,恕我直言),但可以做的不仅仅是提供虚拟机。 您可以阅读有关微内核和虚拟机管理程序的更多信息,here

    【讨论】:

      猜你喜欢
      • 2012-07-14
      • 2012-10-24
      • 2012-04-21
      • 2019-02-20
      • 2014-05-22
      • 2014-03-08
      • 1970-01-01
      • 2019-02-23
      • 2018-06-10
      相关资源
      最近更新 更多