《操作系统真象还原》第一章 部署工作环境

该文详细介绍了如何在Ubuntu22.04系统中,通过VMware安装DeepinDesktopCommunity,并使用Bochs进行虚拟机配置。步骤包括安装必要的包,下载Bochs源码,配置并编译Bochs,创建启动磁盘,编写并编译MBR示例程序‘HelloWorld’,最后通过Bochs启动虚拟机展示结果。

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

配合视频阅读体验更佳!https://www.bilibili.com/video/BV1kg4y1V7TV/?pop_share=1&vd_source=701807c4f8684b13e922d0a8b116af31

环境vmware + deepin-desktop-community-20.8-amd64
(已在纯净ubuntu 22.04上验证过此教程,完全可行!只是需要安装vim 命令: sudo apt install vim
先安装其他需要的东西:

sudo apt install build-essential

sudo apt-get install libghc-x11-dev

sudo apt-get install xorg-dev

下载Bochs https://altushost-swe.dl.sourceforge.net/project/bochs/bochs/2.6.8/bochs-2.6.8.tar.gz?viasf=1 (注意,国内无法访问,需自行解决,这里为了方便大家,提供一个百度网盘链接:通过网盘分享的文件:bochs-2.6.8.tar.gz
链接: https://pan.baidu.com/s/1ZiUnCh6Txl4MlANgulUhwg?pwd=1245 提取码: 1245)

下载完毕之后将其移动至虚拟机中想要的位置,然后解压,命令:tar -zxvf bochs-2.6.8.tar.gz

为即将要安装的bochs创建一个空目录

mkdir bochs

进入解压后的bochs-2.6.8文件夹 cd bochs-2.6.8

配置bochs的config文件(–prefix这后面填的是你想要安装bochs的目录),编译,安装

./configure --prefix=/home/kanshan/Desktop/bochs --enable-debugger --enable-disasm --enable-iodebug --enable-x86-debugger --with-x --with-x11 LDFLAGS='-pthread'

make

make install

进入安装好bochs的目录 cd .. cd bochs创建bochsrc.disk 命令: touch bochsrc.disk,在其中写下配置信息(修改romimage:romimage:keyboard:后面路径信息的前部分为自己的bochs安装路径)

megs : 32

romimage: file=/home/kanshan/Desktop/bochs/share/bochs/BIOS-bochs-latest
vgaromimage: file=/home/kanshan/Desktop/bochs/share/bochs/VGABIOS-lgpl-latest

boot: disk

log: bochs.out

mouse:enabled=0
keyboard:keymap=/home/kanshan/Desktop/bochs/share/bochs/keymaps/x11-pc-us.map

ata0:enabled=1,ioaddr1=0x1f0,ioaddr2=0x3f0,irq=14
ata0-master: type=disk, path="hd60M.img", mode=flat,cylinders=121,heads=16,spt=63

#gdbstub:enabled=1,port=1234,text_base=0,data_base=0,bss_base=0


创建启动磁盘

bin/bximage

然后在输入框依次输入以下,输入一个,按一次回车

1

hd

flat

60

hd60M.img

测试代码

cd ..

touch mbr.s

SECTION MBR vstart=0x7c00
	mov ax,0x0000	;设置栈指应该是程序一开始就应该做的事情,这个值是参照1m内存空间布局图选择的,以后会刻意避开
	mov ss,ax
	mov ax,0x7c00
	mov sp,ax	
 
	mov ax,0x0600
	mov bx,0x0700	;BH是设置缺省属性,属性是指背景色,前景色,是否闪烁等,例如07H表示黑底白字,70H表示灰底黑字等等。
	mov cx,0x0000
	mov dx,0x184f	;这个看书p61,同时看其中关于页的知识
	int 0x10
	
	mov ax,0x0300	
	mov bx,0x0000	
	int 0x10
	
	mov ax,0x0000
	mov es,ax
	mov ax,message
	mov bp,ax
	mov ax,0x1301
	mov bx,0x0007	;设置字体属性,02是黑底绿字,07是黑底白字
	mov cx,0x000c
	int 0x10
	
	jmp $
	message db "Hello World!"
	times 510-($-$$) db 0
	db 0x55,0xaa

安装编译器nasm 命令: sudo apt install nasm

编译 nasm -o test mbr.s

写入虚拟机启动磁盘 dd if=/home/kanshan/Desktop/test of=/home/kanshan/Desktop/bochs/hd60M.img bs=512 count=1 conv=notrunc

启动虚拟机查看效果(在bochs目录下)

cd bochs

bin/bochs -f bochsrc.disk

启动之后,输入c即可看见Hello world!

评论 18
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值