写一个管理程序?

时间:2010-10-05 00:02:59

标签: c++ hypervisor

我正在研究博士项目的想法。

我的一个想法是编写一个虚拟机管理程序(或裸机)(?),这样我就可以在不使用真正的主机操作系统的情况下运行多个操作系统。示例我获得了一些菜单,其中包含某些类型的选项以启动操作系统,查看已经运行的操作系统中正在进行的操作的“控制台”。重启OS,安装新的等等。

所以没有主机操作系统,只是一个控制一切的小应用程序。

从概念上讲,人们如何考虑这样做?

我有一台MacBook。我应该能够修改EFI引导的内容。也许从一个非常小的Linux LIve实现开始并真正地扩展它,真的很远吗?

是否可以使用达尔文并将其缩放到很远的位置?

5 个答案:

答案 0 :(得分:3)

您所说的想法不是对科学的原创贡献。

我的建议是回顾Xen和一般的管理程序文献,可以追溯到60年代和以前。 IBM发明它时的70年代。

我确信那里有改进的空间和原创想法。

在实际编写虚拟机管理程序方面,您应首先查看Wikipedia,因为它提供了有关虚拟化的良好简报。

以下是历史摘要,包括一些开创性的引文:http://www.kernelthread.com/publications/virtualization/。请注意,第一个引用是从1959年!

答案 1 :(得分:0)

缩小现有操作系统以开发虚拟机管理程序似乎不太可能。

一定要看一下现有的一些开源虚拟机管理程序项目。 如果您有兴趣阅读它们如何工作以及如何处理写作 那么你可以试试:

史密斯的虚拟机&梅尔。 Chisnall的Xen Hypervisor权威指南。

如果您打算从头开始编写,并且您的目标是x86系列处理器,那么您将不得不接受虚拟化指令(例如Intel VT-x)。这将使用纯汇编语言,或者最好是内联汇编。你在这里谈论真正的低级别的东西。

答案 2 :(得分:0)

缩减现有桌面/服务器操作系统似乎是一个糟糕的选择。 OTOH,而不是重做所有内容,从嵌入式RTOS(如ecos或L4)开始绘制一些功能可能很有用。此外,某些代码可能会从QEMU重新使用。

如果我这样做,我将专注于使用VT-x和AMD-V忽略动态重新编译的硬件虚拟化(除非是你工作的重点)。

此外,在我看来,能够编写足够的操作系统来制作一些可在裸硬件上启动的小型测试操作系统用于测试正在开发的虚拟机管理程序是个好主意。

BTW,如果缩减现有操​​作系统是一个很好的策略,我认为它最适合Linux或其中一个主要的BSD。使用达尔文可能会要求痛苦。

答案 3 :(得分:0)

如果您对计算机通信和hypervisiors感兴趣,那么跨操作系统通信会比[通过普通的TCP / IP套接字连接更便宜。

答案 4 :(得分:0)

ESX本质上是一个缩小的Linux安装 - 添加了许多其他好东西:所以你的基本前提是体面的。

然而,对于博士项目来说,这听起来过于宽泛:你应该专注于更小的事情。