记录关于最新pintos在Ubuntu20.04的环境上,进行安装,并将qemu替换默认的bochs的配置所遇到的问题和解决方案。
简介
pintos是斯坦福大学操作系统的一个project。国内很多高校会用这个来作为学生学习操作系统的实验课课程。很多学生反映难度高,耗时长。我导师带着本科生这门课,一是好奇,二是体验一下,并且巩固一下操作系统的知识,所以我也来玩一玩。
pintos默认使用的模拟器是bochs模拟器,由于需要很多的相关的依赖,以及一些更新编译的库,比较繁琐,所以该教程中我们不使用bochs模拟器,改用qemu模拟器。
安装步骤
准备工作
安装vim、make、gcc、build-essential
1  | sudo apt-get install vim  | 
安装qemu-system-x86
1  | sudo apt-get install qemu-system-x86  | 
下载pintos
可以直接从pintos的git公开仓库中进行下载最新版本,也可以下载老版本。
其中下载新版本在公开仓库中,按下述步骤下载
找到master,并点击它的tree,如图1所示

找到snapshot,点击,保存文件,如图52所示

此处我下载的版本为pintos-anon-master-f685123.tar.gz
为了方便,使用tar的解压命令解压,放到根目录下并更名为pintos
1  | tar -zxvf pintos-anon-master-f685123.tar.gz  | 
修改一些本地化配置
- 修改pintos-gdb文件
 
将路径切换到/home/{username}/pintos/src/utils下。使用vim修改其中的pintos-gdb文件。
主要修改GDBMACROS变量的值。
原值为:

修改为本机上的gdb-macors路径,该路径也在解压的pintos下,具体路径为:
注意一定要填为绝对路径。 

- 修改Makefile
还在当前```utils```路径下,修改```Makefile```文件,只需要改动一个变量的名字就可以,原名为:

将```LOADLIBES```改为```LDLIBS

- 编译utils
 
当前路径下使用make进行默认编译
修改模拟器bochs到qemu
- 修改Make.vars
 
修改/home/{username}/pintos/src/threads/的Make.vars文件
主要修改模拟器,修改前为

将bochs改为qemu

结束后可以切换到threads路径下,使用make进行默认编译生成build
修改pintos文件
将路径切换到
utils下使用vim修改
pintos文件104行左右代码,将bochs改为qemu,修改前后如图所示

使用vim修改
pintos文件260行左右代码,将kernel.bin改为绝对路径。kernel.bin是上一步在threads路径下编译生成的,在编译生成的build文件夹下,路径为/home/{username}/pintos/src/threads/build。修改前后如图所示

使用vim修改
pintos文件627行左右代码,将qemu的版本从qemu-system-i386改为qemu-system-x86_64。修改前后如图所示

修改
Pintos.pm文件仍在当前
utils路径下,使用vim修改Pintos.pm文件,将loader.bin也更改为绝对路径。loader.bin跟kernel.bin文件一样被编译生成在threads/build/路径下。修改前后如图所示


添加环境变量
使用vim修改~/.bashrc,在最后一行加上
1  | export PATH=/home/{username}/pintos/src/utils:$PATH  | 
如图所示

1  | 
  | 
试运行与make check
执行
1  | pintos run alarm-multiple  | 
会弹出qemu,并有很多信息刷新,最后显示complete,出现如图所示结果:

为了实验一顺利进行,在threads/build路径下进行make check,第一次make check时间消耗很长,需要多等等,最后出现如图所示结果表示成功


原文链接: https://zijian.wang/2021/09/14/pintos环境配置/
版权声明: 转载请注明出处.