|
Introduction to nachos project / Introducere pentru proiectul nachos
Links / Legaturi utile
Tom Anderson's Nachos Home Page
Nachos Online Resources
Local Resources
Distributia originala se numeste "nachos-3.4.tar.Z". Ea nu poate fi compilata in Linux direct. O versiune modificata este "nachos-utt-vX.Y.tar.bz2", care ar trebui sa poata fi compilata si folosita sub Linux (>glibc-2.2.x, kernel 2.4.x).
Update: atit pentru v0.3 cit si pentru v0.4, utilizati gcc/g++ 4.x. Folositi versiunea nachos-utt-v0.3.tar.bz2 pentru versiuni de linux pe 32 de biti iar nachos-utt-v0.4.tar.bz2 pentru versiuni de linux pe 64 de biti.
Pentru acest din urma caz (sisteme linux pe 64 biti), veti avea nevoie de anumite pachete pentru a putea compila nachos pe 32 de biti (nu este portat pentru Intel/AMD pe 64 biti). Pentru Ubuntu (alte distributii ar trebui sa aiba pachete similare):
- lib32stdc++6
- binutils-multiarch
- libc6-i386
- libc6-dev-i386
- gcc-4.2-multilib sau gcc-4.1-multilib (depinde de veriunea gcc pe care o aveti instalata)
- ...(voi completa daca e cazul)
Instalarea si compilarea sistemului Nachos
Sistemul Nachos (cu modificarile corespunzatoare pentru a putea fi
compilat in Linux) se poate descarca din
sectiunea Resources; fisierul se
numeste nachos-utt-vX.Y.tar.bz2, unde X.Y este versiunea.
Compilatorul configurat pentru a genera cod pentru procesorul MIPS (se
numeste un "cross-compiler", deoarece genereaza cod pentru alta
arhitectura decat cea pe care ruleaza) se gaseste in
subdirectorul mips-cross-compiler.
Descarcati fie mips-all.tar.bz2 fie arhiva sparta in 3 fisiere (-bin, -doc, -lib) in scopul de a putea fi pusa pe dischete -- probabil, nu mai e cazul.
Pe statiile din laboratorul B528a acest cross-compiler a fost instalat
deja.
Pentru a obtine un sistem functional, urmati urmatorii pasi:
- Descarcati distributia Nachos si compilatorul pentru MIPS. Vom
presupune ca ele se afla in directorul vostru (home).
- Desfaceti arhiva Nachos:
tar -xjf nachos-utt-v0.3.tar.bz2
Alternativ, obtineti acelasi lucru prin:
bzip2 -d nachos-utt-v0.3.tar.bz2
tar -xf nachos-utt-v0.3.tar
- Ca superuser (pentru ca trebuie sa scrieti in directorul
/usr/local), desfaceti arhiva compilatorului MIPS:
su
Password:********
!!! asigurati-va in acest moment ca directorul curent este tot cel
in care se gasesc arhivele !!!
tar -xj -C / -f mips-all.tar.bz2
SAU urmatoarele 3:
tar -xj -C / -f mips-bin.tar.bz2
tar -xj -C / -f mips-doc.tar.bz2
tar -xj -C / -f mips-lib.tar.bz2
-
Reveniti din modul superutilizator, si compilati Nachos:
exit
cd nachos-3.4/code
make
-
In pasul anterior, daca aveti instalata distributia RedHat 9, si
posibil si in alte distributii noi, veti avea o eroare de compilare
legata de variabila globala
errno . Pentru scapa de
aceasta eroare, modificati fisierul machine/sysdep.cc
din:
void
ReadFromSocket(int sockID, char *buffer, int packetSize)
{
int retVal;
extern int errno;
in
void
ReadFromSocket(int sockID, char *buffer, int packetSize)
{
int retVal;
//extern int errno;
si adaugati la inceput fisierului o linie:
#include <errno.h>
Apoi, dati din nou comanda make .
-
In acest moment, ar trebui sa aveti un sistem Nachos compilat fara
erori. Pentru o verificare minimala executati:
cd threads
./nachos
Aceasta comanda ar trebui sa ruleze doua fire de executie, care vor
tipari un numar de linii la consola, apoi sistemul Nachos va tipari
cateva informatii despre executie. Apoi:
cd ../userprog
./nachos -x ../test/halt
Aceasta comada ar trebui sa execute programul de test "halt", care nu
face decat sa ceara sistemului (Nachos) sa se opreasca. Din nou,
Nachos va afisa cateva informatii legate de executia sa.
Daca, dintr-un motiv sau altul, compilatorul pentru MIPS nu
functioneaza in Linux-ul vostru, va trebui sa il compilati voi. Pentru
aceasta, obtineti pachetele
binutils-2.14.tar.gz
si
gcc-2.95.3.tar.gz.
URL-urile precedente se gasesc pe un mirror apropiat. Puteti de
asemenea sa obineti acele pachete de
la www.gnu.org (sau de la un alt
mirror). Apoi, faceti urmatorii pasi:
- (se va completa daca va fi necesar)
|