一、Nachos总体描述
1.1 Nachos虚拟机
Nachos模拟一个真实的CPU和硬件设备,包括中断和内存管理。Java中的包nachos.machine提供了这个模拟器。
Nachos模拟器用nachos.conf文件安装在不同的工程上。它详细描述了模拟器中包含哪些硬件设备和Nachos内核如何使用硬件。工程的说明书包括适当的配置文件,如果必要的话,可以改动工程的宣传册文件需要完成这个工程。
Nachos的启动进程类似于真实的虚拟机。nachos.machine.Machine.class的一个实例用来启动Nachos。计算机硬件(虚拟机类)首先初始化设备包括中断控制器,定时器,电梯控制器,MIPS进程,和文件系统。
虚拟机类对象把控制权交给特定的自动分级AutoGrader装置,相当于从硬盘上载入启动引导程序的代码。是AutoGrader产生了Nachos内核,并开始运行系统。学生们不必关心这一步启动工作,真正有趣的部分从内核开始。
Nachos的内核仅仅是nachos.machine.Kernal的一个子类。比如说,线程项目用的是nachos.threads.ThreadedKernel。
Nachos虚拟机包括很多硬件设备。有一些在现代计算机中普遍存在(如:网络接口),但有些(比如说电梯控制)是Nachos特有的。Machine文件中的大多数类是硬件模拟的一部分,而在machine文件之外的类是Nachos操作系统的。
Nachos中断管理是通过nachos.machine.Interrupt 类通过维持一个事件队列来模拟。
1.2 jdb的使用
在跟踪程序分析执行流程时仅仅使用System.out输出信息只能进行一些简单的验证,很难完成庞大工程的调试分析,这时候我用到了jdb来进行