Ubuntu下使用模拟器Bochs运行《Linux内核完全剖析——基于0.12内核》第3章P31 引导扇区源码boot.s的一系列步骤

本文详细介绍了如何在Ubuntu系统中安装和配置Bochs模拟器,包括安装必要的工具如汇编器as86、链接器ld86以及模拟器Bochs本身。此外,还提供了创建引导扇区源码文件、编译链接源码、配置模拟器等步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

请注意在虚拟机中测试,并为系统建立快照!原因下面会说!


第1步:安装汇编器as86和链接器ld86(教程:http://blog.youkuaiyun.com/moon_prince2013/article/details/48437371


第2步:安装模拟器Bochs

打开终端(Terminal),输入:apt-get install bochs(中间会提示你“Do you want to continue?[Y/n]”,输入y并回车即可)

第3步:安装bochs-x

在终端输入:sudo apt-get install bochs-x


第4步:新建文件——引导扇区源码boot.s(源码在http://blog.youkuaiyun.com/moon_prince2013/article/details/48438691,用系统自带的文本编辑器即可编辑

可以在你想要的某个文件夹里面新建此文件,现在假设我们把boot.s放在桌面文件夹 1 下



第5步:使终端跳转到桌面的文件夹 1 里

在终端输入:cd /home(cd代表目录跳转,/代表系统根目录,home代表根目录下的home文件夹——跳转到/home文件夹)

在终端输入:ls (表示列出当前home文件夹下所有文件),此时可能显示的是tansion(根据不同人的情况,名称不同)

假设是tansion,在终端输入:cd tansion/Desktop/1(注意大小写要正确)并回车,这样就跳转到桌面的文件夹 1 里;


第6步:编译、链接boot.s

在终端输入:

as86 -0 -a -o boot.o boot.s
ld86 -0 -s -o boot boot.o 

此时文件夹 1 里面多了两个文件 boot.o、boot:


第7步:在文件夹 1 里面新建文件  bochsrc.txt

文件内容如下:

megs: 32
romimage: file=$BXSHARE/BIOS-bochs-latest
vgaromimage: file=$BXSHARE/VGABIOS-lgpl-latest
floppya: 1_44=a.img, status=inserted
boot: floppy
log: bochsout.txt
mouse: enabled=0
keyboard_mapping: enabled=1, map=$BXSHARE/keymaps/x11-pc-us.map


第8步:在终端输入: dd bs=32 if =boot of=a.img skip=1

此时在文件夹1里面多了一个文件 a.img


第9步:启动模拟器Bochs

在终端输入:bochs

此时会弹出模拟器,但内容只有黑色界面:


不要关闭它,返回终端,在终端上输入  c  并回车,就成功了,界面如下:



如果要退出模拟器,点击模拟器右上角:


======================================

注意点:

1、重启Ubuntu后,会直接进入这段引导程序,显示“Loading system...”,再也进不去系统!因为我是小白,这个问题暂时不知道怎么解决(删除a.img也没用的);

2、“第3步:安装bochs-x”很重要,否则在“第9步:启动模拟器Bochs” 时会出现警告:

========================================================================  
Bochs x86 Emulator 2.4.5  
Build from CVS snapshot, on April 25, 2010  
========================================================================  
00000000000i[ ] LTDL_LIBRARY_PATH not set. using compile time default '/usr/lib/bochs/plugins'  
00000000000i[ ] BXSHARE not set. using compile time default '/usr/share/bochs'  
00000000000i[ ] reading configuration from bochsrc  
00000000000i[ ] lt_dlhandle is (nil)  
00000000000p[ ] >>PANIC<< dlopen failed for module 'x': file not found  
========================================================================  
Event type: PANIC  
Device: [ ]  
Message: dlopen failed for module 'x': file not found  
A PANIC has occurred. Do you want to:  
cont - continue execution  
alwayscont - continue execution, and don't ask again.  
This affects only PANIC events from device [ ]  
die - stop execution now  
abort - dump core  
debug - hand control to gdb  
Choose one of the actions above: [die]  


======================================

参考文章:

linux下bochs的安装及简单运行

Ubuntu下bochs虚拟机的安装配置 

Bochs配置文件入门 

ubuntu安装bochs别忘了bochs-x

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值