内容提要:
Bochs运行bootsect步骤
A 制作启动引导软盘镜像
B 安装Bochs
C 配置Bochs
D 运行Bochs
#==============A 制作启动引导软盘镜像============
#设引导框架程序名称:bootsect.S
#编译:
as86 -0 -a -o bootsect.o bootsect.S
ld86 -0 -s -o bootsect bootsect.o
#创建磁盘映像:
dd if=/dev/zero of=bootsect.img bs=1474560 count=1
#格式化软盘映像
mkfs.ext2 bootsect.img
#去掉bootsect文件的头结构并写入软盘映像
dd bs=32 if=bootsect of=bootsect.img skip=1
#设引导框架程序名称:bootsect.S
#编译:
as86 -0 -a -o bootsect.o bootsect.S
ld86 -0 -s -o bootsect bootsect.o
#创建磁盘映像:
dd if=/dev/zero of=bootsect.img bs=1474560 count=1
#格式化软盘映像
mkfs.ext2 bootsect.img
#去掉bootsect文件的头结构并写入软盘映像
dd bs=32 if=bootsect of=bootsect.img skip=1
#==============B 安装Bochs =====================
#到官网http://bochs.sourceforge.net/下载bochs
#我本来想直接下载rpm包直接安装,奈何安装出错,后来下载了源码包
#bochs-2.6.8.tar.gz(这时的最新版)
#tar -zxvf解压后,配置: ./configure --enable-debugger --enable-disasm --with-x11
#编译:make -j4
#安装:make -install
#到官网http://bochs.sourceforge.net/下载bochs
#我本来想直接下载rpm包直接安装,奈何安装出错,后来下载了源码包
#bochs-2.6.8.tar.gz(这时的最新版)
#tar -zxvf解压后,配置: ./configure --enable-debugger --enable-disasm --with-x11
#编译:make -j4
#安装:make -install
#==============C 配置Bochs =====================
#我的这些配置基于 http://oldlinux.org/Linux.old/bochs/sls-1.0.zip 中的bochsrc.bxrc
#并根据自己电脑的报错情况以及网上的相关文章修改
#保留的内容如下:
#我的这些配置基于 http://oldlinux.org/Linux.old/bochs/sls-1.0.zip 中的bochsrc.bxrc
#并根据自己电脑的报错情况以及网上的相关文章修改
#保留的内容如下:
#1 指定BIOS映像文件
romimage: file=$BXSHARE/BIOS-bochs-latest
romimage: file=$BXSHARE/BIOS-bochs-latest
#2 设置被模拟系统所含的内存容量,单位MB
megs: 32
megs: 32
#3 指定VGA BIOS映像文件
vgaromimage: file=$BXSHARE/VGABIOS-lgpl-latest
vgaromimage: file=$BXSHARE/VGABIOS-lgpl-latest
#4 配置第一个软驱,status: ejected:未插入,inserted:已插入
floppya: 1_44=" bootsect.img", status=inserted
floppya: 1_44=" bootsect.img", status=inserted
#5 配置第二个软驱
floppyb: 1_44=tmp1.imz, status=inserted
#6 指明模拟系统中的第一个ATA通道(0通道)上连接的第一个ATA设备
## type:设备类型 path:映像文件路径 cylinders/heads/spt 仅对disk有效(对disk必须)
ata0-master: type=disk, path="c.img", cylinders=365, heads=16, spt=63
## type:设备类型 path:映像文件路径 cylinders/heads/spt 仅对disk有效(对disk必须)
ata0-master: type=disk, path="c.img", cylinders=365, heads=16, spt=63
#7 定义模拟机器中用于引导启动的驱动器 floop/a/c/cdrom
boot: floppy
boot: floppy
#8 指定log的路径,让Bochs记录执行的一些信息,当Bochs运行出错时以供参考
log: bochsout.txt
log: bochsout.txt
#9 配置显卡刷新率?
vga: update_freq=10
vga: update_freq=10
#10 禁用鼠标
mouse: enabled=0
mouse: enabled=0
#11 这个应该与颜色配置相关
private_colormap: enabled=0
private_colormap: enabled=0
#12 禁用全屏
fullscreen: enabled=0
fullscreen: enabled=0
#13 屏幕设置相关
screenmode: name="sample"
#===================D 运行Bochs================
#在终端最接近运行:bochs
#选项2是导入配置:输入2,然后打出配置文件名:如bochsrc.bxrc(这里是当前目录)
#成功配置后,会自动退到首页,按6开启模拟系统
#在终端最接近运行:bochs
#选项2是导入配置:输入2,然后打出配置文件名:如bochsrc.bxrc(这里是当前目录)
#成功配置后,会自动退到首页,按6开启模拟系统
参考与引用:
豆瓣:我欲成妖魔鬼怪---Linux内核-as86汇编boot文件启动引导
《Linux内核完全剖析--基于0.12内核》 赵炯
其它博文:若干