动手学操作系统(一、搭建实验环境)

动手学操作系统(一、搭建实验环境)

🚀 环境配置 🚀
笔者的环境使用的是

  • ubuntu 20.04
  • bochs 2.7

这里的ubuntu你可以在虚拟机里安装,也可以安装双系统,也可以是单独的ubuntu系统,这个就看个人的喜好。

针对初学者来说,笔者推荐使用虚拟机平台VMwarewindow环境下来安装ubuntu。
或者可以使用VirtualBoxlinux环境下安装ubuntu。

1. 在VMware虚拟机中安装ubuntu20.04

具体的安装方法可以参考笔者的这篇博客:

【Ubuntu】在VMWare虚拟机中安装Ubuntu20.04【教程】

安装完毕后,需要安装一些别的依赖

# 安装c语言编译器gcc
sudo apt-get install gcc
# 安装一些套件
sudo apt install build-essential
# 安装汇编语言编译器nasm
sudo apt-get install nasm

2. 安装Bochs

Bochs 是一个开源的 x86 和 x86-64 计算机仿真器(Emulator),用于模拟 Intel x86 CPU、常见的设备和外设、以及完整的 PC 系统。它允许用户在不同的操作系统环境中运行各种操作系统,并且可以用于开发、调试和学习目的。Bochs 提供了一个高度可配置和可移植的仿真环境,开发者可以用它来测试和调试操作系统的代码。它支持单步执行和断点设置,使开发者能够深入分析操作系统的行为。开发人员可以在 Bochs 中测试他们的软件,特别是在不同硬件配置和操作系统环境下的兼容性。通过仿真不同的硬件配置,开发者可以发现并解决潜在的问题。

首先进入Bochs官网:Bochs

选择bochs-2.7.tar.gz,然后下载

Image

下载完毕后,进行解压

tar -zxvf bochs-2.7.tar.gz 
cd bochs-2.7

然后配置bochs

sudo ./configure --enable-debugger --enable-disasm --prefix=/home/your_usr_name/bochs --enable-iodebug --enable-x86-debugger --with-x --with-x11

记得将your_usr_name替换为你的用户名,然后进行编译和安装

make
make install

如果安装顺利的话,会安装到路径/home/your_usr_name/bochs

3. 启动计算机

bochs内置了一个创建硬盘的工具bximage,这个工具放置在路径/home/your_urs_name/bochs中,我们运行这个工具就可以很方便地按照其提示来创建一个硬盘。

cd /home/your_usr_name/bochs/bin
./bximage
Image
  • 首先,选择1创建新的硬盘
  • 然后,选择创建的类型是floppy软盘fd还是hard硬盘hd
  • 然后,选择硬盘的类型flat
  • 然后,指定每个硬盘的扇区有多少字节512
  • 然后,选择硬盘的容量大小为多少MB60
  • 最后,给硬盘取名字hardisk60MB.img
Image

然后我们就可以编写启动文件了,这里命名为iebochsrc.disk,后缀.disk表示此配置文件的内容是从硬盘启动,不使用这个后缀也没关系。

cd /home/your_usr_name/bochs/bin
gedit bochsrc.disk

然后写入以下的内容,记得将your_usr_name更改为你的用户名。

# 设置内存为32MB
megs: 32

# 设置对应机器的BIOS
romimage: file=/home/your_usr_name/bochs/share/bochs/BIOS-bochs-latest 
# 设置对应机器的VGA BIOS
vgaromimage: file=/home/your_usr_name/bochs/share/bochs/VGABIOS-lgpl-latest 

# 选择启动盘符,默认为从软盘启动,但是这里设置为硬盘,软盘太古老了
boot: disk 

# 设置日志文件的输出
log: bochs_out.log

# 关闭鼠标功能,打开键盘功能,并且设置键盘的映射
mouse: enabled=0 
keyboard: keymap=/home/your_usr_name/bochs/share/bochs/keymaps/x11-pc-us.map 

# 硬盘设置
ata0: enabled=1, ioaddr1=0x1f0, ioaddr2=0x3f0, irq=14 
ata0-master: type=disk, path="/home/your_usr_name/bochs/bin/hardisk60MB.img", mode=flat

使用bochs开始模拟

cd /home/your_usr_name/bochs/bin
./bochs -f bochsrc.disk

这里的-f用于指定启动的配置文件,就是我们刚才配置bochsrc.disk。然后再按照提示按下6c

运行的效果如下,由于我们没有编写BootLoader所以自动报错退出了。

在这里插入图片描述

Reference

[1]《一个64位操作系统的设计与实现》
[2]《操作系统真象还原》
[3] 手写简易操作系统

  • 23
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

木心

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值