PUBLICO:Configuración

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


Menú >> PUBLICO:Portada >> PUBLICO:S.O.D.I.U.M >> Configuración


Configuración del Sistema Operativo SODIUM

Una vez armado el entorno de trabajo y descargado el código fuente desde el servidor SVN, es necesario realizar una configuración inicial del Sistema Operativo para poder compilarlo y ejecutarlo correctamente. Todos los instructivos que se mostrarán de aquí en adelante se ilustran utilizando SODIUM Developer Kit. Sin embargo, el mismo funcionamiento debería esperarse utilizando un entorno de trabajo diferente, siempre que respete las instrucciones dadas anteriormente para el armado del entorno de trabajo.

El primer paso para la configuración es abrir una consola y localizar el ícono en la parte superior de la pantalla para abrir una nueva consola de comandos como lo muestra la siguiente imagen:

ícono de consola

Una vez abierta la consola, el SODIUM Developer Kit está programado para utilizar automáticamente el usuario root y dar el siguiente mensaje de bienvenida:

============================================
   Bienvenido al Sodium Developer Kit
============================================

root@sodium:/home/sodium# #252525

Habiendo accedido a la consola de comandos es posible descargar el código de SODIUM y el Visualizador desde su ubicación en el servidor SVN.En la imagen de SODIUM DEVKIT el código se encuentra dentro dela siguiente ubicación:

/home/sodium/Sodium-Visualizador

Si ya contamos con el código, debemos dirigirnos hacia directorio en donde está ubicado. del Una vez allí, utilizando el comando ls podremos ver la disposición de 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
  • El directorio Sodium: Contiene el código fuente del Sistema Operativo
  • El directorio Visualizador: Contiene el código fuente del Visualizador

Para configurar la ejecución de Sodium deberá posicionarse primero dentro del directorio Sodium.Si ejecutamos nuevamente el comando ls podremos ver la composición de este directorio

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

Puede observarse que el código recién descargado de SODIUM cuenta con 8 directorios y tan solo 2 archivos en su directorio raíz. La función de los archivos en este directorio es determinar la configuración de ejecución, compilación, y pruebas de SODIUM. La configuración determinada por el usuario para el uso de SODIUM es local a cada versión del código y es generada y resguardada como el archvio Makefile.cfg. Este archivo es necesario para la compilación de SODIUM, por lo que debe ser generado de antemano.

Para generar el archivo Makefile.cfg de SODIUM es necesario ejecutar el archivo configurar.sh.:

root@sodium:/home/sodium/Sodium-Visualizador/Sodium# ./configurar.sh

En caso de no poder ejecutarse, es necesario asegurarse que dicho programa y los programas que, a su vez, ejecuta cuenten con permisos de ejecución. Esto se logra ejecutando el siguiente comando:

# chmod a+x ./configurar.sh ./herramientas/*

Este menú contiene valores por defecto auto-generados durante la ejecución con las opciones más comúnmente utilizadas durante la prueba de SODIUM. Sin embargo, los cambios efectuados, se guardarán en el archivo Makefile.cfg y serán recuperados para una nueva ejecución de configurar.sh.

A partir de la ejecución de configurar.sh, se puede visualizar el menú interactivo de configuración de SODIUM:

================================================================================
                       Menu de Configuracion de SODIUM                          
================================================================================
1) Configuracion de Pruebas
2) Configuracion de Instalacion en Dispositivo Fisico
3) Configuracion de Compilacion
4) Configuracion de Kernel
5) Configuracion de Puerto Serie
x) Guardar y Salir

El menú interactivo nos permite navegar a través de los sub-menús y configurar fácilmente el entorno de ejecución y compilación de SODIUM. A continuación se explicarán cada una de las opciones disponibles en el menú de configuración de SODIUM.

Sodium posee la característica de poder reconfigurar su funcionamiento mediante su menú. Por lo que si el usuario desea experimentar con él, podrá hacerlo alterando su comportamiento modificando las distintas opciones que este posee.

Configuración Estándar para poder utilizar el Visualizador

En el menú de Configuración de SODIUM se podrá configurar el entorno de ejecución donde se ejecutará este Sistema Operativo. Si se desea ejecutar SODIUM junto al Visualizador se deberá utilizar la configuración estándar del S.O. Para ello se deberá elegir la opción x, presionando la tecla del teclado que lleva el mismo nombre.

El Visualizador esta configurado para funcionar únicamente con esta configuración, por lo que si esta es modificada no se garantiza su        
'correcto funcionamiento

Configuración Personalizada del S.O

Configuración de Pruebas

En caso de seleccionar la opción 1 (Configuración de Pruebas) en el menú inicial, se abrirá el menú correspondiente a la configuración de las pruebas de SODIUM. Esta configuración sólo afecta al entorno de pruebas que se utilizará para probar la ejecución de SODIUM. Al ingresar a este menú, se mostrarán las siguientes opciones de configuración:

