写在前面:自制操作系统Gos 第二章第一篇:GOS环境搭建
安装virtualbox
直接跟着这个链接安装:VirtualBox安装
在VirtualBox安装centos 7(推荐安装桌面版本)
直接跟着这个链接安装:VirtualBox中安装centos 7
centos 7中安装虚拟环境bochs
按照以下命令安装就可:
##下载源码及依赖:
sudo yum install gtk2 gtk2-devel
sudo yum install libXt libXt-devel
sudo yum install libXpm libXpm-devel
sudo yum install SDL SDL-devel
sudo yum install libXrandr-devel.x86_64
sudo yum install xorg-x11-server-devel
#源码配置和安装
#获取和解压
#源码地址:https://sourceforge.net/projects/bochs/files/bochs/2.6.9/
wget https://sourceforge.net/projects/bochs/files/bochs/2.6.9/bochs-2.6.9.tar.gz
tar -zxvf bochs-2.6.9.tar.gz
# 转到目录
cd bochs-2.6.9
//文件配置
./configure \
--prefix=/bochs/bo_tmp\
--enable-debugger\
--enable-disasm\
--enable-iodebug\
--enable-x86-debugger\
--with-x\
--with-x11
make install
bochs 配置
在 /bochs/bo_tmp/bin
中创建一个叫做boch.conf
的配置文件,文件中内容如下:
# Configuration file for Bochs
# 设置bochs使用的内存大小
megs: 32
# 设置对应真实机器的BIOS和VGA BIOS
romimage: file=/bochs/bo_tmp/share/bochs/BIOS-bochs-latest
vgaromimage: file=/bochs/bo_tmp/share/bochs/VGABIOS-lgpl-latest
# 设置bochs所使用的磁盘
floppya: 1_44=a.img, status=inserted
# 选择启动盘符
boot: disk
# 设置日志文件的输出
log: bochs.out
# 关闭鼠标,打开键盘
mouse: enabled=0
keyboard: keymap=/bochs/bo_tmp/share/bochs/keymaps/x11-pc-us.map
# 硬盘设置
ata0: enabled=1, ioaddr1=0x1f0, ioaddr2=0x3f0, irq=14
# 增加对gdb的支持
# gdbstub: enabled=1,port=1234,text_base=0,data_base=0,bss_base=0
运行bochs
之后,我们在当前目录运行一下bochs:
./bochs
之后会弹出以下界面:
可以看到,这里默认是[2]
这个选项,我们直接回车:
输入刚刚写的配置文件boch.conf
,之后出现如下界面:
创建磁盘
当然在正式运行之前,我们还需要创建一个磁盘文件,直接运行以下命令:
./bximage -hd -mode="flag" -size=60 -q hd60M.img
之后,修改配置文件中的磁盘信息,加上这一句:
# 硬盘设置
ata0: enabled=1, ioaddr1=0x1f0, ioaddr2=0x3f0, irq=14
ata0-master: type=disk,path="hd60M.img",mode=flat,cylinders=121,heads=16,spt=63
然后重新启动bochs,之后直接回车:
sudo ./bochs -f boch.conf
这个错误是我们还没有写整个GOS导致的,之后写完MBR
就可以正常运行了。
参考文献
[1] 深入理解计算机系统
[2] 操作系统真相还原