1. Nachos开发环境的安装测试
我的ubuntu版本为20.4,都是图片,懒得写代码啦,不同版本下载总会遇到不同问题,可以参考
1.1 安装编译本工具包
1.2 安装 c,c++多平台库
1.3 安装32位环境库(由于nachos只在32位环境中才可以编译成功)
1.3.1 打开支持 32 位置支持功能
1.3.2 安装32位环境库
此处运行命令报错,经过搜索资料发现,这是由于不同版本的Kali Linux,它的源软件包名字会发生一些局部的变化,这都是很正常的。 低版本的Kali Linux(基于Debian)通常是用第一个命令是没任何问题的。高版本的Kali Linux(基于Debian)就必须得用第二个命令了,否则就会报“E: 无法定位软件包 lib32ncurses5”这个错误。我的ubuntu版本为20.04版本,版本过高。则采用新的命令安装。
成功安装。
继续安装完整
1.4 要安装低于 gcc5.0 的版本
由于我的ubuntu版本过高,最新版本的 Ubuntu 中,默认情况下可能没有提供 gcc-4.8 和 g++-4.8 这样的旧版本软件包。
解决方法:
-
打开终端,并以管理员权限运行以下命令来编辑
/etc/apt/sources.list
文件:sudo nano /etc/apt/sources.list
-
在打开的编辑器中,向文件末尾添加如下内容:
deb http://dk.archive.ubuntu.com/ubuntu/ xenial main deb http://dk.archive.ubuntu.com/ubuntu/ xenial universe
-
保存并关闭文件。如果使用的是 nano 编辑器,按下
Ctrl + X
,然后按Y
确认保存,最后按 Enter 键退出。 -
更新软件包列表:
sudo apt update
-
最后,可以尝试安装特定版本的编译器:
sudo apt install gcc-4.8 gcc-4.8-multilib g++-4.8 g++-4.8-multilib
安装好4.8版本后
将低版本 gcc 与 g++切换为当前活跃版本
检查版本是否正确
1.5 下载nachos并编译
新建一个Nachos包,将压缩包下载到这个文件夹中,然后执行解压操作。
进入code/threads目录中,执行make,即可编译成功
然后可以直接运行"./nachos"来启动这个操作系统项目
1.6 安装好用于MIPS的交叉编译器
将压缩包复制到用户主目录Home下,然后解压至/usr/local目录下
2. Nachos实验代码框架(源码目录)的基本分析
二、nachos的主要目录结构
Makefile 文件 Nachos的Makefile文件
Makefile.common 文件 可以修改 Makefile.dep 中的 HOST 参数
Makefile.dep 文件 存储Makefile生成的依赖关系
Machine 目录 包含模拟计算机硬件的代码,包括中央处理器(CPU)、内存、磁盘等。
Threads 目录 Nachos线程管理源代码,包括线程调度、上下文切换等。
Filesys 目录 Nachos 文件系统管理部分源代码,包括文件读写、目录管理等。
Network 目录 包含网络协议的实现代码,包括网络通信、传输协议等。
Userprog 目录 Nachos用户程序源代码,包括进程管理、地址空间管理等
Test 目录 一些测试用应用程序,用于验证Nachos的功能和正确性。
Vm 目录 Nachos虚拟内存管理源代码
bin 目录 包含有用户程序目标码变换的程序,包含编译后的二进制可执行文件。