? 许毅见还有几个人(没有参加虚拟机编写计划的)对这个并不了解于是便耐着性子给他们讲解起来……
虚拟机顾名思义虚拟的机器。其核心思想是用软件来模拟硬件。它作为原操作系统下的一个应用程序可以为运行于其上的目标操作系统创建出一部虚拟的机器目标操作系统就像是运行在单独的一台真正的机器上一样丝毫察觉不到自己处于虚拟机的控制之下。在一个成熟的虚拟机中完全可以模拟整个计算机开机、启动、运行、关机等过程。按下电源键(poeron)窗口中也会出现机器自检的画面接着是操作系统的载入一切都和真实的一模一样甚至还有专门的一套BIos来处理各种I/o中断。而实际上他们只不过运行在一个虚拟的平台上而已表现在真实的操作系统中它只是系统中的系统只要硬件配置足够高这样的系统可以运行很多个就像应用程序那样多线程互不影响互不妨碍。在虚拟机中运行的应用程序认为自己独占整个机器它们相信自己是从真正的键盘和鼠标获得输入并从真正的屏幕上输出它们甚至认为自己完全拥有netbsp;例如虚拟机中操作系统的硬盘是最外层操作系统中的表现通常是一个文件这个文件是模拟硬盘虚拟机中的操作系统要进行文件的读取的保存操作实际上只是在这个文件中进行——在这个文件中格式化、分区、建立和删除文件等。
因为这个平台是软件的是能够通过程序员编程而控制的所以在虚拟机中无论是操作系统的运行还是应用程序的执行所有过程都是可跟踪和可观察的。程序员可以随时观察虚拟的cpu各个寄存器的状况和跟踪内存中数据地交换——这是一个多么奇妙的功能!编写操作系统的时候最令程序员头疼的就是各种各样千奇百怪不可预期的Bug一不小心就会导致cpu挂死(死机)。而这个时候根本没有任何有效的手段来得知那个时候cpu中的状态到底是怎么样的为什么会生这种情况?所有的这些仅仅通过程序员来推测、来估计几乎是不可能的。所以虚拟机往往被用来编写操作系统。
许毅最开始动心思编写虚拟机就是因为这个原因。后来由于实在是太过复杂转而去编写了一个比较简单的。这也就是“生死斗”平台的前身。
“啊原来还有这样的好东西!”一个刚刚加入团队学习的新人惊叹道“那样的话我们岂不是只要将病毒程序创建一个虚拟的执行环境提供它可能用到的一切元素包括硬盘端口等让它在上面自由挥……而我们则慢慢跟踪最后根据它的结果来判定其运行机制就可以了?”
好几个人