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

本文详细描述了在VMware虚拟机中的CentOS7系统上,如何安装必要的依赖库,如GTK2、Xorg等,以及如何从源码编译并配置Bochs模拟器,包括设置磁盘映像和MBR,以实现HelloWorld程序的模拟执行。
摘要由CSDN通过智能技术生成

本机环境

vmware + Centos7+linux内核版本3.10.0-1160.el7.x86_64+bochs-2.6.8

依赖环境的安装(需要在root用户下,不是在root用户下加入sudo

Sudo yum -y install gtk2 gtk2-devel

Sudo yum -y install libXt libXt-devel

Sudo yum -y install l libXpm libXpm-devel

Sudo yum -y install SDL SDL-devel

Sudo yum -y install l libXrandr-devel.x86_64

Sudo yum -y install xorg-x11-server-devel

Sudo yum -y install gcc

Sudo yum -y install l gcc-c++

Bochs 安装(我的必须在虚拟机中重新下载bochs压缩包,copy到虚拟机中尝试几次均不成功,文件损坏)

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

解压安装包 sudo tar -zxvf bochs-2.6.8.tar.gz

创建新的目录去安装bochs  mkdir bochs

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

安装配置环境

./configure --prefix=/root/Ytest/bochs --enable-debugger --enable-disasm --enable-iodebug --enable-x86-debugger --with-x --with-x11 LDFLAGS='-pthread'(/root/Ytest/替换为自己的路径)

编译 make

安装 make install

进入新创建的bochs文件夹 cd bochs ,创建touch  bochsrc.disk  ,进入配置文件 vim bochsrc.disk 填入配置信息

megs : 32

romimage: file=/root/Ytest/bochs/share/bochs/BIOS-bochs-latest(路径替换)

vgaromimage: file=/root/Ytest/bochs/share/bochs/VGABIOS-lgpl-latest(路径替换)

boot: disk

log: bochs.out

mouse:enabled=0

keyboard:keymap=/root/Ytest/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

ESC键输入:wq退出

创建磁盘 bin/bximage

输入参数

1

hd

flat

60

hd60M.img

编写测试代码 cd ..(上一级目录)

Touch mbr.s

Vim mbr.s

SECTION MBR vstart=0x7c00

       mov ax,0x0000    

       mov ss,ax

       mov ax,0x7c00

       mov sp,ax     

       mov ax,0x0600

       mov bx,0x0700    

       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    

       mov cx,0x000c

       int 0x10

      

       jmp $

       message db "Hello World!"

       times 510-($-$$) db 0

       db 0x55,0xaa

安装编译器 sudo yum -y install nasm

进行编译 nasm – o ytest mbr.s

写入磁盘 dd if=/root/Ytest/ytest of=/root/Ytest/bochs/hd60M.img bs=512 count=1 conv=notrunc

进入bochs cd bochs

运行 bin/bochs -f bochsrc.disk

回车后输入字符c 就可以看见Hello world!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值