操作系统实战环境搭建

本系列使用bochs虚拟机进行操作系统的开发 参考教材《操作系统真相还原》、《操作系统导论》、《操作系统导论》、《计算机体系结构一量化研究方法》等

bochs虚拟机在windows环境下也可运行 实际开发过程中可以用Cygwin64工具在windows端实现unix端的操作(该方案经过本人的简单尝试 理论上可以实现 有兴趣的可以自己尝试摸索)

各类Linux服务介绍

目前可以使用以下几种linux虚拟机方案\

一.使用云服务器

  • 使用例如腾讯云,阿里云一类的云服务器
优点
  • 1.云服务器一般使用本地SSH工具连接,占用资源较少
  • 2.云服务器的镜像一般都已经配置好了,为不熟悉linux的小白省去很多麻烦
  • 3.拥有自己的服务器可以做很多事,例如可以搭建自己的个人网站
缺点
  • 1.收费(一般还很很贵),本人618期间购买的2核2G阿里云服务器一年使用权价格高达99RMB
  • 2.云服务器一般不支持GUI,bochs虚拟机需要对GUI的支持,需要自己在服务器端配置GUI之后使用VNC VIEWER(收费,而且很贵)、Xmanager(收费、而且特别贵)等工具进行连接,配置过程极其繁琐

二.使用虚拟机

  • 使用Vitual Box(免费)、VmWare(收费)、Hyper-V(windows专业版自带)等虚拟机程序
优点
  • 1.图形化界面,适合习惯windows的使用者
  • 2.免费\
缺点
  • 1.占用本地资源较多,部分低配置电脑可能会比较卡顿
  • 2.对于一些爱折腾电脑的geek来说,一些操作可能会导致虚拟机软件虚拟化失效

三.使用WSL

优点
  • 1.嵌入在windows中的Linux,用了都说好
  • 2.提高文件系统性能
  • 3.支持完全的系统调用兼容性
缺点
  • 1.和云服务器一样不支持GUI,需要自己安装GUI,或者升级到较高版本的windows10或者Windows11完成对Linux内核的更新

总结:对于普通用户最好的选择就是使用VitualBox 由于本人已经升级预览版Windows11 下面为大家介绍如何在WSL2G中进行Bochs环境配置\(对于VitualBox的使用可自行百度,可以找到很多文章 )

Bochs环境配置

一.环境配置

1.换源

对于新安装的Linux系统需要对apt源进行配置,推荐使用TUNA源:ubuntu | 镜像站使用帮助 | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror(其他linux发行版可以自行在TUNA网站寻找)

使用vim打开镜像文件

1
sudo vi /etc/apt/sources.list

单击esc键进入命令模式,输入ggVG可以全部选中,删除选中的镜像列表(不嫌麻烦的也可以用退格或者del键一行行删除)

将下列镜像列表粘贴进镜像文件中

1
2
3
4
5
6
7
8
9
10
11
12
13
# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security main restricted universe multiverse

# 预发布软件源,不建议启用
# deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-proposed main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-proposed main restricted universe multiverse

点击esc进入命令模式,按如下过程操作:

  • 输入冒号 :
  • 输入wq!命令
  • 单击回车键(enter)
  • 此时应该已经回到linux的shell界面 输入如下命令更新镜像列表
1
sudo apt updata
2.安装必备软件

安装编译bochs需要的工具

  • g++
1
sudo apt-get install g++ 
  • make
1
sudo apt-get install make
  • 可视化库
1
sudo apt-get install libx11-dev xserver-xorg-dev xorg-dev
3.bochs安装

用weget命令拉取所需要的bochs压缩包(可以自行选择需要的版本)

1
wget https://sourceforge.net/projects/bochs/files/bochs/2.6.11/bochs-2.6.11.tar.gz
  • 注:所拉取的文件一定是以tar.gz为后缀\

解压并切换到文件夹下

1
2
tar zxvf bochs-2.6.11.tar.gz
cd bochs-2.6.11/

添加配置

1
2
3
4
5
6
7
8
./configure \
--prefix=/your_path/bochs \
--enable-debugger \
--enable-disasm \
--enable-iodebug \
--enable-x86-debugger \
--with-x \
--with-x11

说明一下 configure 里的参数
—prefix=/your_path/bochs 指定 bochs 安装目录,将 your_path 替换为你自己的目录,或者不使用这个参数,安装到默认目录。
—enable-debugger 打开 bochs 自己的调试器
—enable-disasm 使 bochs 支持反汇编
—enable-iodebug 启用 io 接口调试器
—enable-x86-debugger 支持 x86 调试器
—with-x 使用 x windows
—with-x11 使用 x11 图形用户接口

关于bochs安装目录的选择:WSL挂载在windows系统硬盘下 建议选额WSL挂载的根目录 打开WSL界面 蓝色的字体即为当前机器WSL系统挂载的硬盘位置

  • 对应参数即为
1
--prefix=/mnt/c/Users/10303/bochs

完成配置后进行编译和安装

1
2
sudo make
sudo make install
4.bochs的配置
  • 退回wsl根目录
1
cd ..
  • 使用ls命令查看当前文件夹下的内容,如果安装成功就可以在根目录下看到bochs文件夹

  • 进入bochs安装文件
1
cd bochs
  • 新建bochs配置文件
1
sudo vi "配置文件名"
  • 将配置文件内容粘贴到文件中 修改实际路径 实际路径即之前提到的安装目录
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#第一步,首先设置 Bochs 在运行过程中能够使用的内存,本例为 32MB 
megs: 32

#第二步,设置对应真实机器的 BIOS 和 VGA BIOS
romimage: file=/实际路径/bochs/share/bochs/BIOS-bochs-latest
vgaromimage: file=/实际路径/bochs/share/bochs/VGABIOS-lgpl-latest

#第三步,设置 Bochs 所使用的磁盘,软盘的关键字为 floppy。
#若只有一个软盘,则使用 floppya 即可,若有多个,则为 floppya,floppyb…
#floppya: 1_44=a.img, status=inserted

#第四步,选择启动盘符
#boot: floppy #默认从软盘启动,将其注释
boot: disk #改为从硬盘启动。我们的任何代码都将直接写在硬盘上,所以不会再有读写软盘的操作

#第五步,设置日志文件的输出
log: bochsout.txt

#第六步,开启或关闭某些功能
#下面是关闭鼠标,并打开键盘
mouse: enabled=0
keyboard: keymap=/实际路径/bochs/share/bochs/keymaps/x11-pc-us.map

# 硬盘设置
ata0: enabled=1, ioaddr1=0x1f0, ioaddr2=0x3f0, irq=14

输入bin/bochs启动虚拟机

  • 默认选项为【2】读取配置文件,单击回车键会要求输入配置文件名 输入后单击回车键 如果没有错误默认选项就会变成【6】 如下图所示

  • 回车键启动bochs(此时的bochs界面是空的) 在linux的界面中输入exit即可退出

5.创建虚拟硬盘
  • 最后需要为bochs创建虚拟硬盘 在bochs安装根目录下使用如此下命令 也可以输入bin/bximage —help查看参数后自定义参数 这里创建一个60m的虚拟硬盘
1
bin/bximage -mode="create" -hd=60 -imgmode="flat" -q hd60M.img

按照提示将对应的语句添加到bochs配置文件中保存就完成了bochs的完整安装配置