Nachos介绍

Nachos是教学用的操作系统,我们可以自己修改并且定义操作系统的模块,更好的理解操作系统,改动操作系统是一个复杂但是有重要意义的工作。
图片标题

3.4版本的Nachos可以运行在32位的ubuntu16.04LTS虚拟机上面,这也是实验的主要开发环境。
图片说明

RISC和CISC指令集,简单指令集和复杂指令集。gc++可以直接把Nachos的代码编译成R2/3000RISC指令集,不需要额外的编译器来编译Nachos操作系统。
图片说明

Nachos只是宿主机器上的一个进程,可以运行多个Nachos模拟分布式系统。
图片说明

Nachos使用C++语法的子集来编写。
图片说明

Nachos代码结构

下载Nachos源码,在Ubuntu16.04LTS32位机器上解压,可以得到以下的目录结构:
图片说明

进入code目录,查看nachos3.4源代码的结构。
图片说明

编译nachos的源代码。
图片说明

在code目录下make,然后进入threads目录make depend & make nachos & ./nachos,可以得到运行结果,两个0/1线程交替执行五次就说明Nachos操作系统编译成功可以运行了。
图片说明

这里需要弄明白:Nachos是一个运行在虚拟机上的操作系统,所以这个操作系统上面也是可以运行用户程序的。而在这上面运行的用户程序:需要交叉编译才能运行在Nachos操作系统上。也就是说:可以在Ubuntu16.04LTS32位写一个C++程序,然后交叉编译这个C++程序成R2/3000指令集的机器码,再把这些机器码运行在Nachos操作系统上而不是Ubuntu16.04LTS32位系统上。
图片说明
图片说明