怎么安装硬盘引导文件 ()

在学完了计算机组成原理和汇编语言后,虽然操作系统的理论知识能看懂了,但做起操作系统xv6或ucore实验还是有一定难度,所以还是得补一补x86汇编的知识。

需要的软件:

nasm 汇编语言编译器,上一次已说明如何安装X86模拟器软件:bochs

1.系统环境

CentOS7 Linux release 7.9.2009 (Core)

2.安装依赖库

正式安装之前,需要先安装依赖库:为了省事,就都安装了,省得后边麻烦

yum install gtk2 gtk2-devel libXt libXt-devel libXpm libXpm-devel SDL SDL-devel libXrandr-devel.x86_64 xorg-x11-server-devel glibc-headers gcc-c++ SDL SDL-devel

3.bochs官网地址: https://sourceforge.net/projects/bochs

我用的2.7版本,所以下载命令和解压命令如下:

tar xvfz 电脑 bochs-2.7.tar.gz


4. 进行配置

进入bochs目录

./configure --enable-ne2000 \

--enable-all-optimizations \

--enable-cpu-level=6 \

--enable-x86-64 \

--enable-vmx=2 \

--enable-pci \

--enable-usb \

--enable-usb-ohci \

--enable-e1000 \

--enable-debugger \

--enable-debugger-gui \

--enable-disasm \

--with-sdl \

--with-x11


编译的时候总是提示有一个地方找不到,可以试试下面的

./configure --with-x11 --with-wx --enable-debugger --enable-disasm --enable-all-optimizations --enable-readline --enable-long-phy-address --enable-ltdl-install --enable-idle-hack --enable-plugins --enable-a20-pin --enable-x86-64 --enable-smp --enable-cpu-level=6 --enable-large-ramfile --enable-repeat-speedups --enable-fast-function-calls --enable-handlers-chaining --enable-trace-linking --enable-configurable-msrs --enable-show-ips --enable-cpp --enable-debugger-gui --enable-iodebug --enable-logging --enable-assert-checks --enable-fpu --enable-vmx=2 --enable-svm --enable-3dnow --enable-alignment-check --enable-monitor-mwait --enable-avx --enable-evex --enable-x86-debugger --enable-pci --enable-usb --enable-voodoo


5.安装bochs

make

make install

6. 需要添加环境变量

export BXSHARE=/usr/local/share/bochs


7. 运行bochs

进入bochs的主目录bochs2.7 执行bochs,出现如下图所示,说明安装成功

A. 可能的错误

1.如果出现错误:

>>PANIC<< .bochsrc:955: Bochs is not compiled with lowlevel sound support


# vim后的参数有点号 .

vim .bochsrc

编辑bochs目录下的.bochsrc文件,注释掉声卡相关的配置 955行,同时我把speaker也注释掉了。


注意: .bochsrc文件是点开头的隐藏文件,需要执行ls -a 命令才可以查看到

可以复制一份bochsrc文件成为非隐藏的: cp .bochsrc bochsrc

执行时指到bochsrc: bochs -f bochsrc


bochs启动菜单选择,默认选择6 回车

出现提示

Device: [HD]

Message: ata0-0: could not open hard 电脑 drive image file '30M.sample' couldn't open hard

是正常的,本机没有30M.sample的硬盘引导文件。

说明已经安装成功了,后面需要编写主引导程序。


电脑