LINUX 
¿Por qué Linux?


 Linux es un sistema operativo derivado de UNIX desarrollado originalmente por Linux Torvals  asistido por la comunidad de desarrolladores a lo largo de todo el mundo a través de Internet.

Amparado bajo la Licencia Pública GNU General Public License ( GPL ), todo el código fuente ( en C en su práctica totalidad ) esta disponible para el público en general.

Proporciona:

Inicialmente puede parecer que Linux es demasiado pesado para ser apropiado para un sistema empotrado, debido a que normalmente las tipicas distribuciones de Linux incorporan mas funcionalidades de las que necesitamos, incluso de las que necesita un usuario de PC.

Sin embargo, hemos de recabar en que básicamente  nos interesa el Kernel de Linux, el verdadero corazón del sistema. Podemos recalcar las siguientes ventajas que apuntan hacia Linux:

RT-Linux

Sobre plataformas Intel x86, Linux dispone de una extensión de tiempo real llamada Real Time Linux ( RT Linux) . Básicamente se trata de unas modificaciones realizadas al código fuente del núcleo de Linux, para incluir un planificador de tiempo real y una gestión mas eficiente de las interrupciones.
 


Como se aprecia en la figura, RTLinux se situa entre el sistema operativo y directamente sobre el hardware. El núcleo se convierte en una tarea para el planificador de tiempo real, corriendo a la menor prioridad. Las interrupciones son ahora controladas por la capa RT, pasando de forma totalmente transparente a Linux. Las tareas de tiempo real se ejecutan directamente sobre la maquina, siendo planificadas por la capa de RT atendiendo a la prioridad de cada una y de sus requerimientos temporales.

Como ventajas tenemos:

Para entender como funciona RT necesitamos comprender algo mas de Linux: Los Módulos Cargables Dinamicamente.

Para saber mas sobre RT, puede consultarse el articulo [RIPOLL98].

Módulos Cargables Dinámicamente.

Los módulos son trozos del sistema operativo que se pueden insertar y extraer en tiempo de ejecución.
Aparecieron con las versiones 2.0 del Kernel para facilitar el desarrollo de nuevos drivers, pues anteriormente, cada vez que se deseaba probar nuevo código, era necesario reiniciar la maquina.

Cualquier programa en C compuesto por varios archivos fuente, debe ser:

Pero supongamos que unicamente necesitasemos compilar aquel archivo que contiene el Main, y que al ejecutarlo el S.O. fuese capaz de cargar y enlazar el resto de código a medida que hiciese falta.

Linux es capaz de hacer esto no solo con los programas sino TAMBIEN con el propio núcleo.
Cuando este arranca, solo contiene las partes indispensables. El resto del sistema puede estar contenido en archivos no cargados en memoria, que pueden ser usados cuando hacen falta y posteriormente descargados de nuevo.

Con esta capacidad, podemos crear nuevos modulos y cargarlos sin necesidad  de recompilar ni de reiniciar la máquina.

Una  vez cargado un módulo, este pasa a ser parte del sistema operativo, esto implica:

Por la propia implementacion, los modulos ya ofrecen caracteristicas de Tiempo Real: Para generar un módulo no hace falta nada especial, simplemente declarar en la cabecera del fuente que se trata de un módulo. Se compila de la misma manera que un ejecutable, pero posteriormente no se enlaza con librerias de C. Obviamente, no puede usar ninguna llamada al sistema , aunque  si que puede utilizar funciones de libreria que no pidan servicios al S. O.

Será el propio nucleo a la hora de cargarlo el que resuelva las referencias y enlace el nuevo modulo con el código que ya se está ejecutando.

¿Qué distribución de Linux es la apropiada?

En el mercado existe un número de distribuciones comerciales de Linux, que si bien son diferentes, básicamente son: Estas utilidades suelen ser las mismas, pudiendo diferenciarse segun la distribución aquellas para facilitar la instalación y otras orientadas a mejorar las GUIs. Entre las más famosas se encuentran A continuación se muestran otras ditribuciones orientadas a sistemas empotrados: Para mas informacion, puede consultarse el  articulo [RICK2000].
 
 
 
Siguiente