开发一个操作系统(一)
前言
笔者今年大三,来自沙坡村男子技术学院,在10月初开始打算自己制作一个操作系统,最开始理由很简单,自己想做一个能够运用最高效的代码实现软硬件的结合的programmer,再加之后来班主任评奖学金时候,觉得ACM校赛的一等奖能比自己辛苦5个月参加的IOT比赛的国奖更加有力,于是也更加坚定了制作属于自己OS的决心。目前的打算将OS取名为"AMX",因为安慕希好喝!
准备工作
环境的搭建:,最好都先安装好(按顺序)
Ubuntu 20.04虚拟机
nasm
GCC
build-essential,xorg-dev,libgtk2.0-dev,libgtk2.0-dev
Bochs 2.6.11
Ubuntu安装
选择使用VM直接进行安装,ISO来源于清华镜像源
这中间还可以安装或者配置一些能够提高编程幸福指数的Tools
1.使用vscode连接本地虚拟机,使得可以在vscode上对终端进行操作
2.下载WinSCP,可以使得自己的电脑与虚拟机进行文件之间的IO
Bochs安装
方案一:
直接在Ubuntu中使用
sudo apt-get install bochs
缺点:无法进行调试
方案二:
自行手动下载
笔者校园网无法进入SourceForge进行下载,于是曲线救国,从直接云服务器端进行下载,然后传回本地
官网地址:http://bochs.sourceforge.net/getcurrent.html
服务器端命令:
!!注意,你解压的位置最好提前选定,或者你要清楚文件在哪
wget http://sourceforge.net/projects/bochs/files/bochs/2.6.11/bochs-2.6.11.tar.gz/download -O bochs.tar.gz
tar -xvfz bochs.tar.gz
cd bochs-2.6.11
./configure --enable-debugger --enable-debugger-gui --enable-disasm --with-x --with-term
make
sudo make install
此处你要注意,有一些软件你需要预先下载好,在准备工作中有提到,
make阶段会有十多秒的等待,如果在某个地方因为报错而终止,很多原因都是因为你没有安装完整的依赖,如果还有其他没有安装的可以先自行百度,然后再使用apt-get命令进行安装
在使用sudo make install指令完成后,你的bochs其实已经安装好了,但是你还需要对它的配置文件进行设置
此处,你可以理解为,bochs通过读懂你写的配置文件,去给你配置相应的环境,所以你的环境其实可以有很多,取决于你的配置文件
文件的名字是可以任意取的,默认你可以设置为bochsrc.txt(要记住名字和文件路径哦!)
配置文件里面的内容,你可以参考
https://blog.youkuaiyun.com/wanyongtai/article/details/80414011
这篇文章写得很全面,这里你要注意你需要了解自己软件安装在哪里,已经配置文件中所需要的文件其对应的路径在你本机中是哪个位置!!
这里是我的路径配置,自己也是踩了很多坑,网上大多都是/usr/share/bochs啥的,但是你这还是要结合自身
# 虚拟机内存大小
megs:32
# 对应真实机器的BIOS和VGA BIOS
#这里很重要,找不到的可以直接先全局搜索一下
romimage: file=/home/nishizzma/桌面/bochs/bochs-2.6.11/bios/BIOS-bochs-latest
vgaromimage: file=/home/nishizzma/桌面/bochs/bochs-2.6.11/bios/VGABIOS-lgpl-latest
# 设置bochs使用的磁盘:软盘使用关键字floppya,硬盘使用disk
# 若有多个软盘,可写floppya,floppyb;
#这里的软盘位置要设置对!!
floppya: 1_44="/home/nishizzma/桌面/OSDemo/chapter1/a/a.img", status=inserted
#设定启动磁盘
boot:floppy
# 或者是 boot:disk
#目录信息地址
log:bochsout.txt
#鼠标是否可用
mouse:enabled=0
#键盘快捷键是否可用,使用美国键盘布局(US layout)作为默认值
keyboard:keymap=/home/nishizzma/桌面/bochs/bochs-2.6.11/gui/keymaps/x11-pc-us.map
此时你就已经配置好bochs了,但是你现在还需要验证
自己安装配置文件的位置写入一个软盘,或者生成一个软盘.img文件(后续我会持续更新)
此时,你只需要按下
bochs -p -f bochsrc.txt
注意要在配置文件的路径下哦!软盘位置也要对应哦!
然后就能看到bochs的界面了!
参考:
https://blog.youkuaiyun.com/wanyongtai/article/details/80414011
https://blog.youkuaiyun.com/zhaodedong/article/details/51082128
https://blog.youkuaiyun.com/furzoom/article/details/52484413