Nachos操作系统实验报告 下载本文

内容发布更新时间 : 2024/12/27 6:33:53星期一 下面是文章的全部内容请认真阅读。

我以人格担保,此次实验报告完全由自己独立完成

计算机科学与技术学院实验报告

实验题目:在另目录中构造一个改进的新内核 日期:2013.11.1 班级: 11级8班 Email:zzmwalker@hotmail.com 实验目的: 熟悉 make 命令与Makefiles 结构 硬件环境: 联想台式机一台 学号: 201100300269 姓名: 张正明 软件环境: 操作系统 ubantu 实验步骤: 1. 在../lab2/目录中重建或从../threads/目录中拷贝scheduler.h和scheduler.cc文件,从../threads/目录中递归的拷贝../arch/目录和Makefile,Makefile.local文件。 2. 修改../lab2/中的Makefile.local文件,以便能在../lab2/中正确的构建新的Nachos(../lab2/中的Makefile文件无需修改) 3. 重定义的INCPATH需要修改。 a. 要把当前目录添加到INCPATH中:INCPATH += -I../labe –I../threads –I../machine。 这样做仅是声明了.cc文件中直接扩入的.h文件的查找路径,但是一些.cc文件中间接括入的.h文件的查找路径并不是按照INCPATH定义的路径查找的,它们是按照由g++ MM产生的依赖关系来查找的。因此一些不在当前目录中而又间接括入了当前目录中.h文件的.cc文件不会随着当前目录中.h文件的修改而重新编译。 4.解决上述问题的办法是利用-I编译开关。-I-开关禁止处理与.cc文件在同一个目录中的.h文件,即关闭由g++ MM产生的依赖关系,让每个.cc文件按INCPATH定义的路径查找.h文件。在INCPATH中加入-I-开关:INCPATH += -I- -I../labe –I../threads –I../machine 现在不需要查找和拷贝不在本目录中所有与要修改的.h文件有间接关系的文件了,make会根据我们在当前目录中所作的修改正确的重构新的系统。 结论分析与体会: 1. 通过实验了解并熟悉了make是一种控制编译的工具软件,使用make需要编写一个makefile文件,并且可以利用I编译开关来关闭由g++MM产生的依赖关系。 2.make中有隐式规则,比如目标体hello.o的规则隐含在目标体hello的规则中。这些得自己看书查资料才知道,却对实验很有用。