《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盘测试。

点此查看下一篇《30天自制操作系统》笔记(04)——显示器256色

《30天自制操作系统》笔记(03)——使用Vmware的更多相关文章

  1. 《30天自制操作系统》笔记(02)——导入C语言

    <30天自制操作系统>笔记(02)——导入C语言 进度回顾 在上一篇,记录了计算机开机时加载IPL程序(initial program loader,一个nas汇编程序)的情况,包括IPL ...

  2. 《30天自制操作系统》笔记(06)——CPU的32位模式

    <30天自制操作系统>笔记(06)——CPU的32位模式 进度回顾 上一篇中实现了启用鼠标.键盘的功能.屏幕上会显示出用户按键.点击鼠标的情况.这是通过设置硬件的中断函数实现的,可以说硬件 ...

  3. 《30天自制操作系统》笔记(01)——hello bitzhuwei’s OS!

    <30天自制操作系统>笔记(01)——hello bitzhuwei's OS! 最初的OS代码 ; hello-os ; TAB=4 ORG 0x7c00 ; 指明程序的装载地址 ; 以 ...

  4. 30天自制操作系统第九天学习笔记(u盘软盘双启动版本)

    暑假学习小日本的那本书:30天自制操作系统 qq交流群:122358078    ,更多学习中的问题.资料,群里分享 environment:开发环境:ubuntu 第九天的课程已学完,确实有点不想写 ...

  5. 《30天自制操作系统》笔记(01)——hello bitzhuwei’s OS!【转】

    转自:http://www.cnblogs.com/bitzhuwei/p/OS-in-30-days-01-hello-bitzhuwei-OS.html 阅读目录(Content) 最初的OS代码 ...

  6. 单字节的FIFO缓存(30天自制操作系统--读书笔记)

    从今天起,写一些读书笔记.最近几个月都在看<30天自制操作系统这本书>,书虽说看的是电子书,但可以花钱买的正版书,既然花费了金钱,就总得有些收获. 任何人都不能总是固步自封,想要进步就得学 ...

  7. 《30天自制操作系统》笔记3 --- (Day2 上节)完全解析文件系统

    Day2 汇编语言学习与Makefile入门 本文仅带着思路,研究源码里关于文件系统的参数 关于day2主程序部分及更多内容,请看<30天自制操作系统>笔记 导航 发现学习中的变化 源码差 ...

  8. 《30天自制操作系统》软盘 -> VMware虚拟机

    书名叫做30天自制操作系统,按照学校课设答辩的时间来看,估计得把书名改成<一周自制操作系统>,太卷了哈哈哈 我们可以使用qemu来模拟物理机 make run第二天制作的操作系统 可以看到 ...

  9. 从你的u盘启动:30天自制操作系统第四天u盘启动学习笔记

    暑假学习小日本的那本书:30天自制操作系统 qq交流群:122358078    ,更多学习中的问题.资料,群里分享 developing environment:ubuntu 关于u盘启动自己做的操 ...

随机推荐

  1. sql server 2000数据库 最近经常出现某进程一直占用资源,阻塞?死锁?

    OA的数据库最近多次出现某进程一直占用资源,导致其他进程无法执行.使用sp_who2 和 sql server profiler跟踪查询,发现有以下几个语句常常占用资源: 1.declare @P1 ...

  2. windows守护进程脚本

    通常通过进程名称或者端口号来判断进程是否正在运行.但是windows下进程名常常难以区分,比如有两个python脚本程序A和B同时在执行,进程名都是python.exe.若是通过端口来区分,却又只适用 ...

  3. IQD文件模板以及cs7g.ini信息

    COGNOS QUERY STRUCTURE,1,1 DATABASE, cognos TITLE,test BEGIN SQL { select time, city_id, city_name, ...

  4. 【转】如何在Windows+VS2005使用最新静态libcurl 7.35.0获取网页数据,支持HTTPS

    地址: http://blog.csdn.net/hujkay作者:Jekkay Hu(34538980@qq.com)关键词:Windows,curl,ssl,  visual c++ 2005, ...

  5. CodeForces 743C Vladik and fractions (数论)

    题意:给定n,求三个不同的数满足,2/n = 1/x + 1/y + 1/z. 析:首先1是没有解的,然后其他解都可以这样来表示 1/n, 1/(n+1), 1/(n*(n+1)),这三个解. 代码如 ...

  6. Sprint回顾大揭秘——“宝典”来了

    我始终记得当年我作为敏捷教练所做的第一次Sprint回顾,这一切都仿佛就发生在昨天.这家公司实行Scrum有好几年了,我自然而然地认为他们这群人是纪律严明并且成熟稳重的敏捷专家. 因此,当他们计划了一 ...

  7. Java程序,猜大小游戏

    一个骰子,通常有1.2.3.4.5.6等6种点数.我们将1.2.3记作“小”,将4.5.6记作“大”.猜中显示“猜对了”,猜错记作“猜错了”之类的字样.本程序可以用Java实现. import jav ...

  8. ruby 学习笔记 1

    写ruby blog  系统的记录下.也是对我学ruby的点滴记录. 先介绍下我的学习环境.系统:ubuntu12.04文档:techotopia ,ruby文档,the hard way learn ...

  9. 《python核心编程》笔记——文件的创建、读取和显示

    创建文件(makeTextFile.py)脚本提醒用户输入一个尚不存在的文件名,然后由用户输入文件每一行,最后将所有文本写入文本文件 #!/usr/bin/env python 'makeTextFi ...

  10. (转)深度分析Linux下双网卡绑定七种模式

    现在一般的企业都会 使用双网卡接入,这样既能添加网络带宽,同时又能做相应的冗余,可以说是好处多多.而一般企业都会使用linux操作系统下自带的网卡绑定模式,当然现在 网卡产商也会出一些针对window ...