自己动手写操作系统之1:bochs初步使用

本文记录了作者使用bochs搭建操作系统运行环境的过程,包括bochs的安装、配置文件创建、虚拟硬盘制作、程序写入硬盘及启动时遇到的错误及解决方案。在错误部分,作者详细分析了四个常见问题的原因及解决方法,帮助读者规避这些坑。
摘要由CSDN通过智能技术生成

0x00 前言

自己动手写操作系统,自然需要一个承载程序的运行环境,这一章记录我使用bochs遇到的坑,凌晨十二点半才填完坑。

这次记录的是使用bochs完整实现一个最简单的操作系统(其实根本不算操作系统,只是通过硬盘启动个mbr程序)。

0x01 bochs

1.安装

安装比较简单了,我没有使用源码安装,不想再折腾那个了,不然估计我就没戏能开始了。

yum install bochs bochs-x -y

需要装两个东东,后面一个如果不过,会报错,如果报错可以看我后面的错误记录。

2.配置文件

bochs需要一个配置文件,来描述硬件信息。文件里面有详细的注释。

配置文件就叫bochs.disk,名字可以随意,后缀是什么也无所谓。

###############################################################
# Configuration file for Bochs
###############################################################

# how much memory the emulated machine will have
megs: 32

# 对应真实机器的BIOS和VGA BIOS
romimage: file=/usr/share/bochs/BIOS-bochs-latest
vgaromimage: file=/usr/share/bochs/VGABIOS-lgpl-latest

# 设置bochs使用的磁盘,软盘使用关键字floppya,硬盘使用disk
# 若有多个软盘,可写floppya,floppyb
#floppya: 1_44=a.img, status=inserted

# choose the boot disk.
# 默认是软盘,注释掉,改为disk
#boot: floppy
boot: disk

# where do we send log messages?
log: /tmp/bochsout.txt
# disable the mouse
mouse: enabled=0

# enable key mapping, using US layout as default.
keyboard_mapping: enabled=1, map=/usr/share/bochs/keymaps/x11-pc-us.map

ata0: enabled=1, ioaddr1=0x1f0, ioaddr2=0x3f0, irq=14

#这一句是根据bximage生成的,后面会解释。
ata0-master: type=disk, path="/home/dante/workspace/os/hd60M.img", mode=flat, cylinders=121, heads=16, spt=63

3.制作虚拟硬盘

这里使用bochs配备的bximage。

root@dante-pc:/home/dante/workspace/os# bximage -hd -mode='flat' -size=
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值