《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"保存,虚拟机自动重启,效果如下!
成功!
总结
今后的学习过程是:
- 编码,用makefile编译得到*.img文件。
- 用make run命令启动QEMU测试。
- 配置"floppy image file"(如果文件名改了),启动Vmware进行测试。
- 等我学好了汇编(大概个把月吧),把U盘启动的代码写写,再用U盘测试。
点此查看下一篇《30天自制操作系统》笔记(04)——显示器256色
最新文章
- 用Canvas实现动画效果
- Asp.net MVC路由机制
- 学习git config配置文件
- Thinkphp内置截取字符串函数
- 形参是ofstream
- 关于C#不同位数相与或,或赋值时,隐藏位数扩展该留意的问题
- ASP出500错误怎么办(理论上并不止500错误,其他错误可以同样可以获得更多信息以帮助解决问题)
- Quartus signal tapii 的使用
- ie9始终提示文档预览需要最新版本的Flash Player支持的解决方法:
- MD5和Base64介绍与应用
- 取消IE“已限制此网页运行可以访问计算机的脚本,转自“园封记忆”
- iOS开发: 向右滑动手势功能实现
- Android面试题(文章内容来自他人博客)
- 升级IOS9,提示滑动升级,卡在password锁屏界面,无反应了
- HttpMime 处理 多部件 POST 请求
- java中模拟http(https)请求的工具类
- 如何获取Linux-gate.so.1动态库
- ORM系列之Entity FrameWork详解
- 【bzoj 3495】PA2010 Riddle
- linux 安装配置nexus以及maven私服应用