================================================================================
                       Menu de Configuracion de SODIUM                          
================================================================================
   Emulador de VM                          :  bochs
1) Montar imagen de SODIUM en Floppy Disk  :  Si - FAT12
2) Montar imagen de SODIUM en Disco Rigido :  No
3) Montar imagen de SODIUM en CD-ROM       :  No
4) Dispositivo de Booteo                   :  Floppy Disk
5) Tipo de Debugging                       :  GDB STUB de Sodium
6) Auto-Break on Boot                      :  No
x) Volver al Menu Principal

Actualmente, sólo se ha configurado el emulador de VM bochs ya que ha dado mejores resultados a la hora de evaluar compatibilidad con arquitecturas reales y se ha discontinuado el uso de QEMU porque no provee todas las funcionalidades que bochs provee.

La opción 1) Montar imagen de SODIUM en Floppy Disk nos permite determinar si se va a utilizar o no una imagen de diskette montada en el emulador de VM durante el lanzamiento de la prueba. Las sub-opciones disponibles son:

Montar imagen de SODIUM en Floppy Disk:
=======================================
1) Si - FAT12
2) No

En caso de elegir Si - FAT12, se utilizara una imagen de SODIUM creada con formato de sistema de archivos FAT 12 (para floppy disk) generada durante la compilación y se encontrará en el archivo build/sodium_fat12.img.

La opción 2) Montar imagen de SODIUM en Disco Rigido nos permite determinar si se va a utilizar o no una imagen de Disco Rígido montada en el emulador de VM durante el lanzamiento de la prueba. Las sub-opciones disponbles son:

Montar imagen de SODIUM en Disco Rigido:
=======================================
1) Si - FAT16
2) Si - FAT32
3) No

La opción 3) Montar imagen de SODIUM en CD-ROM nos permite determinar si se va a utilizar o no una imagen de CD-ROM montada en el emulador de VM durante el lanzamiento de la prueba. Las sub-opciones disponbles son:

Montar imagen de SODIUM en CD-ROM:
==================================
1) Si - FAT12
2) No

En caso de elegir Si - FAT12, se utilizara una imagen de SODIUM creada con formato de sistema de archivos FAT 12 (para CD-ROM) generada durante la compilación y se encontrará en el archivo build/sodium_fat12.img.

La opción 4) Dispositivo de Booteo nos permite determinar cuál va a ser el dispositivo de booteo por defecto configurado para la VM. Las opciones son:

Dispositivo de Booteo:
======================
1) Floppy Disk
2) Disco Rigido
3) CD-ROM

En caso de elegir un dispositivo de booteo del cual no se haya seleccionado el montaje de una imagen, se producirá un error (dispositivo booteable no encontrado) durante el lanzamiento de la prueba.

La opción 5) Tipo de Debugging nos permite determinar cuál va a ser el modo utilizado para debugging de SODIUM. Todas las opciones están configuradas para depurar el entorno de pruebas de bochs. Más información sobre los tipos de debugging disponibles, consultar el Capítulo 3: Depurando SODIUM. Las opciones disponibles para debugging son:

================================================================================
                       Menu de Configuracion de SODIUM                          
================================================================================
Tipo de Debugging 
====================
1) Debugger Interno - Consola
2) Debugger Interno - GUI
3) GDB - GNU Debugger(STUB de Bochs)
4) GDB - GNU Debugger(STUB de Sodium)

En caso de elegir Debugger Interno - Consola, se utilizará el debugger interno de bochs presentado utilizado a través de la consola de comandos. En caso de elegir Debugger Interno - GUI, se utilizará la versión gráfica del debugger interno de bochs. En caso de elegir GDB - GNU Debugger(STUB de Bochs) se utilizará el debugger externo estándar de Linux (GNU Debugger) utilizando el archivo Stub que posee el emulador para poder comunicarse con GDB. En cambio si se elige GDB - GNU Debugger(STUB de Sodium), se utilizará el archivo Stub desarrollado en SODIUM para efectuar la comunicación con el debugger.

La opción 6) Auto-Break on Boot nos permite determinar si se va a configurar un breakpoint antes de ejecutar la primera instrucción de la BIOS durante el booteo de bochs. Esto es útil para depurar durante el inicio de SODIUM, pero puede ser removido si no es necesario para agilizar las pruebas.

Configuración de Instalación en Dispositivo Físico

En caso de seleccionar la opción 2 (Configuración de Instalación en Dispositivo Físico) en el menú inicial, se abrirá el menú correspondiente a la configuración de la instalación de SODIUM en un dispositivo físico. El dispositivo sobre el que se instalará SODIUM será booteable desde cualquier máquina física o virtual. Al ingresar a este menú, se mostrarán las siguientes opciones de configuración:

