在学完了计算机组成原理和汇编语言后,虽然操作系统的理论知识能看懂了,但做起操作系统xv6或ucore实验还是有一定难度,所以还是得补一补x86汇编的知识。
需要的软件:
nasm 汇编语言编译器,上一次已说明如何安装X86模拟器软件:bochs1.系统环境
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的硬盘引导文件。
说明已经安装成功了,后面需要编写主引导程序。
电脑