Code::Blocks中搭建Nachos环境

泄露秘密 提交于 2020-03-16 20:26:00

某厂面试归来,发现自己落伍了!>>>

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。

开源中国社区 双子座

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!