一、所用ubuntu及虚拟机版本
之前还尝试了在docker下安装,但是出现很多奇奇怪怪的错误,所以放弃了,直接选择在虚机下安装
版本
电脑:MacBook Pro
虚拟机:VirtualBox 7.1.8
linux 版本:ubuntu 20.04.6
虚拟机配置
内存:8192M
硬盘:50G
处理器:4
资源分享
bochs-2.6.tar.gz
在下面的夸克网盘中:
1 | 我用夸克网盘给你分享了「share_tinyOS」,点击链接或复制整段内容,打开「夸克APP」即可获取。 |
二、bochs模拟器配置
首先用该链接下载bochs-2.6.tar.gz
先解压:tar -zxvf bochs-2.6.tar.gz
终端cd
到bochs-2.6
文件夹中,执行./configure
进行config,其中--prefix=
后面路径中的akira
修改为自己的用户名
1 | ./configure \ |
第一个报错解决:
sudo apt-get -y install gcc
,解决方案是装一个编译器第二个报错解决:
sudo apt-get install build-essential
执行make
和make install
出现报错,解决方法为:
sudo apt-get install -y libgtk2.0-dev
,然后重新执行./configure
和make
成功执行完make
和make install
后,生成bochs
文件夹,该文件夹下可以进行我们的内核编写、内核编译运行、起虚拟机等一系列学习操作。
三、运行bochs
1. 配置bochsrc.disk
由于boxsrc.disk
文件需要用到下面生成的镜像文件路径,因此将该配置放在附录中
2. 运行bochs:无启动盘
在bochs
路径下执行bin/bochs
:
之后输入c
进入模拟器,但是显示没有启动盘。
Bochs 启动时会读取配置文件(通常是 bochsrc),其中指定了启动盘(boot drive)镜像的位置。如果没有正确配置或指定的镜像文件不存在,就会出现没有启动盘的问题。
因此需要用 bximage
创建 .img
镜像并正确配置
bochsrc
。
3. 创建虚拟盘
bin/bximage
是一个虚拟磁盘镜像生成工具,生成的虚拟磁盘后缀名为.img
,下面我们将运行bin/bximage
创建一个虚拟磁盘镜像,根据运行后的指引一步步生成master镜像:
创建成功后,在bin
目录下生成了master-hd60M.img
,创建完并修改配置文件bochsrc.disk
,将虚拟的镜像硬盘文件的路径添加进去,再次启动模拟器:
此时只有master盘,还是无法读取盘,但是报错内容跟未加磁盘前不一样了:
上一个报错截图中shell的报错内容是Boot failed:could not read the boot disk
而此次报错截图内容是Boot failed:not a bootable device
4. 编写MBR文件作为master的主引导程序
具体操作见文档另一篇博文手写操作系统2:编写MBR主引导扇区
四、ubuntu设置开启ssh
本机写得ssh config文件:
1 | Host 172.16.33.128 |
连接ssh需要先把本机的代理关了,解决办法是:
附录-bochs配置文件说明
在./bochs/
路径下创建bochsrc.disk
文件:
1 | vim bochs.disk #创建配置文件(配置文件存放位置和文件名可以随意) |
最后,以本人为例,编写的disk
文件如下:
1 | megs : 32 |
问题处理
无法打开终端,一直转圈
解决方法:VirtualBox_Ubuntu22.04 Terminal无法打开,其中nano用Ctrl+X 保存并退出
找不到root密码
解决办法:在刚开始创建虚拟机时就输入密码了,当前密码为akira
virtualbox共享文件
解决办法:1)安装VBoxGuestAdditions 2)打开拖放功能
参考
《操作系统真象还原》