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

1、VMware下载安装

下载vmware,我下载的版本是VMware16pro,从其他博主给分享的下载链接,大家可以自行搜索vmware的安装,比较简单

下载位置:链接:https://pan.baidu.com/s/12KrxIUZPpeX_awp7DVkkcg?pwd=39lh
提取码:39lh  

2、Ubutu操作系统下载安装

虚拟机操作系统安装的是ubuntu-22.04.4版本

百度搜索,Ubuntu镜像(由于服务器在国外,所以去官网下载ubuntu系统会非常慢。建议在国内的一些镜像站下载。),找到清华镜像:清华大学开源软件镜像站 | Tsinghua Open Source Mirror

虚拟机的创建和ubuntu操作系统的安装,大家网上自行搜索安装就可以(参考很多)。

3、下载安装Bochs 

下载地址:https://udomain.dl.sourceforge.net/project/bochs/bochs/2.6.8/bochs-2.6.8.tar.gz

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

先安装环境依赖

sudo apt install build-essential
sudo apt-get install libghc-x11-dev
sudo apt-get install xorg-dev

进入解压后的bochs-2.6.8文件夹 cd bochs-2.6.8,执行如下图命令,其中prefix修改为自己虚拟机中的位置

sudo ./configure \
--prefix=/home/xingchendahai01/bochs \
--enable-debugger \
--enable-disasm \
--enable-iodebug \
--enable-x86-debugger \
--with-x \
--with-x11  LDFLAGS='-pthread'

make

make install

下图为bochs安装后的信息 

4、创建bochs启动的配置文件

进入安装好bochs的目录 cd /*/*/bochs创建bochsrc.disk 命令: touch bochsrc.disk,在其中写下配置信息

megs : 32

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

boot: disk

log: bochs.out

mouse:enabled=0
keyboard:keymap=/home/xingchendahai01/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

5、测试bochs运行 

bochs的启动配置文件,ata0-master可以先注释掉(因为此时还没有创建磁盘),然后 进入到bochs目录,执行bin/bochs -f bochsrc.disk,观察虚拟机的启动情况,如下图所示

6、创建磁盘

命令:bin/bximage

 输入命令后,根据提示依次输入如下磁盘信息

1
hd
flat
60
hd60M.img 

修改bochs的启动配置文件,将上图箭头所指示信息更新到bochs配置文件中的ata0-master,也即将下图的注释去掉,并根据创建后生成的CHS(柱面/磁头/扇区)进行修改

#ata0-master: type=disk, path="hd60M.img", mode=flat,cylinders=121,heads=16,spt=63

 再次进入bochs目录,执行bin/bochs -f bochsrc.disk,此时报错信息跟书中一样,提示该磁盘不是启动磁盘。

7、添加mbr程序

并利用Linux自带的dd命令将其写到新创建的磁盘中的0盘0道1扇区,也即磁盘的第一块扇区,BIOS程序识别到该扇区最后两字节是0x55和0xaa,便认为此扇区中为可执行程序,便将该扇区代码加载至0x7c00处,并通过跳转语句跳转至0x7c00处执行我们自己写的mbr程序。

//安装编译器nasm
sudo apt install nasm

//编译后写入磁盘
nasm -o test mbr.s
dd if=/home/xingchendahai01/project/test of=/home/xingchendahai01/bochs/hd60M.img bs=512 count=1 conv=notrunc
SECTION MBR vstart=0x7c00
	mov ax,cs	
	mov ss,ax
	mov ax,0x7c00
	mov sp,ax	

    ;INT 0x10功能
	;清屏利用0x06号功能,上卷全部行,则可清屏
	mov ax,0x0600
	mov bx,0x0700	;BH是设置缺省属性,属性是指背景色,前景色,是否闪烁等,例如07H表示黑底白字,70H表示灰底黑字等等。
	mov cx,0x0000
	mov dx,0x184f	

	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是黑底白字
    ;cx为字符串长度
	mov cx,0x000c

	int 0x10
	
	jmp $
	message db "Hello World!"
	times 510-($-$$) db 0
	db 0x55,0xaa

 

 另外,为了方便主机和虚拟机之间拷贝文件和内容,可以执行如下两条命令,执行后,主机  和虚机之间无障碍进行复制粘贴

主机和虚拟机之间可以复制
sudo apt-get install open-vm-tools
sudo apt-get install open-tools-desktop

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值