PUBLICO:Ejecución e Instalación

De Wiki Soa Unlam
Saltar a: navegación, buscar


Menú >> PUBLICO:Portada >> PUBLICO:S.O.D.I.U.M >> Ejecución e Instalación


Para poder compilar o ejecutar el Visualizador y el S.O es necesario haber generado anteriormente el archivo de configuración Makefile.cfg  
mediante la ejecución del script configurar.sh

Ejecución de SODIUM junto al Visualizador de Estructuras Internas del Sistema Operativo

1) Una vez generada la configuración, se deberá ingresar al directorio raíz del proyecto, el cual posee los siguientes archivos:

-rwxrwxrwx  1 root  125 2015-12-16 09:55 cleanpyc.sh
drwxrwxrwx  5 root 4096 2015-12-16 09:55 Documentación
-rw-r--r--  1 root 6464 2016-06-17 08:02 Makefile.cfg
drwxrwxrwx 10 root 4096 2016-05-12 17:55 Sodium
-rwxrwxrwx  1 root  258 2015-12-16 09:55 sodium.sh
-rwxrwxrwx  1 root  271 2015-12-16 09:55 svnmeld.sh
drwxrwxrwx  4 root 4096 2015-12-16 09:55 Visualizador


2)Luego en ese sitio se tendrá que ejecutar un script de la siguiente forma:

./sodium.sh

Al ejecutar este comando automáticamente se comenzará con la compilación del código fuente de SODIUM y luego se abrirá una nueva consola en donde se ejecutará el S.O. Es importante mencionar que SODIUM se ejecuta dentro de otra máquina virtual. Por lo que esta nueva ventana corresponderá a la VM Bochs, en donde correrá el S.O ya compilado.

Luego de abrirse la ventana de Bochs, automáticamente se le mostrará al usuario la ventana principal del Visualizador de la siguiente forma:

Ventana Principal del Visualizador

Esta interfaz GUI es en cierta parte el Front-End puro de GDB del Visualizador, debido a que por medio de la ventana el usuario podrá interactuar directamente en forma manual la herramienta GDBMI que ofrece el depurador GDB. En consecuencia, de acuerdo a la Figura anterior, desde el cuadro de texto comando GDB el usuario podrá enviarles comandos para que ejecute el depurador. Los resultados de cualquier operación serán siempre mostrados en formato GDBMI en el cuadro de texto consola GDB.

Una vez que el sistema muestre la interfaz principal del depurador, en la ventana de Bochs se empezará a cargar SODIUM. En un momento dado el S.O se quedará esperando una conexión remota con el depurador GDB, como muestra la siguiente figura.

Sincronización de Sodium con GDB


3)Para establecer la conexión entre Sodium y el Visualizador, el usuario deberá presionar en el botón Conectar con S.O. Al presionar en el botón, se establecerá la conexión entre el Visualizador y SODIUM,por lo que el S.O continuará su carga normal como se muestra en la siguiente figura.

Inicio de SODIUM

Ejecución particular de SODIUM sin Visualizador

1)Si el usuario desea compilar y ejecutar el Sistema Operativo sin el Visualizador podrá hacerlo desde el directorio donde se encuentra el código fuente de SODIUM, el cual contiene los siguientes archivos:

root@sodium:/home/sodium/Sodium-Visualizador/Sodium# ls -o
total 92
drwxrwxrwx 2 root  4096 2016-05-12 17:55 boot
drwxrwxrwx 2 root  4096 2016-05-12 17:55 build
-rwxrwxrwx 1 root  4497 2015-12-16 09:55 comandos_nuevos.gdb
drwxrwxrwx 2 root  4096 2016-05-12 17:55 common
-rwxrwxrwx 1 root 33254 2015-12-16 09:55 configurar.sh
drwxrwxrwx 2 root  4096 2015-12-16 09:55 docs
drwxrwxrwx 2 root  4096 2016-05-12 17:55 herramientas
drwxrwxrwx 5 root  4096 2015-12-16 09:55 include
drwxrwxrwx 8 root  4096 2016-05-12 17:55 kernel
-rwxrwxrwx 1 root  5693 2015-12-16 09:55 Makefile
-rw-r--r-- 1 root  7426 2016-05-12 17:52 Makefile.cfg
drwxrwxrwx 5 root  4096 2016-05-12 17:55 usr

