文档章节

Code::Blocks中搭建Nachos环境

双子座
 双子座
发布于 2012/09/30 21:38
字数 996
阅读 1126
收藏 8

Nachos的全称是“Not Another Completely Heuristic Operating System”,它是一个可修改和跟踪的操作系统教学软件。具体可参考百度百科。如果是在学习操作系统课程,并使用Nachos作为辅助教学,本文将会有所帮助。在网上没有找到使用Code Blocks搭建nachos的教程,只好自己琢磨,总算有所小成。

说明,以下操作都是在Ubuntu 11.10中进行的。

1、获取Nachos源码:可以在这里下载源码。下载后,右击,选择解压到此处,把解压得到的文件夹,修改名称为nachos,放在某一目录下,这里直接放在主文件夹下。

2、系统安装g++。

sudo apt-get install g++

3、直接使用gcc编译。

先将nachos\nachos3-4\code\下的Makefile文件中的

MAKE = gmake 改成 MAKE = make

然后在clean:后边加上以下几行:

clean:
    cd threads; rm *.o nachos
    cd network; rm *.o nachos
    cd filesys; rm *.o nachos
    cd test; rm *.o
    cd userprog; rm *.o nachos
    cd vm; rm *.o nachos
    rm -f *~ */{core,nachos,DISK,*.o,swtch.s,*~} test/{*.coff} bin/{coff2flat,coff2noff,disassemble,out}

上面的这几行是用来实现clean时清楚所有子目录下的目标文件已经可执行文件。因为原来的那行貌似不起作用。

运行终端,切换目录到nachos\nachos3-4\code下,直接输入make,回车:

正常的话,就编译成功了。再进入threads目录下,执行nachos:

若运行如上图,则表示编译成功。

再运行命令

cd ..
make clean

清除目标文件及可执行文件。

4、安装Code::Blocks:在软件中心搜索Code Blocks,并安装

5、运行Code::Blocks,新建一个空工程,名称为nachosCb,其他路径如下:

下一步,编译器选择GNU GCC Compiler,完成。

6、右击工程,选择Add files recursively,选择nachos-3.4下的code目录,选择Select All:

确定,将所有文件加到工程。

7、右击工程,选择Properties,设置Makefile以及路径,勾选上This is a custom Makefile,下面的路径是Makefile所在目录,即code目录。图中使用的是相对路径:

8、选择Build targets标签,单击Add,增加一个Target,名称为Threads,其他设置如下:

说明:因为nachos下有很多子目录,执行make之后,很多目录下都会生成可执行文件nachos,它们代表nachos不同的部分。你可以为每个会生成可执行文件的目录建立一个Target,这样,在Code Blocks里可以通过在工具栏切换Target来实现运行、调试整个系统的不同部分。不过,虽然每个目录下都有各自的Makefile文件,Build的时候用的还是code目录下的那个Makefile。当然,你可以在第7步里边进行选择,不过还是建议使用code下的Makefile,比较方便。

单击确定,使得设置生效。

9、再次右击工程,选择Properties,打开上图所示窗口,Build targets选择Threads,单击上图中的Build Options按钮,找到Make Commands选项,把$target都去掉:

确定,完成操作。

10、试试能否编译、运行和调试:

在工具栏选择Target为Threads,然后执行Build。可以右击工程选择Build或者单击工具栏中的Build图标。这里是Build成功的,下图是运行截图:

11、调试。在Code Blocks中打开threads目录下的main.cc,在main函数的开始处设置一个断点,在菜单中依次选择Debug——Run或者直接按F8,则调试开始。此时,可以在菜单中依次选择Debug——Debuging Windows,添加调试时可以用到的窗口,如Watches可以显示变量值。

可以按F7一步步执行。截图如下:

12、重复第8、9步,为其他几个子目录创建Target,并删掉原来的Debug与Release,如下图:

13、关闭之前Code Block之前最好保存工程。右击工程选择Save project。

开源中国社区 双子座

© 著作权归作者所有

双子座
粉丝 540
博文 78
码字总数 61009
作品 0
南京
程序员
私信 提问
加载中

评论(2)

约定291天后
mark
西昆仑
西昆仑
NB!
nachos系统调用实现Write、Read、Exec、Join

了解nachos系统调用的原理: 1. 要实现nachos的系统调用,首先查看syscall.h当中声明的系统调用函数 可以发现Nachos已经为我们在syscall.h中声明好了这些系统调用函数。 2. 观察Start.s中的汇...

zhao_yuting
2018/05/09
0
0
Nachos源代码分析(一)

// main.cc // 初始化操作系统内核 // // 这部分代码一般是初始化各个数据结构,并且而启动一个用户程序来输出登陆提示信息 // (具体命令行参数用法省略) define MAIN include "copyright...

嗯哼9925
2017/12/23
0
0
【MPI+codeblocks】MPI环境设置

下载Code::Blocks & MPICH2 config Code::Blocks like below: Search Directories (Compiler): C:Program FilesMPICH2include Search Directories (Linker): C:Program FilesMPICH2lib Linke......

Zoe_2016
2016/11/26
324
0
【笔记】Code::Blocks

[codeblocks]: http://www.codeblocks.org/ [Code::Blocks][codeblocks] 1) Windows上安装与编译 1.1) 安装C::B(http://www.codeblocks.org/downloads/26) 已有MinGW的下载即可,还没有的推荐......

加壹
2014/03/17
1K
1
Oracle Dataguard 下块自动修复技术

Oracle Active Data Guard and Automatic Block Repair Starting in Oracle Database 11g Release 2 (11.2), the primary database automatically attempts to repair the corrupted block i......

笱局长
2018/12/06
0
0

没有更多内容

加载失败,请刷新页面

加载更多

无回路有向图的拓扑排序

因公司业务需要,在表单中每个字段都会配置自动计算,但自动计算公式中会引用到其他字段中的值。所以希望可以根据计算公式,优先计算引用的公式。所以最终使用了无回路有向图的扩扑排序来实现...

兜兜毛毛
今天
6
0
如何抢占云栖大会C位?史上最强强强攻略来了

点击观看视频: APSARA云栖大会开发者情怀 原文链接 本文为云栖社区原创内容,未经允许不得转载。

阿里云官方博客
今天
6
0
Kubernetes 从懵圈到熟练:集群服务的三个要点和一种实现

作者 | 声东 阿里云售后技术专家 文章来源:Docker,点击查看原文。 以我的经验来讲,理解 Kubernetes 集群服务的概念,是比较不容易的一件事情。尤其是当我们基于似是而非的理解,去排查服务...

阿里巴巴云原生
今天
11
0
PHP7.3的新特性

2018年12月6日,PHP7.3正式版发布,在PHP7.2基础上进行了大量错误修复和安全优化,性能提升10%! 从目前的更新说明来看,PHP 7.3 并不是一个主打新特性的版本,包含更多的是 bug 修复。PHP 7...

迅睿CMS-PHP开源CMS程序
今天
8
0
Tomcat 应用中并行流带来的类加载问题

本文首发于 vivo互联网技术 微信公众号 链接:https://mp.weixin.qq.com/s/f-X3n9cvDyU5f5NYH6mhxQ 作者:肖铭轩、王道环 随着 Java8 的不断流行,越来越多的开发人员使用并行流(parallel)...

vivo互联网技术
今天
8
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部