首页 > 代码库 > 《30天自制操作系统》笔记(03)——使用Vmware

《30天自制操作系统》笔记(03)——使用Vmware

《30天自制操作系统》笔记(03)——使用Vmware

进度回顾

在上一篇,实现了用IPL加载OS程序到内存,然后JMP到OS程序这一功能;并且总结出下一步的OS开发结构。但是遇到了真机测试和U盘启动的一些问题。本篇就来解决之。

遇到的问题

物理机测试

简单来说,把软盘(U盘)做成启动盘后,自然想要用来启动物理机器。毕竟这才是真正的测试。(用QEMU总没多大的成就感)但物理机测试的麻烦在于太慢了,每次都要关掉Windows,重启,测试,然后再重启Windows。而且还没办法截图

而用Vmware代替真机就好了,启动速度比真机快得多,还可以截图。而且对我来说Vmware比QEMU还有另一个好处,稍候说明。

用U盘代替软盘

《30天自制操作系统》的作者一直在用软盘作启动盘,而现在基本上见不到软盘了。我一开始用U盘代替软盘,没发现问题。但是在JMP到OS程序后就有问题了:JMP后计算机就没有任何反应了。这肯定是U盘和软盘的差异造成的,需要一些兼容性的汇编代码。无奈我汇编语言没好好学,目前解决不了这个问题。

解决方案

基于上述两个麻烦的问题,我发现只有用Vmware+软盘映像的方式才能顺利进行后续的学习。Vmware代替真机测试,既解决了重启慢、无法截图的问题,又可以直接把haribote.img文件当做软盘来用,这就完全虚拟出了《30天自制操作系统》中的真机环境,所以不会再有环境配置方面的问题了。

至于U盘和软盘的差异,待我学好了汇编,再来解决也不迟。而QEMU从U盘启动还得学啊学搜啊搜,用Vmware的话,在BIOS里选择启动项就好了。这也是Vmware的好处,减少要学的外围的东西。

配置Vmware

首先创建一个Vmware虚拟机,选择Typical,点击Next。

选择"I will install the operating system later.",点击next。

选择"Other",版本也选择"Other",点击next。

选择合适的名称和路径,点击next。

选择"store virtual disk as a single file",点击next。

点击finish。

点击"Edit virtual machine settings"。

选择"Floppy",选中"Connect at power on",选择"Use floppy image file:",点击Browse,找到制作好的镜像文件。选中"Read Only"。

点击OK。

启动虚拟机,在下图所示的界面处点击"F2",进入虚拟机的BIOS。

虚拟机的BIOS界面中,选择Boot,把Legacy Floppy Drives选项调到最上面。这样虚拟机就会从刚刚软盘镜像文件启动了。

配置完成,"F10"保存,虚拟机自动重启,效果如下!

成功!

总结

今后的学习过程是:

  1. 编码,用makefile编译得到*.img文件。
  2. 用make run命令启动QEMU测试。
  3. 配置"floppy image file"(如果文件名改了),启动Vmware进行测试。
  4. 等我学好了汇编(大概个把月吧),把U盘启动的代码写写,再用U盘测试。