Centos7+bochs 最小的操作系统搭建
作业要求搭建一个最小的操作系统,网上找到的博客主要是ubuntu系统下的,与centos7的略有不同,故记录一下。
文章目录
- Centos7+bochs 最小的操作系统搭建
-
- 安装编译环境和依赖包
- 下载并安装bochs
- 安装NASM
- 编写文件
- bochs配置文件
- 启动bochs
我的环境:
- 虚拟机用的vmware
- 虚拟机中的系统为Centos7
安装编译环境和依赖包
yum install -y gcc glibc-headers gcc-c++ libXrandr-devel
下载并安装bochs
下载到你想安装的目录
curl -O https://nchc.dl.sourceforge.net/project/bochs/bochs/2.6.9/bochs-2.6.9.tar.gz
解压
tar -zxvf bochs-2.6.9.tar.gz
进入解压后的目录
cd bochs-2.6.9
配置编译选项
./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
然后分别输入
cp misc/bximage.cpp misc/bximage.cc
cp iodev/hdimage/hdimage.cpp iodev/hdimage/hdimage.cc
cp iodev/hdimage/vmware3.cpp iodev/hdimage/vmware3.cc
cp iodev/hdimage/vmware4.cpp iodev/hdimage/vmware4.cc
cp iodev/hdimage/vpc-img.cpp iodev/hdimage/vpc-img.cc
cp iodev/hdimage/vbox.cpp iodev/hdimage/vbox.cc
make命令编译
make
make执行成功后,安装。
make install
安装NASM
yum -y install nasm
编写文件
step1、编写boot.asm文件
org 07c00hmov ax,csmov ds,axmov es,axcall DispStrjmp $
DispStr:mov ax,BootMessagemov bp,axmov cx,16mov ax,01301hmov bx,000chmov dl,0int 10hret
BootMessage: db "Hello,OS"
times 510-($-$$) db 0
dw 0xaa55
step2、使用nasm汇编boot.asm生成“操作系统”的二进制代码。
nasm boot.asm –o boot.bin
step3、使用bximage命令生成虚拟软盘.
bximage -> fd -> 1.44 -> a.img
step4、使用dd命令将操作系统写入软盘
dd if=boot.bin of=a.img bs=512 count=1 conv=notrunc
bochs配置文件
在bochs解压目录bochs-2.6.9下,复制一份配置文件。
cp .bochsrc bochsrc
vi编辑bochsrc文件
# romimage: file=$BXSHARE/BIOS-bochs-latest, options=fastboot改为如下,其中$BXSHARE改为你的解压目录下+bios
romimage: file=/usr/local/bochs-2.6.9/bios/BIOS-bochs-latest, options=fastboot
# 同上
vgaromimage: file=/usr/local/bochs-2.6.9/bios/VGABIOS-lgpl-latest# floppya: 1_44=/dev/fd0, status=inserted这行改为你的软盘镜像,我的是a.img
floppya: 1_44=a.img, status=inserted#ata0-master: type=disk, mode=flat, path="30M.sample"这行要加注释注释掉# 启动盘修改,改为软盘启动
boot: floppy
#boot: disk#sound: driver=default, waveout=/dev/dsp. wavein=, midiout=注释掉这行声音配置
启动bochs
bochs -f bochsrc
如果看到页面是
说明是debug模式,那么只需要按c,即可显示
恭喜你~成功了