此文是用于分析课程操作系统原理的入门级教学用系统NachOs
。
NachOs 0——安装
获取
https://homes.cs.washington.edu/~tom/nachos/
下载4.0版本。
环境
1 | Ubuntu14 i386 32位系统 |
用x64系统编译时,由于高版本gcc
+64位内核,导致了一大堆问题,最后不得不放弃,选择老版本的纯32位系统。
安装
NachOs
提供了若干支持的平台与架构。在网上搜索各类安装教程后,我发现
可能是最靠谱,最简单的。
1.安装csh
和g++
Ubuntu14 32位
默认只有gcc
,且是bash shell
。
1 | sudo apt-get install csh |
可能会有点慢,可以考虑换源。
2.获取nachos
和mips-gcc
从其他学校老师的服务器上面下下来。(参考上面贴的文章)
1 | wget -d http://cc.ee.ntu.edu.tw/~farn/courses/OS/OS2015/projects/project.1/mips-x86.linux-xgcc.tar.gz |
其中第一个是MIPS架构交叉编译环境,提供了若干已经编译过的,现成的编译MIPS架构程序的工具链。
第二个就是nachos
了。
3.解压缩
1 | tar –zxvf nachos-4.0.tar.gz |
在系统根目录下面解压mips-gcc
工具链。
1 | sudo mv mips-x86.linux-xgcc.tar.gz / |
4.编译
1 | cd nachos-4.0/code |
编译最后可能还是会报错,但是根据我的研究,似乎是在最后的test
程序测试上出了问题。实际上nachos
已经编译成功了。
5.测试
1 | cd userprog |
结果:
1 | Total threads number is 1 |
这样看来属于成功了。hooray!
总结
nachos
是真的古老,我看国内安装时候都是要修改一坨源码啥的,就是为了匹配高版本gcc
以及适应64位版本。我自己整到最后,在用ld
链接的重定位文件的时候出错了,也是让人很无语的。
最后找来找去还是通过上面那个台湾人的博客轻松解决了这个事情。他使用的是mips-gcc
交叉编译工具,我记得apt
源里面也可以直接下,不过为了防止版本过高或过低,还是乖乖的用了那个人提供的学校下载链接。这么久了都没断掉,真不错。
当然这一次小意外已经不是第一次了,上次自己编译upx
的时候也是遇到了严重的版本不匹配问题。
- 本文作者: Taardis
- 本文链接: https://taardisaa.github.io/2022/02/23/Nachos_0__Install/
- 版权声明: 本博客所有文章除特别声明外,均采用 Apache License 2.0 许可协议。转载请注明出处!