从0开始写内核(一)搭建环境
参考书籍:操作系统真相还原
源码:https://github.com/wutiaojian000/AFKernel.git
本文地址:https://www.cnblogs.com/angel-fish/p/18796620
环境搭建
1. 安装bochs
ubantu内下好bochs的源码文件,进入到bochs-2.6.2/目录下
安装依赖
sudo apt-get install vim
sudo apt-get install build-essential
sudo apt-get install xorg-dev
sudo apt-get install libgtk2.0-dev
sudo apt-get install g++
./configure \
--prefix=/home/zcm \
--enable-debugger \
--enable-disasm \
--enable-iodebug \
--enable-x86-debugger \
--with-x \
--with-x11
(这玩意怎么变红了)
解释一下:
--prefix= 换成自己的路径
--enable-debugger 打开bochs自己的调试器
--enable-disasm 支持反汇编
--enable-iodebug 启用io调试器
--enable-x86-debugger 支持x86调试器
--with-x 使用xwindows
--with-x11 使用x11图形用户接口
编译安装
make install
这里出错了

vim Makefile
在LIBS的行末加上-lpthread,再make install
- 配置bochs
bochs安装路径下创建配置文件bochsrc.disk(名字无所谓)
# 设置bochs运行时使用的内存 32MB
megs: 32
#设置对应真实机器的BIOS和VGA BIOS
romimage: file=/home/zcm/bochs/share/bochs/BIOS-bochs-latest
vgaromimage: file=/home/zcm/bochs/share/bochs/VGABIOS-lgpl-latest
#设置bochs使用的磁盘,软盘关键词为floppy
#只有一个软盘使用floppya即可,若有多个floppya,floppyb
#floppya: 1_44=a.img, status=inserted
#选择启动盘符
boot: disk #从硬盘启动
#设置日志文件输出
log: bochs.out
#开启或关闭某些功能
#关闭鼠标打开键盘
mouse: enabled=0
keyboard_mapping: enabled=1, map=/home/zcm/bochs/share/bochs/keymaps/x11-pc-us.map
#硬盘设置
ata0: enabled=1, ioaddr1=0x1f0, ioaddr2=0x3f0, irq=14
#增加bochs对gdb的支持
#gdbstub: enabled=1, port=1234, text_base=0, data_base=0, bss_base=0
bochs安装路径下执行
bin/bochs
回车,输入bochsrc.disk(选择配置文件),再回车(默认begin simulation)就会进入调试界面(bochs:1)。命令行输入c继续执行。
提示

提示没有启动设备
bin/bximage可以用于创建虚拟硬盘
bin/bximage -help

bin/bximage -hd -mode="flat" -size=60 -q hd60M.img
或者直接bin/bximage然后根据提示创建
执行完毕后在安装目录下生成hd60M.img文件,而且bochs还会提示你

将最后那句话写在你配置文件的最后
ata0-master: type=disk, path="hd60M.img", mode=flat, cylinders=121, heads=16, spt=63
执行
bin/bochs -f bochsrc.disk

刚刚是没有启动盘,现在提示not a bootable disk说明盘是加上去了。
后面第二章会继续介绍怎么做启动盘。

浙公网安备 33010602011771号