Ejemplos detallados de sistemas operativos con microkernel

De Departamento de Informatica
Saltar a: navegación, buscar

Contenido

Microkernel

Un microkernel es un pequeño kernel del sistema operativo que proporciona las bases para ampliaciones modulares. La esencia consiste en que solo las funciones absolutamente esenciales del kernel del sistema operativo deben permanecer en el microkernel. Los servicios y las aplicaciones menos esenciales se construyen sobre el microkernel y se ejecutan en modo usuario.

Las ventajas teóricas de los sistemas a microkernel son la consecuencia de la utilización del modo protegido por los servicios que acompañan el microkernel. En efecto, colocando los servicios en el espacio usuario, éstos gozan de la protección de la memoria. La estabilidad del conjunto es mejorada: un error de un servicio en modo protegido tiene pocas consecuencias sobre la estabilidad del conjunto de la máquina.

Además, reduciendo las posibilidades para los servicios a poder directamente intervenir sobre el material, la seguridad del sistema es reforzada. El sistema también gana en posibilidades de configuración. Así, sólo los servicios útiles deben ser realmente lanzados al comienzo(arranque). Las interdependencias entre los diferentes servicios son débiles. El añadido o la retirada de un servicio no perturba el conjunto del sistema. La complejidad del conjunto es reducida.

El desarrollo de un sistema a microkernel también se encuentra simplificado sacando partido a la vez de la protección de la memoria y de la interdependencia entre los servicios. Los errores provocados por las aplicaciones en modo usuario son tratados más simplemente que en el modo kernel y no ponen en peligro la estabilidad global del sistema. La intervención sobre una funcionalidad defectuosa consiste en parar el antiguo servicio luego en lanzar el nuevo, sin deber arrancar de nuevo toda la máquina.

Ejemplos

Minix

Minix es un sistema operativo desarrollado por Andrew S. Tanenbaum en 1987. El nombre Minix esta formado por las palabras mini y unix para dar paso a MINIUNIX, los propósitos básicos de este sistema es que sea fácil de comprender y fácil de modificar. Al poseer microkernel destaca por su modularidad y compresión, ademas de soportar multiprocesos y mutiusuario. Cuenta con aproximadamente 4000 lineas de código ejecutable en modo kernel. Su funcionamiento es bastante parecido en cuanto a Unix en lo que se refiere al procesador de comandos(shell), los comandos en si y las llamadas al sistema. Actualmente se encuentra disponible la versión 3 para su descarga.

MINIX esta destinado principalmete para:

  • Aplicaciones donde alta fiabilidad sea requerida
  • Notebooks que cuentan con pocos recursos
  • Sistemas embebidos: cámaras, grabadoras, celulares, routers,etc
  • Educación: para la enseñanza de cursos de sistemas operativos en las universidades

Características de MINIX

  • Compatible con POSIX
  • Protocolo TCP/IP
  • Cuenta con sistema X Windows
  • Multiusuario
  • Multiprogramación
  • Multiplataforma
  • Tolerancia a fallas
  • Admite lenguajes: gcc,g++,perl,python,etc
  • Mas de 400 programas Unix
  • Acceso al código fuente C completo

Requerimientos de hardware

En su versión 3 MINIX necesita un computador con procesador 386,486,Pentium o compatible.Para su configuración estandar requiere de 16 MB de memoria ram(aunque es posible hacerlo funcionar con 4 MB). Para la instalación en el disco duro es necesario un minino de 50 MB y 600 MB si se desean todos los recursos. Se cuenta con una versión live cd para probar sin necesidad de instalar en el disco duro.

Estructura de MINIX

Estructura de MINIX

Capa 1:

  • Atiende las interrupciones, guardando y recuperando registros
  • Planificación de tareas y procesos
  • La parte de esta capa que trata con el nivel inferior de las interrupciones esta escrita en ensamblador, el resto en C

Capa 2 Contiene los tareas de I/O, manejadores de dispositivos

  • Memoria
  • Discos
  • Impresora
  • Terminal
  • Reloj
  • Todas las tareas se gestionan independientemente y se comunican utilizando mensajes.

Capa 3

  • Se ocupa del manejo de memoria, sistema de ficheros, servidor de red
  • Se ejecuta con menor privilegio que la capa 1 y 2
  • En MINIX, el manejo de recursos se realiza principalmente en el núcleo(capa 1 y 2) y las llamadas al sistema en la capa 3

Capa 4

  • Contiene todos los procesos de usuario,shell,editores,compiladores,etc.

QNX

El surgimiento de QNX se remonta al año 1982 cuando dos estudiantes de la Universidad de Waterloo, Gordon Bell y Dan Dodge, lanzan la primera versión de este sistema operativo. Ambos creían en la necesidad de un sistema operativo comercial de tiempo real y los primeros usos que tuvo fue en el terreno de los sistemas no embebidos, donde pronto se ganaría una buena fama por su estabilidad y desempeño.En 2004, se anunció la venta de la compañía a Harman International Industries,años mas tardes en abril de 2010 RIM compró QNX Software Systems a Harman International Industries y restringió la utilización del código del sistema operativo. En septiembre de 2011, anunciaba la primera tableta basada en QNX.

