今天来了解一下整个系统的构成。

nachos-3.4下有一个C++例子文件夹和一个code文件夹,code文件夹下才是程序的源码,总文件夹下的makefile呢,就是进入各个子文件夹,make他们自己的makefile,先执行depend,也就是依赖,依赖是很复杂的,然后才是编译本体,至于本体是什么,下面再讲,然后就是一个移除过程文件,注意对于makefile,一般是以第一个标签为生成对象,剩下的都不会。。。除非你特别指定。

但是makefile.dep,能打的仅仅只有两句,可能没有什么用
HOST = -DHOST_i386
LDFLAGS =

至于makfile.common,貌似也没用到,但是里面挺复杂的。

分号: 顺序地独立执行各条命令, 彼此之间不关心是否失败, 所有命令都会执行。

接下来,进入thread,里面的makefile,引用到了主目录的makefile.common和makefile.dep,然后是非常长的一段系统C语言文件调用,只是调用,没有gcc什么东西,为什么呢?因为其中的include命令,makefile中的include与C语言中的差不多,因此,,,makefile.common之所以叫common,大概知道一点了,就是把depend和nachos放在一起,每个文件调用,就是这样,注意,nachos还进行了转义,变成了PROGRAM,就是这样。

nachos的thread里面的main.cc是主程序的入口,要看先看这里,里面用了很多ifdef,main有几个参数的,是测试的数量,线程测试。

版权是很重要的。。。。。

开始一段用户程序用StartProcess,嗯,里面也有不少断言。

-c命令是测试控制台。。。

我发现,每一个ifdef都是在处理一个参数。

再到system.cc,找里面的init函数和debug函数。在initial中,仍然还是在处理参数,而degub没找见。。因为debug不是函数

untility文件里面的内容出奇的少,应该还是给人看的。

threadtest文件里仍然还是不多,,比较好懂

但是最后并不是很懂,以后再说吧。。。

nachos操作系统(一)相关推荐

  1. Nachos操作系统synch(lab3)

    这一篇来讲一下Nachos里面的同步 首先,在synch.h里面,定义了三种与同步有关的类:Semaphore,Lock,Condition,下面来分析一下这三种数据类型 Semaphore 其类型定 ...

  2. Nachos系统简介

    Nachos是一款教学用的操作系统平台,它的全名叫做"Not Another Completely Heuristic Operating System",Nachos的运行必须借 ...

  3. 操作系统高级课程-1

    操作系统高级课程-1 声明 Course Introduction 系统能力培养 三个层次: 问题: 教学目的: 教学计划: 课程环节: 参考书: Nachos操作系统 e.g. 线程切换 Nacho ...

  4. 【访客必读 - 指引页】一文囊括主页内所有优质博客

    前言 嘿!彩蛋!感觉有帮助就三连呗! 本人现为一名「机器学习」方向的研究生,本科专业为 CS,期间主要参与 ACM 竞赛,因此主页内的博客一共分为如下四类: 机器学习 ACM 各类算法详细解析 + 题 ...

  5. 操作系统课设--NACHOS试验环境准备、安装与MAKEFILE分析

    山东大学操作系统课设lab1 实验一 NACHOS试验环境准备.安装与MAKEFILE分析(lab1) 实验环境: 分析记录: 1. 准备虚拟机下LINUX宿主操作系统环境 2. NACHOS实验代码 ...

  6. 山东大学软件学院操作系统课程设计(2021秋季,nachos)实验1

    〇.前言 这几天翻到自己去年做的课程设计,感觉当时理解得还是挺深的(之前一直没觉得自己写得多认真,现在读起来觉得,嗯,虽然我只负责一半的实验,但给我98分真的不亏/doge),三篇半实验报告写了近一万 ...

  7. 操作系统NACHOS实验(二)具有优先级的线程调度

    操作系统NACHOS实验(二)具有优先级的线程调度 实验思路 关键源代码注释及说明 调试记录 可能会有一些小错误,但是基本思路应该还是没问题的. 实验思路 首先找到控制线程调度的代码 schedule ...

  8. 山东大学软件学院操作系统课程设计(2021秋季,nachos)实验6

    一.实验内容 二.源码分析 1. 理解nachos单线程地址映射机制 Machine::Run()中调用Machine::OneInstruction(Instruction *instr)逐条执行可 ...

  9. 山东大学软件学院操作系统课程设计(2021秋季,nachos)实验2

    一.实验内容 二.源码分析 1. 概述 与本实验密切相关的有4套.cc和.h文件,其中list文件提供通用的数据结构,在内核线程管理中作队列:thread文件描述TCB,并提供控制线程动作的方法:sc ...

最新文章

  1. python将sklearn的RocCurveDisplay结果与PrecisionRecallDisplay结果合成为一个图
  2. 深度 | 人工智能的游戏征途:超级玛丽简直小菜一碟,星际争霸、LOL才是大boss...
  3. luogu cover
  4. 全球及中国雪地摩托护目镜行业经营模式分析及未来发展动向分析报告2022-2027年版
  5. 树莓派光照传感器java_树莓派上使用光照强度检测(BH1750)传感器
  6. 使用webflux提升数据导出效率
  7. [leetcode]94.二叉树的中序遍历
  8. uefi模式下win10安装双系统ubuntu18.04LTS
  9. 曲师大教务系统服务器,曲师大教务处信息门户入口地址
  10. Java字符串与日期互转
  11. 救护车电源逆变器行业调研报告 - 市场现状分析与发展前景预测
  12. 漫画:如何求图的最短路径? | 技术头条
  13. github创建远程仓库
  14. c语言的递归算法流程图,递归法_C语言递归法_递归算法经典实例
  15. PLSQL调整SQL字体大小
  16. 深入理解FT,DTFT,DFT 之间的关系
  17. 如何用Latex合并两个pdf
  18. K核苷酸频率(KNF,k-nucleotide frequencies)或K-mer频率
  19. 决战Python之巅(一)
  20. 小厂B端产品啥都干——B端表格设计入门指南(中)

热门文章

  1. 阿里云ECS部署Docker
  2. 如何使用ODB(How to use odb On windows)
  3. 基础算法一一股神问题
  4. APUE编程:37---文件目录(文件黏着位)
  5. ios arkit原理理解
  6. android 仿苹果 小组件,安卓玩烂的小组件 iOS怎么又给捡起来了?
  7. (在WPS或者WORD中使用MathType编辑数学公式)写论文必备
  8. java输入长宽高计算表面积_设计一个C语言程序计算长方体体积和表面积,长宽高通过键盘输入?????...
  9. python 因子分析_因子分析在python上的实现
  10. AlexNet网络实现