在orange’s一个操作系统的实现里面用dos加载了自己的boot.com文件来拉起自己的操作系统。原书中是使用bochs来加载的,但是我一般经常用的是vmware,在这里记录一下方法。
1.首先创建一个虚拟机
选择典型
稍后安装操作系统
操作系统和版本都选择其他
名字和虚拟机路径随意
最大磁盘大小不用给太多,因为测试用的自制操作系统也暂时没那么大。下面储存为单个文件或是多个文件均可
最后点击完成,虚拟机就创建完毕了
2.安装ms-dos
现在打开这个虚拟机的话,会显示operating system not found,这是显然的因为咱们没还没给这个虚拟机安装操作系统。
正如前面所说的,正常的引导区只有512字节,所以咱们现在要安装msdos来靠这个操作系统来运行我们的操作系统
首先下载一个ms-dos的安装光盘镜像,这个上网搜一下msdos光盘镜像就会有网站下载,文件结尾应当是一个.iso的文件
之后,在这个页面:
点击CD/DVD(IDE)
点击选中右边的使用ISO映像文件,并浏览设置文件路径为你刚刚下载的光盘映像的文件路径,并点击最下面的确定
再次开启虚拟机,看到如下页面,输入1并enter开始安装ms-dos
一路yes/continue,来到这个页面,点击create a fat32/16/12 primary partition,之后点击出现的reboot now
reboot完成之后会出现invalid system disk,这是正常现象。原因是咱们现在默认是从硬盘启动的,但是咱们要从光盘启动,只要将启动方式改变为从光盘启动就行了,只需要如下操作:
找到打开电源时进入固件,点击并重新开机
来到Boot页面,并将CD-Rom drive 移动到最上方。shift+可以向上移动一项
Fn + F10save and exit,并按enter选中yes确定退出
再次选中安装msdos,一路next/continue/Yes直到遇到下面选项
这里选择No,只要是关于add-on的全部选择No就行
这里需要选择dont load,否则会导致unrecoverable privilaged operation error,如果这里一不小心点错了最后我会告诉你怎么补救
后面又是一堆Next/OK, 还会有一个选项点击Load both即可
关闭虚拟机,再次来到这个页面,取消勾选右上角的启动时连接,否则每次开机都会试图重新安装msdos
再次开机,正常情况下你应该能看到这个页面了,说明msdos安装完成
3.加载软盘
点击左侧编辑虚拟机设置来到这个页面,点击下方的添加
选择软盘驱动器,点击完成
按照orange’s 一个操作系统的实现书中的做法,应该可以得到一个pm.img软盘映像文件,这个文件中应当有你的操作系统,类似boot.com文件这样的东西。这个软盘映像文件可以是你在其他地方,如用bximage创建出来的,也可以点击创建用vmware创建一个软盘映像文件。在这里把路径选择为.img软盘映像文件的路径。注意要取消勾选启动时连接,因为系统检测到软盘的话会试图从软盘中找操作系统,但是咱们的软盘里现在不是一个完整的操作系统,只是一个com二进制文件。
打开虚拟机,在进入msdos系统后打开虚拟机设置,设备状态勾选上已连接,这样的话就相当于有个软盘连接上了虚拟机
输入A:可以切换到A盘符也就是我这边的软盘,dir查看软盘中的内容,发现了我的boot.com文件
boot.com执行结果,一切正常!
附录:
unrecoverable privilaged operation error的解决办法
如果你运行boot.com发现出现了上述错误,说明你安装了ems386,请参考这篇博客解决:
(40条消息) 自己动手写操作系统–几个问题_robbie1314的博客-CSDN博客
原创文章,作者:jamestackk,如若转载,请注明出处:https://blog.ytso.com/tech/aiops/268266.html