|
|||||||
|
|
|
|||||
|
|
|||||||
1) Bajar la distribución de Nachos desde la sección de fotocopias ->Ing. Civil en informática -> Sstemas Operativos en www.apuntesudp.com, y guardarla como en el directorio /usr/local/distNachos.gz. (6.5 MB)
* nota : acceder al directorio /usr/local/ desde el directorio raíz.
2) Descomprimir el archivo /usr/local/distNachos.gz con la aplicación Ark o con otra.Al relaizar esta acción, se creará en el mismo directorio el archivo distNachos.tar, el cual a continuación debe ser descomprimido ( en el mismo directorio ).
3) Se creará el directorio /usr/local/nachos-dist el cual debemos renombrar por /usr/local/nachos.
4) Una vez obtenido el directorio, se debe abrir una sesión en Konsole, para acceder al directorio de Nachos nachos/code/build.linux que contiene los archivos necesarios para la compilación :
Ejemplo
linux:~ # cd .. linux:/ # ls . .. bin boot dev etc home lib media mnt opt proc root sbin srv tmp usr var windows linux:/ # cd usr/local/nachos linux:/usr/local/nachos # cd code/build.linux
5) Para compilar los archivos del sistema hay que ejecutar make depend y luego make, en el directorio code/build.linux
Ejemplo
linux:/usr/local/nachos/code/build.linux # make depend g++ -g -Wall -Wno-deprecated -fwritable-strings -I../network -I../filesys -I../userprog -I../threads-I ../machine -I../lib -DRDATA -DSIM_FIX -DFILESYS_STUB -Dx86 -DLINUX -DCHANGED -M ../lib/bitmap.cc ../lib/debug.cc ../lib/hash.cc ../lib/libtest.cc ../lib/list.cc ../lib/sysdep.cc../machine/interrupt.cc ../machine/stats.cc ../machine/timer.cc ../machine/console.cc../machine/machine.cc ../machine/mipssim.cc ../machine/translate.cc ../machine/network.cc../machine/disk.cc ../threads/alarm.cc ../threads/kernel.cc ../threads/main.cc ../threads/scheduler.cc../threads/synch.cc ../threads/thread.cc ../userprog/addrspace.cc ../userprog/exception.cc../userprog/synchconsole.cc ../userprog/proctable.cc ../userprog/synchbitmap.cc../userprog/table.cc ../filesys/directory.cc ../filesys/filehdr.cc ../filesys/filesys.cc../filesys/pbitmap.cc ../filesys/openfile.cc ../filesys/synchdisk.cc../network/post.cc > makedeped - Makefile.dep < eddeprm eddep makedeplinux:/usr/local/nachos/code/build.linux # make g++ -g -Wall -Wno-deprecated -fwritable-strings -I../network -I../filesys -I../userprog -I ../threads -I../machine -I../lib -DRDATA -DSIM_FIX -DFILESYS_STUB -Dx86 -DLINUX -DCHANGED -c ../lib/bitmap.cc g++ -g -Wall -Wno-deprecated -fwritable-strings -I../network -I../filesys -I ../userprog-I../threads -I ../machine -I../lib -DRDATA -DSIM_FIX -DFILESYS_STUB -Dx86 -DLINUX -DCHANGED-c ../lib/debug.cc : : g++ -g -Wall -Wno-deprecated -fwritable-strings -I../network -I../filesys -I../userprog-I../threads -I ../machine -I../lib -DRDATA -DSIM_FIX -DFILESYS_STUB -Dx86 -DLINUX -DCHANGED -c../machine/machine.cc g++ -g -Wall -Wno-deprecated -fwritable-strings -I../network -I../filesys -I../userprog -I../threads -I ../machine -I../lib -DRDATA -DSIM_FIX -DFILESYS_STUB -Dx86 -DLINUX -DCHANGED-c ../machine/mipssim.cc ../machine/mipssim.cc: In member function `void Machine::OneInstruction(Instruction*)': ../machine/mipssim.cc:142: warning: array subscript has type `char' ../machine/mipssim.cc:161: warning: array subscript has type `char' ../machine/mipssim.cc:161: warning: array subscript has type `char' : : ../machine/mipssim.cc:678: warning: array subscript has type `char' ../machine/mipssim.cc:682: warning: array subscript has type `char' ../machine/mipssim.cc:682: warning: array subscript has type `char' g++ -g -Wall -Wno-deprecated -fwritable-strings -I../network -I../filesys -I../userprog -I../threads -I ../machine -I../lib -DRDATA -DSIM_FIX -DFILESYS_STUB -Dx86 -DLINUX -DCHANGED -c../machine/translate.cc g++ -g -Wall -Wno-deprecated -fwritable-strings -I../network -I../filesys -I../userprog -I../threads -I ../machine -I../lib -DRDATA -DSIM_FIX -DFILESYS_STUB -Dx86 -DLINUX -DCHANGED -c../machine/network.cc : : g++ -g -Wall -Wno-deprecated -fwritable-strings -I../network -I../filesys -I../userprog -I../threads -I ../machine -I../lib -DRDATA -DSIM_FIX -DFILESYS_STUB -Dx86 -DLINUX -DCHANGED -c../network/post.cc /lib/cpp -P -I../network -I../filesys -I../userprog -I../threads -I../machine -I../lib -Dx86 -DLINUX ../threads/switch.s > swtch.s as -o switch.o swtch.s g++ bitmap.o debug.o libtest.o sysdep.o interrupt.o stats.o timer.o console.o machine.o mipssim.o translate.o network.o disk.o alarm.o kernel.o main.o scheduler.o synch.o thread.o addrspace.o exception.o synchconsole.o proctable.o synchbitmap.o table.o directory.o filehdr.o filesys.o pbitmap.o openfile.o synchdisk.o post.o switch.o -o nachos
Si examinamos el directorio code/build.linux vemos que se generaron los siguientes archivos, donde el más importante en este paso el el archivo ejecutable nachos.
linux:/usr/local/nachos/code/build.linux # ls . Makefile.dep console.o exception.o kernel.o mipssim.o pbitmap.o stats.o synchbitmap.o table.o .. addrspace.o debug.o filehdr.o libtest.o nachos post.o switch.o synchconsole.o thread.o alarm.o directory.o filesys.o machine.o network.o proctable.o swtch.s synchdisk.o timer.o Makefile bitmap.o disk.o interrupt.o main.o openfile.o scheduler.o synch.o sysdep.o translate.o6) Luego, se debe acceder al directorio code/test para ejecutar el comando make, encargado de compilar los programas de usuario.
linux:/usr/local/nachos/code/test # make /usr/local/nachos/bin/decstation-ultrix-gcc -G 0 -c -I../userprog -I../lib -I../../dec-include -I/usr/include -c halt.c/usr/bin/cpp -I../userprog -I../lib -I../../dec-include -I/usr/include start.s > strt.s/usr/local/nachos/bin/decstation-ultrix-as -mips2 -o start.o strt.srm strt.s/usr/local/nachos/bin/decstation-ultrix-ld -T script -N start.o halt.o -o halt.coff../../coff2noff/coff2noff.x86Linux halt.coff halt numsections 3 Loading 3 sections: ".text", filepos 0xd0, mempos 0x0, size 0x1b0 ".data", filepos 0x280, mempos 0x200, size 0x0 ".bss", filepos 0x0, mempos 0x200, size 0x0 /usr/local/nachos/bin/decstation-ultrix-gcc -G 0 -c -I../userprog -I../lib -I../../dec-include -I/usr/include -c shell.c/usr/local/nachos/bin/decstation-ultrix-ld -T script -N start.o shell.o -o shell.coff../../coff2noff/coff2noff.x86Linux shell.coff shellnumsections 4 : : Loading 4 sections: ".text", filepos 0xf0, mempos 0x0, size 0x520 ".rdata", filepos 0x610, mempos 0x580, size 0x70 ".data", filepos 0x680, mempos 0x600, size 0x10 ".bss", filepos 0x0, mempos 0x680, size 0x0 /usr/local/nachos/bin/decstation-ultrix-gcc -G 0 -c -I../userprog -I../lib -I../../dec-include -I/usr/include -c MyTest.c/usr/local/nachos/bin/decstation-ultrix-ld -T script -N start.o io_lib.o MyTest.o -o MyTest.coff../../coff2noff/coff2noff.x86Linux MyTest.coff MyTestnumsections 4 Loading 4 sections: ".text", filepos 0xf0, mempos 0x0, size 0x400 ".rdata", filepos 0x4f0, mempos 0x400, size 0x20 ".data", filepos 0x510, mempos 0x480, size 0x0 ".bss", filepos 0x0, mempos 0x480, size 0x07) Como último paso de instalación, se debe crear un link de code/build.linux/nachos en el directorio code/test.
Ejemplo
linux:/usr/local/nachos/code/test # ln -s ../build.linux/nachos nachos*nota : para ver más de este comando usar comando man ln.8) Por último, podemos comprobar que la compilación y el enlace se hicieron de manera correcta, ejecutando el programa de usuario halt, que en términos sencillos se encarga deparar el sistema y mostrar una estadística de éste.
linux:/usr/local/nachos/code/test # ./nachos -x halt Machine halting! Ticks: total 572, idle 0, system 560, user 12 Disk I/O: reads 0, writes 0 Console I/O: reads 0, writes 0 Paging: faults 0 Network I/O: packets received 0, sent 0