oranges一个操作系统的实现_bochs配置及使用

本文档详细介绍了在Ubuntu 16.04.3 LTS中安装和使用Bochs模拟器的步骤,包括安装nasm,编写并编译ASM文件,创建软盘映像,配置Bochs启动文件,以及如何启动和退出Bochs。通过Bochs,用户可以在Ubuntu环境中模拟运行其他操作系统。

ubuntu16.04.3LTS安装bochs2.6.9

Ubuntu环境下安装Bochs

一、安装

在virtualbox上安装ubuntu16.04,然后再安装bochs。安装步骤见《ubuntu16.04.3LTS安装bochs2.6.9》。

同时安装nasm,使用指令

sudo apt-get install nasm

二、使用和配置

1.编写并编译文件

新建一个文件夹,建立boot.asm文件填入下列代码

	org	07c00h			; 告诉编译器程序加载到7c00处
	mov	ax, cs
	mov	ds, ax
	mov	es, ax
	call	DispStr			; 调用显示字符串例程
	jmp	$			; 无限循环
DispStr:
	mov	ax, BootMessage
	mov	bp, ax			; ES:BP = 串地址
	mov	cx, 16			; CX = 串长度
	mov	ax, 01301h		; AH = 13,  AL = 01h
	mov	bx, 000ch		; 页号为0(BH = 0) 黑底红字(BL = 0Ch,高亮)
	mov	dl, 0
	int	10h			; 10h 号中断
	ret
BootMessage:		db	"Hello, OS world!"
times 	510-($-$$)	db	0	; 填充剩下的空间,使生成的二进制代码恰好为512字节
dw 	0xaa55				; 结束标志

使用nasm编译

nasm boot.asm -o boot.bin

2.用bximage产生软盘映像

bximage是bochs自带的软件可以产生软盘或硬盘映像,使用指令

bximage

进入bximage

 输入数字1,并按回车

1

选择时软盘还是硬盘

 输入fd创建软盘,然后一路回车使用默认

fd

 产生了一个1.44m的软盘映像。名字为a.img

3.将boot.bin写入软盘

使用指令

dd if=boot.bin of=a.img bs=512 count=1 conv=notrunc

4.编写bochs配置文件

当前目录下新建一个bochsrc文件,或者直接用gedit建立

gedit bochsrc

输入下列内容

#注意'#'后面为注内容

megs:128
#模拟器的内存  

romimage:file=/usr/local/share/bochs/BIOS-bochs-latest
#这个是BIOS-bochs-latest的路径,自己慢慢找,不一定和我的一样

vgaromimage:file=/usr/local/share/bochs/VGABIOS-lgpl-latest  
#这个是VGABIOS-lgpl-latest的路径,自己慢慢找

floppya:1_44=bootroot-0.11,status=inserted 
#这个是启动软盘,就是我们下载的那个,就在当前目录下,如果不在当前目录,需要指明路径  

boot:floppy  
#表示从软盘启动

log:bochsout.txt  
#日志输出文件

#选项还有很多,想了解更多可以参照原始的.bochsrc(在bochs-2.4.5/目录下)

romimage和vgaromimage需要修改,要找到自己系统下对应的文件。方法在根目录使用文件管理器右上方的搜索按钮

 找打后添加到对应的位置。

5.启动bochs调试

输入下列指令

bochs -f bochsrc

进入bochs调试,-f参数强制使用bochsrc文件作为配置,这里可以对配置文件名其他名字。

进入调试后,显示如下界面

这里是选择功能,默认为6直接仿真,我们按回车使用默认,或者输入6在按回车选择6。进入如下画面,此时默认为调试模式,所以停在初始位置,没有效果,我们可以向gdb那样进行调试。

 这里直接在命令行里输入c(继续执行知道遇到断点)然后按回车,便会出现以下界面。

 到这里就完成了。

6.退出

到第5步就已经完成了,但是我们没有设置断点,此时会一直跑下去,我们想要继续调试怎么办,此时使用ctrl+c中断运行,便可以继续调试

 退出bochs输入q并按回车。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值