由于课堂在线的ucoreos源码看不下去了,去知乎上看了看,大佬推荐了一本好书《操作系统真象还原》,于是立马下载相关资源。哎,操作系统理论不难但是自己写个还是很打老壳的。于是希望能跟随作者一步一步实现我的操作系统。来吧
由于已经很长时间代码卡在boot阶段,于是直接跳过本树开头,直接搭建环境 -_- 。
作者用的是vbox+centos+bochs,而我因为习惯用的是vmware+ubuntu+bochs
直接略过ubuntu的安装,直接安装bochs
==========================bochs的安装和配置及运行测试===================================
一.bochs的安装
相比于配置,bochs的安装很简单,直接使用Ubuntu命令安装
sudo apt-get install bochs
非常不建议和我一样的小白照书上或者网上有些教程那样用源码方式安装,会遇否见很多错误 -_-。
二。bochs的配置
配置要根据你的相关文件位置来写配置文件,不可照搬否则无法运行bochs。
特别注意下面的几个包含路径的配置信息。下面是我本机bochs可用的配置文件。
写好配置文件保存为bochsrc在你工作路径下。
#第一步,首先设置 Bochs 在运行过程中能够使用的内存,本例为 32MB megs: 32 #第二步,设置对应真实机器的 BIOS 和 VGA BIOS romimage: file=/usr/share/bochs/BIOS-bochs-latest vgaromimage: file=/usr/share/bochs/VGABIOS-lgpl-latest #第三步,设置 Bochs 所使用的磁盘,软盘的关键字为 floppy。 #若只有一个软盘,则使用 floppya 即可,若有多个,则为 floppya,floppyb… #floppya: 1_44=a.img, status=inserted #第四步,选择启动盘符 boot: floppy #默认从软盘启动,将其注释 #boot: disk #改为从硬盘启动。我们的任何代码都将直接写在硬盘上,所以不会再有读写软盘的操作 #第五步,设置日志文件的输出 log: bochsout.txt #第六步,开启或关闭某些功能 #下面是关闭鼠标,并打开键盘 mouse: enabled=0 keyboard_mapping: enabled=1, map=/usr/share/bochs/keymaps/x11-pc-us.map # 硬盘设置 #ata0-master: type=disk, path="hd60M.img", mode=flat, cylinders=121, heads=16, spt=63
三.bochs运行测试
配置文件默认是从软盘启动操作系统,但我们需要改成硬盘
1.创建硬盘
bximage -hd -mode="flat" -size=60 -q hd60M.img
回车,会显示如下信息:
“The following line should appear in your bochsrc......."
意思要跟新bochsrc配置文件,使bochs识别刚创建的硬盘hd60M.img
把跟新内容替换bochsrc文件里的硬盘设置就行,注意bochs里的boot要改成disk。
即改变
#第四步,选择启动盘符 #boot: floppy #默认从软盘启动,将其注释 boot: disk #改为从硬盘启动。我们的任何代码都将直接写在硬盘上,所以不会再有读写软盘的操作 # 硬盘设置 ata0-master: type=disk, path="hd60M.img", mode=flat, cylinders=121, heads=16, spt=63
最后运行成功
bochs -f bochsrc