1) Tipo de dispositivo de instalación      :  USB - FAT32
2) Dirección absoluta del dispositivo      :  /dev/sdb
3) Realizar Backup del dispositivo
4) Recuperar Backup del dispositivo

La opción 1) Tipo de dispositivo de instalación nos permite determinar sobre qué tipo de dispositivo deseamos hacer la instalación de SODIUM. La elección de este parámetro debe coincidir con el dispositivo físico que hayamos conectado para realizar la instalación. Por ejemplo, si deseamos instalarr conectamos un pendrive, debemos elegir alguna de las opciones que indican “USB”. Las sub-opciones disponibles son:

Tipo de dispositivo de instalacion:
===================================
1) Disco Rigido - FAT16
2) Disco Rigido - FAT32
3) USB - FAT16
4) USB - FAT32
5) Floppy Disk - FAT12

La opción 2) Dirección absoluta del dispositivo nos permite indicar qué dirección absoluta tiene el dispositivo que utilizaremos para la instalación. Es importante notar que debemos indicar su ubicación dentro de la carpeta /dev, y que se requiere que no esté previamente montado.

Las opciones 3) Realizar Backup del dispositivo y 4) Recuperar Backup del dispositivo nos permiten resguardar el contenido del dispositivo a utilizar para recuperarlo en el futuro. De esta manera, si deseamos instalar SODIUM en un Pendrive que contiene información, podemos resguardar (opcion 3) y el menú nos mostrará:

=====================================================================
Resguardando dispositivo de tipo USB - FAT16...          
 - Desde el dispositivo: /dev/sdb1 
 - hacia el archivo: /tmp/sodium.backup  
=====================================================================
1440+0 records in
1440+0 records out
1474560 bytes (1.5 MB) copied, 0.17481 s, 8.4 MB/s

Luego de utilizar el dispositivo, podemos seleccionar la opcion 4 para recuperar el contenido resguardado. Al hacer esto el menú nos mostrará:

======================================================================Recuperando el contenido del dispositivo de tipo USB - FAT16...                 
 - Desde el archivo: /tmp/sodium.backup  
 - Desde el dispositivo: /dev/sdb1       ======================================================================
1440+0 records in
1440+0 records out
1474560 bytes (1.5 MB) copied, 0.00801346 s, 184 MB/s

Configuración de Compilación

En caso de seleccionar la opción 4 (Configuración de Compilación) en el menú inicial, se abrirá el menú correspondiente a la configuración de compilación de SODIUM. En este menú se encontrará opciones referidas a cómo se compila SODIUM, independientemente de cómo se ejecuten las pruebas o se instale en un dispositivo. Actualmente se encuentran en desarrollo más opciones, por lo que este menú sólo cuenta con una sola opción:

1) Mostrar Warnings                    :  No (-w)

La opción 1) Mostrar Warnings permite definir si se mostrarán todos los warnings del compilador durante la compilación de SODIUM. Cambiar esta opción puede resultar útil para ver claramente la presencia de errores de compilación sin la interferencia de otros avisos.

Configuración del Kernel

En caso de seleccionar la opción 5 (Configuración de Kernel) en el menú inicial, se abrirá el menú correspondiente a la configuración del kernel de SODIUM. En este menú se encontrará opciones referidas a cómo va a funcionar SODIUM una vez haya booteado, ya sea en un entorno de pruebas o sobre un dispositivo físico. Las opciones determinadas en este menú se guardarán dentro de Makefile.cfg y serán leidas desde SODIUM durante el booteo para tomar sus parámetros.

Las opciones disponibles en este menú afectan el modo en que funcionará el kernel de SODIUM respecto a aspectos variados como, por ejemplo, la administración de memoria y la planificación de procesos. Varios de estos aspectos pueden todavía ser cambiados durante la ejecución de SODIUM, pero este menú permite determinar una configuración inicial.

Las opciones disponibles en este menú son:

1) Algoritmo de Planificacion de Procesos     :  Round Robin
2) Activar Paginacion                         :  No
3) Modo de Administracion de Particiones      :  Variable
4) Tamano de Stack de Procesos                :  128 Kb
5) Tamano de Heap de Procesos                 :  128 Kb

La opción 1) Algoritmo de Planificacion de Procesos permite seleccionar el algoritmo para planificación de procesos utilizará SODIUM inmediatamente después de bootear. Más información sobre cada uno de los algoritmos disponibles se puede encontrar en el Capítulo 6-F: Planificación de Procesos. Las sub-opciones disponibles en este menú son:

