开发环境介绍
1.Ubuntu-16.04
2.boch2.6.11 下载地址: http://sourceforge.net/projects/bochs/files/bochs/2.6.11/
3.nasm-2.08.01 下载地址: http://www.nasm.us/pub/nasm/releasebuilds/2.08.01/
4.GeekOs0.3.0 下载地址:
https://sourceforge.net/projects/geekos/files/
安装bochs
前往bochs的官网下载bochs的压缩包,这里,我们选用bochs-2.6.11.tar.gz
下载完之后,进入下载的目录,对安装包进行解压
tar -zxvf bochs-2.6.11.tar.gz
解压之后,安装相关依赖环境
sudo apt-get install build-essential xorg-dev libgtk2.0-dev
配置参数打开调试功能开关
./configure --enable-debugger --enable-disasm
编译
sudo make
安装
sudo make install
配置bochs
首先,在终端输入
bochs -help cpu
查看系统支持的cpu配置
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200601155516246.png)
接着,对bochsrc文件进行修改。
sudo gedit .bochsrc
在文件的第190行,更改cpu的model属性为上述cpu支持的值,例如,可以更改为:cpu: model=bx_generic
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200601155147367.png)
再去往文件的第926行,将该行注释掉
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200601155328614.png)
之后,输入bochs命令进行测试,可以看到bochs已经能够正常运行。
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200601155852792.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3NvdmlldDE5NDE=,size_16,color_FFFFFF,t_70)
安装nasm
这里我们进入官网,选择nasm-2.08.01.tar.gz,进行下载
下载完之后解压,进入nasm-2.08.01 目录,依次输入以下命令:
./configure
sudo make
sudo make install
这里,我们便安装好了nasm
编译GeekOs
首先我们前往它年久失修的官网,下载源代码包,下载完后使用unzip命令进行解压
之后,进入目录
cd geekos-0.3.0/src/project0/build
对Makefile文件的第148行,149行进行如下更改
为第148行增加编译选项 -fno-stack-protector
删除第149行的 -Werror 参数
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200601161529679.png)
接着,再分别为100行,106行加上 -m32参数
为第109行加上 -m elf_i386 参数
完成后的效果如下所示:
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200601161920743.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3NvdmlldDE5NDE=,size_16,color_FFFFFF,t_70)
之后,再依次输入以下命令
sudo make clean
sudo make depend
sudo make
可以发现,编译成功了。使用 ls -a命令进行检查,发现存在fd.img以及.bochsrc文件。
这时,使用sudo gedit .bochsrc修改配置文件
# An example .bochsrc file.
# You will need to edit these lines to reflect your system.
vgaromimage: file= /usr/share/bochs/VGABIOS-lgpl-latest
romimage: file=$BXSHARE/BIOS-bochs-latest
megs: 8
boot: a
floppya: 1_44=fd.img, status="inserted"
log: ./bochs.out
mouse: enabled="0"
private_colormap: enabled="0"
# Uncomment this to write all bochs debugging messages to
# bochs.out. This produces a lot of output, but can be very
# useful for debugging the kernel.
保存并退出gedit。
最后,输入bochs,测试GeekOs系统
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200601163622210.png)
可见,GeekOs系统已经被成功安装。
参考:
bochs的安装
Ubuntu18.04安装配置Bochs2.6.9与编译运行GeekOS
GeekOS: 一、构建基于Ubuntu9.04的实验环境