看到作者列表中熟悉的名字,就知道这是来自"The Xen guys"的声音。Xen的大获成功毫无疑问大大提高了他们的影响力,更多的人愿意聆听他们对OS的理解;当然,也有少数人不愿意听到这样的理解(如Heiser)。
2000年,Rob Pike发表"Systems Software Research is Irrelevant",痛斥System研究者不思进取,所做的研究在学术界外毫无影响力,再无80-90年代初那种轰轰烈烈的创新。3年以后,Xen横空出世,2年的飞速发展及在工业界的巨大影响力,让Hand等人有了底气。
本文对VMM和Microkernel的一些异同点进行了对比,提出:"We argue that modern VMMs present a practical platform which allows the development and deployment of innovative systems research: in essence, VMMs are microkernels done right."
首先,文章从历史的角度指出两者有很多共性,特别是在目标上;很多时候两者的界限非常模糊,比如denali是VMM,但uDenali可以属于Microkernel;L4开始时Microkernel,但后来发展成可以运行多个不同的OS。
两者不同的地方有以下三点:
- Avoid Liability Inversion: Microkernel itself depends on application level components, such as pagers, to make forward progress. Various inelegant timeout and fallback mechanisms were required to avoid deadlock.
- Make IPC Performance Irrelevant: First, since VMMs hold isolation to be a key goal, IPC between virtual machines is considerably less common in general. Secondly, we have determined that a clear separation between control and data path operations allows us to optimize for the common case.
- Treat OS as Component: Guest OS need few/none changes. Compatibility.
Microkernel有很多优点,而VMM也可以实现:
- Narrow interfaces between system components providing easy extensibility of device and OS functionality. Indeed, it seems very likely that the exploration of how services and management will be structured in a multi-OS VMM system will continue to present many exciting research opportunities.
- A small code base that can guarantee security more easily than monolithic kernels. Several groups have expressed interest in developing these ideas for Xen, using concepts from projects such as the Flask-derived SELinux.
- Strong isolation providing opportunities for improved manageability. recently by VMMs has been to explore less performance-centric aspects of systems development. (e.g. migration, log&replay)
最后总结:Microkernel的许多优点,VMM也都能实现;而VMM能够运行商业OS的特性,对现有应用提供更好的兼容性使得其走出学院,更多地在工业界发挥影响力,这是Microkernel所不具备的。
马上,就会有一篇激烈的文章来反驳Hand,作者就是L4的开发人员,来自澳大利亚的Heiser。
阅读(1003) | 评论(0) | 转发(0) |