Algoritmo Planificador de Procesos:
===================================
1) Round Robin
2) Round Robin con Prioridades
3) Round Robin con Quantum Variable
4) Best Time of Service
5) Shortest-Job Finishing First
6) First Come First Serve

La opción 2) Activar Paginación permite si SODIUM utilizará el modo paginado soportado por la arquitectura Intel x86 (sí), o si utilizará segmentación pura (no). En caso de elegir sí, se debe determinar el porcentaje en el cual los procesos se cargarán a memoria principal una vez ejecutados. Un porcentaje bajo es es útil para demostrar la exitencia de excepciones por Page Fault y su consiguiente proceso de swapping. Un porcentaje alto permite utilizar paginación sin page faults. El menú, en caso de elegir sí, se muestra de la siguiente manera:

Utilizar Paginacion:
===================================
1) Si
2) No
Se ha activado el uso de paginacion
===================================

Indique el porcentaje de espacio de memoria de proceso a ser cargado inicialmente. Indique 100% para cargar todo el proceso. Un porcentaje menor a 100 provocara Page Faults y el swap in de la pagina requerida.

Indique un porcentaje:

La opción 3) Modo de Administracion de Particiones permite seleccionar el tipo de particionado se va a utilizar para el alojamiento de los procesos de usuario en memoria. En caso de elegir Particionado Variable, los procesos contarán con segmentos del tamaño exacto que necesitan para funcionar, mientras que al elegir Particionado Fijo, se debe indicar manualmente qué tamaño tendran las particiones de cada proceso desde el siguiente sub-menú:

Administracion de Particiones Fijas
===================================
Indique el tamano de particiones a ser utilizadas para alojar los
segmentos de proceso en memoria alta. (en KiloBytes)
Tamano:

Más información sobre administración de memoria puede ser encontrada en el capítulo 6-B: Administración de Memoria.

La opción 4) Tamano de Stack de Procesos permite determinar cuál va a ser el tamaño de Stack con el que contarán los procesos para su ejecución, mientras que la opción 5) Tamano de Heap de Procesos permite determinar el tamaño del heap con el que contarán los procesos. Para más información sobre cada uno de estos parámetros consultar el capítulo: 6-C Administración de Heap y Stack.

Generación de Makefile.cfg

Una vez finalizada la configuración requerida para la compilación/ejecución de SODIUM, sólo se debe seleccionar la opción ‘x’ que permite salir del menú de configuración. Esto le permite a configurar.sh pasar a realizar el resto de la configuración automatizada, como se muestra a continuación:

- Genera/actualiza la nueva configuración sobre el archivo Makefile.cfg.

=====================================================================
Actualizando la configuracion ingresada sobre Makefile.cfg… OK
=====================================================================

- Verifica que se encuentren todos los archivos necesarios para compilar SODIUM.

=====================================================================
Validando la presencia de los binarios requeridos para la compilacion,    depuracion, documentacion y prueba del SODIUM
=====================================================================
OK.  Para mas información revise el archivo ./check_utils.log

- Verifica que el compilador soporta los flags necesarios para compilar SODIUM.

=====================================================================
Verificando si gcc soporta los flags basicos de compilacion utilizados por el SODIUM
=====================================================================
  -nostdinc:    OK
  -save-temps:    OK
  -g:    OK
  -fno-builtin:    OK
  -O0:    OK
  -m32:    OK

- Verifica que el compilador soporta los flags adicionales para compilar SODIUM.

=====================================================================
Verificando si gcc soporta los flags basicos de compilacion utilizados por el SODIUM
=====================================================================
-fno-zero-initialized-in-bss:    OK, se utilizara como flag adicional    -fno-stack-protector:    OK, se utilizara como flag adicional    
-fno-stack- protector-all:    OK, su uso no es necesario
Se utilizaran las siguientes banderas extra para gcc version 4.6.1 :=  -fno-zero-initialized-in-bss -fno-stack-protector

Si la configuración resultó correcta, se muestra el mensaje:

======================================================================Se ha completado satisfactoriamente la configuracion de SODIUM.

- A continuación, imprime en pantalla la lista de comandos de pruebas/compilación del Sistema Operativo SODIUM:

$make clean      - Para eliminar la compilacion actual y archivos
                   temporales del SODIUM
$make test       - Para efectuar una prueba del SODIUM
$make clean test - Utilice esta combinacion si desea probar el
                   SODIUM luego de haber hecho una modificacion
$make install    - Para instalar el SODIUM en un dispositivo fisico.
$make clean install  - Utilice esta combinacion si desea instalar
                       SODIUM luego de haber hecho una modificacion
$make sin_svn    - Para exportar el SODIUM sin los archivos y
                   directorios ocultos del Subversion
$make docs       - Genera documentacion automaticamente en docs/html

Cada uno de estos comandos son explicados con más detalle en la sección: Ejecución e Instalación.