[英]How would I go about creating my own VM?
我想知道如何创建一个最小的虚拟机,该虚拟机将按照Intel 16位系统进行建模。 这将是我的第一个实际的C项目,我的大部分代码都在100行以内,但我掌握了基本的基础知识,阅读了K&R并了解了事情应该如何工作,因此这几乎是对智慧的考验。
任何人都可以向我提供有关如何执行此操作的文档,工具,教程或简单的旧提示/指针的指导,到目前为止,我了解我需要在某个地方存储数据,各种CPU和某种起作用的机制作为中断控制器。
我这样做是为了学习:系统内部,ASM内部和C-我想在单个项目中学习的三个计算方面。
请足够友善,不要告诉我做一些简单的事情-那只会很烦。 :)
感谢您的阅读,并希望能写作!
好吧,对于初学者来说,我将为您打算虚拟化的处理器(如80286或类似产品)挑选一本有关汇编语言的参考书。
对于JIT,您可能需要动态生成并执行x86代码 。
如果要使用x86 VMM技术编写虚拟机,则需要做很多事情。
有一些重要的指令,例如VM_ENTER / VM_EXIT(名称可能会因芯片而异,AMD和INTEL使用不同的名称,但功能相同)。 这些指令实际上是特权用户,因此,您将需要编写一个内核模块来使用它们。
要启动您的VM,第一步是引导它,因此,您将需要加载一个“ BIOS”。 然后,您需要模拟设备等。如果愿意,您甚至可以在这样的VM中运行旧版本的MSDOS。
总而言之,这显然不是一件容易的事,需要大量时间和精力。
现在,您可以执行类似于虚拟机就绪的CPU出现之前VMWare所做的操作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.