正好在学pintos,看那个文档实在麻烦,为了方便大众~~还是写个东西~
pintos程序在simulator上跑,simulator有bochs和qemu两种选择。进入系统后首先面临的问题是无处下手。因为不知道文件的目录,就不能在command里做什么。
解决方法:打开file manager,会显示目录,如/home/osproj/Desktop
让我们先来看一下桌面上的东西~pintos是一个单纯的文件夹,pintos.tar.gz是一个打包压缩文件,可以通过解压缩变成pintos。
解决方法:在Desktop目录下打开terminal,输入tar zxvf pintos.tar.gz即可变成一般的文件夹
pintos文件夹里有很多子文件,下面一一介绍:
1.threads 最基本的内核的源文件。在project1中用到。
2.
。。。
接下来我们肯定想要了解怎么编译第一个threads的程序,进入threads文件夹,并打开terminal,输入make [SIMULATOR=--bochs | SIMULATOR=--qemu] 即可生成build文件夹,
build文件夹下有几个文件,下面介绍一下:
1.MakeFile 这是pintos/src/MakeFile.build的副本。
2.kernel.o 对于整个内核的一个object file 可用gdb编译。
3.kernel.bin 内核的内存影像文件。
4.loader.bin 内核加载器的影像文件。
5.os.dsk 内核的硬盘影像文件。
//其实这些太空了,讲了也没用。下面讲的就比较实在了。
怎样跑pintos程序这个是必须知道的,需要在simulator上跑,进入build/test/threads里有很多程序,你可以随便挑一个来泡泡~书上说跑alarm-multiple,那就先拿这个玩玩~,在build文件下打开terminal,输入pintos run alarm-multiple,即可跑一个程序,会在terminal和bochs两边都跑一遍,这是书上reproducibility,如果你不想在terminal上出现,则可以重定向~C++里也有类似概念,自己查,我不说。
输入 pintos run alarm-multiple >file.txt 即可定向到file.txt中。yeah~~
细点说~看下terminal里跑的样子~首先是仿真器的版本~2008年7月3号~三年前~~
后面是设置路径,生成一个bochsrc.txt这个文件很重要,他能启动仿真器,并初始化一些某某某~自己去看,这种对project没用的不说废话了。
pintos一般把输出映射到VGA display和第一个serial port:仿真器。
pintos -h可以帮助!!帮助是有用的,在帮助中可以看到书上有些东西是没用的,敢骗我!貌似没有什么-j seed这种东西的,帮助里都没说明。
跑了一个文件是不是不过瘾~好!接下来跑整个project:threads
在build文件夹在打开terminal 输入make check 即可跑。最后会说你成功了几个,失败了几个~初始是7/27 能对7个~ 如果你想单独查某个任务,可以在t.output看输出,t.result看success/fail。
书上又有一个东西骗我。。桑心。我在tests/threads里打开terminal,输入make alarm-multiple.result 尽然不行。哎。
好了,
第0部分我们学到了什么呢?
0.pintos目录。
1.pintos的run
2.simulator基础。
3.压缩解压缩。