2010-10-05 53 views
4

我正在研究博士项目的想法。编写管理程序?

我的一个想法是编写一个管理程序(或裸机)(?),这样我就可以在不使用真正的主机操作系统的情况下运行多个操作系统。例子我得到了一些启动操作系统的选项菜单,查看在已经运行的操作系统中发生了什么的'控制台'。重新启动操作系统,安装一个新的,等等。

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

从概念上讲,人们如何思考这个问题?

我有一台MacBook。我应该可以修改EFI的启动。也许从一个非常小的LinuxLive实现开始,然后真的扩展它,真的很遥远?

是否可以使用达尔文并将其缩放得很远?

+9

作为一个博士项目,你的想法是什么原创和新的? – jball 2010-10-05 00:07:34

+9

考虑到其中的一些已经被编写(如果我没有弄错,Xen,L4是管理程序),它会成为一个很好的博士论文吗?您可以使用自己的虚拟机管理程序作为测试可能成为博士学科主题的新技术的上下文,但这种间接任务最好由永久研究人员完成(博士学习时间短,应该比那)。 – 2010-10-05 00:09:08

+0

@jball。除了负载平衡和扩展之外,我还有更多的事情要做,但在核心概念正常工作之前我无法想象。 – ator 2010-10-05 00:09:32

回答

0

缩小现有的操作系​​统来开发管理程序似乎是不太可能的方法。

绝对看看现有的一些现有的开源虚拟机监控程序项目。 如果你在阅读他们是如何工作的,以及如何你可能会写方法一个 ,那么你可以尝试有趣:史密斯&梅尔

虚拟机。 Chisnall的Xen管理程序权威指南。

如果您打算从头开始编写,并且针对的是x86系列处理器,那么您将不得不用虚拟化指令(例如英特尔VT-x)来解决问题。这将是纯粹的汇编语言,或者最好是内联汇编。你在这里说真正的低层次的东西。

0

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

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

另外,在我看来,已经可以编写足够的操作系统来创建一些小型测试操作系统,这些小型测试操作系统可以在裸机上引导以用于测试正在开发的系统管理程序。顺便说一句,如果缩减现有的操作系​​统是一个很好的策略,我认为它会在Linux或主要BSD之一上效果最好。使用达尔文可能会痛苦。

0

如果您对计算机通信和超级计算机通信感兴趣,那么跨操作系统通信如何[这将比尝试通过正常的TCP/IP套接字连接便宜。

3

你所说的想法并不是对科学的独创贡献。

我的建议是审查Xen和一般管理程序的文献,可以追溯到上世纪60年代& 20世纪70年代,当时IBM发明了它。

我确定有改进的空间和原创想法。

就实际编写虚拟机管理程序而言,您应该首先查看维基百科,因为它提供了有关虚拟化的简要说明。

这是一个历史摘要,其中包括一些经过精心治疗的书面文献:http://www.kernelthread.com/publications/virtualization/。请注意,第一次引用是从1959年起!

0

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

然而,对于一个博士项目来说,这听起来太宽泛了:你应该专注于更小的东西。