5

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

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

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

从概念上讲,人们如何看待这样做?

我有一台 MacBook。我应该能够修改 EFI 引导的内容。也许从一个非常简单的 Linux LIve 实现开始,然后将其扩展到非常非常远的地方?

是否可以使用达尔文并将其扩展到很远的地方?

4

5 回答 5

4

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

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

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

就实际编写管理程序而言,您应该首先查看 Wikipedia,因为它对虚拟化做了很好的简要介绍。

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

于 2010-12-01T00:35:20.090 回答
0

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

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

于 2011-02-02T15:42:00.613 回答
0

缩减现有的桌面/服务器操作系统似乎是一个糟糕的选择。OTOH,与其重做所有事情,不如从嵌入式 RTOS(如 ecos 或 L4)开始,从中提取一些特性。此外,一些代码可能会从 QEMU 中重用。

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

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

顺便说一句,如果缩减现有操​​作系统是一个好的策略,我认为它在 Linux 或主要 BSD 之一上效果最好。使用达尔文可能会带来痛苦。

于 2010-11-28T03:36:31.950 回答
0

如果您对计算机通信和管理程序感兴趣,那么跨操作系统通信呢?[这比尝试通过普通 TCP/IP 套接字进行连接要便宜。

于 2010-12-01T00:28:03.313 回答
0

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

一定要看看一些现有的开源管理程序项目。如果您对阅读它们如何工作以及如何编写一个感兴趣,那么您可以尝试:

Smith & Mair 的虚拟机。Chisnall 的 Xen Hypervisor 权威指南。

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

于 2010-11-15T04:44:54.950 回答