Archivo de la categoría: Importante!

Tarea 3 – Hola Mundo en nachOS

Bueno la tarea ahora es crear un programa y ejecutarlo.

Formato de la tarea:

  • Tomar una foto a los pasos 2, 3, 4 y 6 como se muestra en el ejemplo
  • Ponerlas en formato pdf
  • Enviarlas al correo electronico: sistemas.operativos.fime@gmail.com
  • Ausnto: Tarea 3 – Matricula – Nombre
  • Entregarla antes del miercoles 9 de mayo

Lo primero que tiene que hacer es abrir la terminal y teclear

cd /nachos/nachos/code/test

Pasos para crear y ejecutar el programa:

1.- Creamos el archivo holamundo, tecleando en la terminal

sudo gedit holamundo.c

2.- Escribimos el codigo del programa

#include "syscall.h"
// Ejemplo de Holamundo
int main () {
Write("Hola Mundo! \n :B ",12,10);
Halt();
}

Se deberá ver como la siguiente imagen

codigo_holamundo

3.- Modificar el archivo Makefile
Guardamos el archivo y tecleamos en la terminal:
sudo gedit Makefile
Buscamos la linea que dice “all:” y agregamos nuestro programa

all: halt shell matmult sort holamundo

Abajo en el mismo archivo agregamos las siguientes lineas:

holamundo.o: holamundo.c
$(CC) $(CFLAGS) -c holamundo.c
holamundo: holamundo.o start.o
$(LD) $(LDFLAGS) start.o holamundo.o -o holamundo.coff
../bin/coff2noff holamundo.coff holamundo

Quedando como se muestra en la imagen:
mod_Makefile
4.- Modificar  el archivo exception.cc
Guardamos y tecleamos en la terminal:

cd ../userprog

y una vez en la carpeta tecleamos

sudo gedit exception.cc

Dentro del archivo agregamos la siguiente función (antes de la funcion ExceptionHandler)

void printVirtualCharArray(int va, int size) {
int tmp,i;
for (i=0;i<size-1; i++){
if(!machine->ReadMem(va+i,1,&tmp)) {
printf("%s trouble getting valut at %d \n",currentThread->getName(),va+1);
return;
}
printf("%c",tmp);
}
}

y despues modificamos la funcion de ExceptionHandler, agregando lo siguiente despues del else

if ((which==SyscallException)&&(type==SC_Write)){
DEBUG('e', "%s WRITTING...", currentThread->getName());
int fd=machine->ReadRegister(6);
ASSERT(true);
int size = machine ->ReadRegister(5);
int vaddr=machine ->ReadRegister(4);
printVirtualCharArray(vaddr,size);
machine->WriteRegister(PCReg,machine->ReadRegister(NextPCReg));
machine->Run();


y comentamos las 2 lineas que estan debajo, agregando // , como se ve en la imagen

5.- Compilación
Guardamos y tecleamos en la terminal :

cd ..

con esto deberan estar en la carpeta code y teclean

make

6.- Correr el programa

tecleamos en la terminal:

cd userprog/


y una vez en la carpeta, tecleamos:


./nachos -x ../test/holamundo

y les aparecera una imagen como la siguiente.
Todos los pasos a seguir vienen de :
Version de Blogger

[Práctica][Tarea] Terminar los Tutoriales!

Ve checando y realizando los Tutoriales.

Dudas o cualquier cosa, ya sabes en donde preguntar.

La tarea para antes de que regresemos a clases es realizar los 4 Tutoriales, al termino de ellos, deberás lograr compilar nachos base.

Y lo que me tienes que enviar es:

-Un .Pdf que contenga dentro las capturas de pantalla de:

  1. El nombre de usuario que le asignaste a tu cuenta de Ubuntu.
  2. Tu sistema operativo principal corriendo Ubuntu en Virtualbox.
  3. Tu terminal de Ubuntu corriendo nachos.

-Pásenle la pagina a todos sus conocidos de la clase, las tareas se van a Calificar!!

-Toda la información sobre a que correo tienes que enviar la tarea y relacionados, esta aqui.

Fecha Limite:

Lunes 16 de Abril

Etiquetado , , , , ,

Orden de la Clase

Tareas:
  1. Instalar NachOS y sus compiladores (antes de mayo)
    1. Instalar VirtualBox en Windows
    2. Instalar Ubuntu en VirtualBox
    3. Dejar Ubuntu listo para trabajar con NachOS
  2. Instalar nachOS C++ (7 de mayo)
  3. Correr un Hola Mundo “userprog” (11 de mayo)
  4. Implementar Locks (25 de mayo)

[TAREA]

// Implementar Locks \\

Fecha: antes del Jueves 23 de Mayo

Formato de la tarea:

  • Tomar una foto al paso 4, 5 y 6 como las que vienen de ejemplo.
  • Ponerlas en pdf.
  • Enviarlas por correo electronico a: sistemas.operativos.fime@gmail.com
  • Asunto: Tarea 2 – Matricula – Nombre
  • Entregarla antes del Lunes 7 de Mayo ya que el proximo proyecto es para el Miercoles.

Ya sabes, cualquier duda o comentario que tengas puedes comentar directo en la publicación en este Blog relacionada a su problema, postearla en el grupo de Facebook.

Blogger

Lista de Calificaciones LMV – M2 

Lista de Calificaciones Jueves – M1

Etiquetado , , ,