2) Luego se deberá descomentar la siguiente línea del archivo generar_lanzador.sh, ubicado dentro del subdirectorio herramientas:

# para habilitar el layout
# echo "gdb -tui --quiet --ex 'target remote localhost:12345' -b $BAUDIOS -symbols="kernel/main.ld" " >> $lanzador_prueba

3)Para realizar una ejecución de prueba de SODIUM (con la configuración indicada en configurar.sh) sólo hace falta ejecutar el comando:

# make test

Una vez ejecutado, se procederá a la compilación de SODIUM, al armado de las imágenes booteables, y se inicia bochs para emular el funcionamiento de una máquina real. Si el resultado de la compilación es correcto, se abrirá una nueva ventana con la visualización gráfica de bochs corriendo SODIUM.

Si el código ya se encuentra compilado de una prueba anterior, make test no recompilará el código ni regenerará las imágenes. Ya que dichos elementos existen, sólo lanza el emulador bochs.

En caso de haber hecho algún cambio en el código, es necesario eliminar y recompilar todas las imágenes, binarios ejecutables, y archivos intermedios para que las pruebas consiguientes puedan detectarlos. Para lograr esto, y recompilar en un sólo paso, basta con ejecutar:

# make clean test

Instalación en Dispositivos Físicos

1)Para realizar una instalación booteable de SODIUM sobre un dispositivo físico (con la configuración indicada en configurar.sh) sólo hace falta ejecutar el comando:

# make install

Una vez ejecutado, se procederá a la compilación de SODIUM, al armado de las imágenes booteables, y se reemplazará los primeros Mbytes (depende del tipo de dispositivo) del contenido del dispositivo destino con la imagen correspondiente. Por ejemplo, al instalar SODIUM en un dispositivo tipo Pendrive (USB) con sistema de archivos FAT12, se obtendrá una salida como la siguiente:

======================================================================
Instalando SODIUM en el dispositivo de tipo USB - FAT16…
- Desde Imagen: ./build/sodium_fat16.img...
- al dispositivo: /dev/sdb1…
======================================================================

2)En cuanto se requiera ampliar el tamaño del kernel+progs a mas de un #1MB descomentar este codigo que copia el tamaño completo de la #imagen. Mientras tanto boot se copiara al tamaño de un disquette para #disminuir el tiempo de copiado

#@echo `ls -la ./build/sodium_fat16.img | cut -d' ' -f5`/1024 | bc > #count.tmp
#@dd if=./build/sodium_fat16.img of=/dev/sdb1 bs=1024 count=`cat #count.tmp`
#rm count.tmp
1440+0 records in
1440+0 records out
1474560 bytes (1.5 MB) copied, 0.00533299 s, 276 MB/s
======================================================================
   SODIUM se ha instalado correctamente en el dispositivo.
======================================================================

En caso de haber hecho algún cambio en el código, es necesario eliminar y recompilar todas las imagenes, binarios ejecutables, y archivos intermedios para que las instalaciones consiguientes puedan detectarlos. Para lograr esto, y recompilar en un sólo paso, basta con ejecutar:

 #make clean install

Otros Comandos Útiles

Para eliminar todos los binarios ejecutables, imágenes, y archivos intermedios luego de una prueba o instalación, es necesario ejecutar:

# make clean

Este comando elimina todos los archivos generados salvo Makefile.cfg, y deja al directorio raíz en el estado original provisto por el repositorio SVN. Esto es especialmente útil para evaluar si hubieron cambios en los archivos versionados en SVN, y poder agregar/quitar aquellos agregados o eliminados. Por lo tanto, es conveniente realizar dicha limpieza antes de ejecutar cualquiera de estos comandos:

# svn update
# svn commit
# svn status
# svn export

Para copiar todos los archivos de código de SODIUM a la carpeta temporal /tmp/sodium sin los directorios ocultos de SVN, es posible ejecutar el siguiente comando:

# make sin_svn

La salida de dicho comando y su resultado pueden observarse a continuación:

======================================================================
Copiando version de SODIUM sin SVN a /tmp/sodium…
======================================================================
# ls /tmp/sodium
bochs.rc  build   configurar.sh  herramientas  kernel    Makefile.cfg
boot      common  docs           include       Makefile  usr

Para generar documentación automatizada de estructuras / funciones / llamados / declaraciones mediante Doxygen, es necesario ejecutar el comando:

# make docs