Docker与Mirage OS之类的exokernal方法有什么关系?

Docker与MirageOS之类的exokernal方法有什么关系?

有关MirageOS的一些信息,请参阅:

  • http://www.xenproject.org/developers/teams/mirage-os.html
  • http://www.se-radio.net/2014/05/episode-204-anil-madhavapeddy-on-the-mirage-cloud-operating-system-and-the-ocaml-language/
  • http://openmirage.org (官方网站)

这是非常不同的。

Mirage有效地在虚拟机上运行应用程序,并将其剥离,只留下应用程序所需的系统部分。 结果是只需要虚拟机pipe理程序的非常小的虚拟机就可以运行。 每一台机器都是一台独立的机器,与虚拟机一样与所有其他机器相隔离。

Docker通过使用联合文件系统尽可能地共享来节省资源。 图中至less还有一个全尺寸的操作系统,但它在使用该基本映像的所有容器之间共享。 所有的容器都在一个主机操作系统中运行,并且使用诸如容器和命名空间之类的Linux机制而不是独立的虚拟机相互隔离。

这篇Linux新闻文章中有一个很好的例子,说明了Docker和虚拟机之间的区别。 Mirage采取的方法是使虚拟机(左图)非常小。

总之: 幻影缩水; Docker股票

免责声明 :我不知道exokernels的概念,只是在维基百科上阅读它们。 但是我知道Docker,这就是我如何把它放在一起。

Exokernels提供尽可能less的抽象。 它们使得应用程序可以直接与机器的硬件进行通信。 见http://en.wikipedia.org/wiki/Exokernel

在另一个网站上的Docker是完全相反的。 它是在现有操作系统之上构build的另一个抽象。 因此,Docker不仅抽象硬件(使用Linux),还通过在不同的机器上提供相同的环境(例如,您可以在CentOS机器上运行Ubuntu容器)来抽象操作系统。

所以我会说Docker与exokernels非常相反。 它的目的是要抽象得多,而外核似乎是相反的,尽量less抽象。

我没有看到两者之间的进一步关系。