However, the GCC version to compile the nachos OS is pretty low(gcc 2.95). This is not good since my environment is ubuntu 10.10 and the gcc version under ubuntu is 4.45.(way too high for building nachos). Fortunately, the source code of the nachos is not very long, so I modified some of the source code and Makefile to accomplished the building process.
Here is how I done it:
1. download the nachos source code.
wget http://neuron.csie.ntust.edu.tw/homework/99/os/materials/nachos-4.0.tar.gz
2.download the mips cross compile tool
wget http://neuron.csie.ntust.edu.tw/homework/99/os/materials/mips-decstation.linux-xgcc.gz
3.move the mips cross compile tool to the root directory
sudo mv mips-decstation.linux-xgcc.gz /
4.unzip the file
sudo tar zxvf mips-decstation.linux-xgcc.gz /
5.unzip the nachos
tar zxvf nachos-4.0.tar.gz
It's time to build the source file.
cd ${nachos directory}/code
make
after doing this some problems pop up.
First
/bin/sh: gmake: not found
solution:
use any text editor to change the Makefile.
Change
MAKE =
Second
the second problem is the ../lib/sysdep.h
the iostream.h not found
solution:
simply change the <iostream.h> to <iostream> and add a new line using namespace std;
Third
the reason of the third problem is the gcc version
solution:
use text editor the modified the Makefile.common,
modified the line called "CFLAGS = -g -Wall
Fourth
the terminal will echo many errors.
solution:
the solution is very simple, add this-> to the error variables or functions.
this is it, the nachos is finished, enjoyed.
Here is the video tutorial by Isaias
The original link:http://os-fime.blogspot.com/2011/08/how-to-compile-nachos.html
reference website:http://neuron.csie.ntust.edu.tw/homework/99/OS/homework/homework1/B9715017-hw1-1/#ubuntu10
A great post. My students are right now staring at a Makefile, some for the first time in their life, with little previous experience on C++, and you're saving them loads of tears :)
ReplyDeletetks for your comment and I'm happy to hear that this post helps your students. :)
ReplyDeletereally nice .. you just made gmake not found issue like a tiny thing :)
ReplyDelete