Dan Dodge - Gordon Bell

Características

  • Código Propietario
  • No utiliza mucha memoria
  • Cualquier evento en el soporte físico puede hacer que se ejecute una tarea
  • Multi-arquitectura
  • Muchos tienen tiempos de respuesta predecibles para eventos electrónicos
  • Compatible con POSIX
  • Protocolo TCP/IP
  • Espacio requerido para instalación: 10 MB(mínimo) o 160 MB si se desean características adicionales
  • Funciones del microkernel: comunicación entre procesos, comunicación de red a bajo nivel,planificador de procesos,manejo de interrupciones
  • Multitarea
  • Escalable

SymbOS

Su desarrollo se remonta al año 2000.SymbOS es un sistema operativo multitarea para ordenadores de 8 bits basados en el Zilog Z80. En el momento actual está disponible para las gamas de ordenadores Amstrad CPC, PCW, y MSX 2.

Kernel

Contiene un microkernel que se encarga del control de las tareas fundamentales del sistema operativo. Se divide en Gestión de Procesos, Gestión de Memoria y de Bancos de Memoria y Cola de Mensajes.

  • Gestión de Procesos: Para la Gestión de Procesos se selecciona una combinación de Multitarea Cooperativa y Preferente, en función de la prioridad asignada al proceso. En la Preferente, el proceso es interrumpido cada cierto tiempo por el sistema, para asignar el tiempo de CPU a cada uno de los procesos existentes en la Cooperativa, en contraste, es el proceso el que entrega voluntariamente su tiempo de CPU. Esto ocurre, por ejemplo, si acaba con sus tareas (por lo menos provisionales) o queda a la espera de cierto evento. Con esta combinación pueden asignarse las prioridades. Los procesos de baja prioridad reciben su tiempo, finalizan su tarea y entregan voluntariamente su tiempo de CPU que pasa a las tareas con un nivel más alto de prioridad.
  • Gestión de Memoria y de Bancos de Memoria: La Gestión de Memoria divide toda la RAM en bloques consecutivos de 256 Bytes, que se asignarán dinámicamente.
  • Cola de Mensajes: La comunicación entre los procesos individuales y el sistema operativo ocurre mediante una pila de “mensajes” que son gestionados por el sistema.
Escritorio de SymbOS

Características

  • Multiplataforma: Amstrad CPC-6128,CPC-TREX, C-ONE,MSX2, MSX2+, MSX TurboR, OCM,Amstrad PCW 8xxx, 9xxx, PcW10.
  • Numero máximo de procesadores:32
  • Tamaño máximo del disco duro: 128 GB
  • Aproximadamente 44.000 lineas de código

Arquitectura

Consta de tres diferentes capas. Solo la low-level-layer se comunica directamente con el hardware.

Architecture symbos.gif

Phoenix-RTOS

El Phoenix-RTOS fue escrito por Pawel Pisarczyk como su tema de Tesis de Ciencia en la Facultad de Electrónica y tecnología de la información de Varsovia. Principalmente fue diseñado para functionar sobre los ordenadores x86-based, pero los puertos para PowerPC y arquitecturas de microprocesador de BRAZO son en el desarrollo. En 2004, el Fénix-RTOS se hizo Open Source según los términos de la Licencia de Gran público de GNU (GPL).

Características

  • Multiplataforma: IA32, ARM7 y PowerPC arquitecturas. Ademas, el sistema puede funcionar con muchas otras arquitecturas, de un simple microcontroler hasta un multi-procesor y multi-core 64-bits.
  • Es un tiempo real sistema operativo por los dispositivos integrados. Permite de evitar los problemas en relación con las soluciones de GNU/Linux.
  • Puede usar USB, TCP/IP...
  • El codigo fue creado en respecto de las limitaciones de Hardware.

Jari Operating System

Jari OS es un tiempo real microkernel sistema operativo. Mas precisamente, es una plataforma para sistemas operativos: plataforma basada en un microkernel y una arquitectura de multi-servicios. Suporta POSIX Standards y sigue reglas de UNIX. Este OS plataforma existe desde 2005.

Estructura de JARI

Capture.jpg

Kernel

Siglo de Jari OS

El microkernel que se usa es muStrings. Y permite estas funcionalidades:

  • Inicialización de la CPU
  • Gestión de la memoria
  • Reloj
  • IPC
  • Interrupciones (IRQ)

Características

  • Lenguaje:C, Assembly, Block
  • Licensias: GNU, GPL
  • UNIX like
  • Uso de POSIX
  • No GUI todavía
  • Funciona sobre AMD64

Referencias

  1. Sitio Oficial MINIX3 [1]
  2. Extensa información de MINIX [2]
  3. SymbOS
  4. Conociendo QNX el sistema operativo que mueve el playbook[3]
  5. Página con información detallada sobre QNX[4]
  6. Sitio Oficial QNX[5]
  7. Sitio Phoenix RTOS[6]
  8. Sitio Jari OS[7]
Herramientas personales
Espacios de nombres
Variantes
Acciones
Navegación
Herramientas