Chinaunix首页 | 论坛 | 博客
  • 博客访问: 362845
  • 博文数量: 53
  • 博客积分: 25
  • 博客等级: 民兵
  • 技术积分: 1548
  • 用 户 组: 普通用户
  • 注册时间: 2012-03-27 07:54
个人简介

IT民工一枚,为学弟学妹造福是我一直写博文的动力!为媳妇提供技术支持是我学习新技术的动力!为自己脱离贫困线,买到心仪的摩托车,有饭吃,有床睡,有妹把,笔耕不辍~~

文章分类

全部博文(53)

文章存档

2013年(54)

分类: C/C++

2013-04-21 22:14:55

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。

阅读(2314) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~