记录关于最新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环境配置/
版权声明: 转载请注明出处.