Articulo de referencia

Exonúcleo

Descripción gráfica del exokernel. Los exokernels son mucho más pequeños que un kernel normal ( kernel monolítico ). Ofrecen un acceso más directo al hardware, eliminando así la...

Descripción gráfica del exokernel. Los exokernels son mucho más pequeños que un kernel normal ( kernel monolítico ). Ofrecen un acceso más directo al hardware, eliminando así la mayoría de las abstracciones.

Exokernel es un núcleo de sistema operativo desarrollado por el grupo de Sistemas Operativos Paralelos y Distribuidos del MIT , [1] y también una clase de sistemas operativos similares.

Los sistemas operativos generalmente presentan recursos de hardware a las aplicaciones a través de abstracciones de alto nivel , como sistemas de archivos (virtuales). La idea detrás de los exokernels es forzar la menor cantidad posible de abstracciones a los desarrolladores de aplicaciones, lo que les permite tomar tantas decisiones como sea posible sobre abstracciones de hardware. [2] Los exokernels son diminutos, ya que la funcionalidad se limita a garantizar la protección y multiplexación de recursos, lo que es considerablemente más simple que la implementación del paso de mensajes de los microkernels convencionales y la implementación de abstracciones de alto nivel de los kernels monolíticos .

Las abstracciones implementadas se denominan sistemas operativos de biblioteca; pueden solicitar direcciones de memoria específicas, bloques de disco, etc. El núcleo solo garantiza que el recurso solicitado esté libre y que la aplicación pueda acceder a él. Este acceso de hardware de bajo nivel permite al programador implementar abstracciones personalizadas y omitir las innecesarias, generalmente para mejorar el rendimiento de un programa. También permite a los programadores elegir qué nivel de abstracción desean, alto o bajo.

Los exokernels pueden considerarse una aplicación del principio de extremo a extremo a los sistemas operativos, en el sentido de que no obligan a un programa de aplicación a superponer sus abstracciones sobre otras abstracciones que se diseñaron teniendo en cuenta diferentes requisitos. Por ejemplo, en el proyecto Exokernel del MIT, el servidor web Cheetah almacena paquetes de protocolo de Internet preformateados en el disco; el núcleo proporciona acceso seguro al disco al impedir la lectura y escritura no autorizadas, pero la forma en que se abstrae el disco depende de la aplicación o de las bibliotecas que utiliza la aplicación.

Motivación

Tradicionalmente, los diseñadores de núcleos han buscado hacer que los recursos de hardware individuales sean invisibles para los programas de aplicación al exigirles que interactúen con el hardware a través de algún modelo de abstracción. Estos modelos incluyen sistemas de archivos para el almacenamiento en disco, espacios de direcciones virtuales para la memoria, programadores para la gestión de tareas y sockets para la comunicación en red. Estas abstracciones del hardware facilitan la escritura de programas en general, pero limitan el rendimiento y sofocan la experimentación con nuevas abstracciones. Una aplicación orientada a la seguridad puede necesitar un sistema de archivos que no deje datos antiguos en el disco, mientras que una aplicación orientada a la confiabilidad puede necesitar un sistema de archivos que conserve dichos datos para la recuperación de fallas.

Una opción es eliminar el núcleo por completo y programar directamente en el hardware, pero entonces toda la máquina estaría dedicada a la aplicación que se está escribiendo (y, a la inversa, todo el código base de la aplicación estaría dedicado a esa máquina). El concepto de exokernel es un compromiso: dejar que el núcleo asigne los recursos físicos básicos de la máquina (por ejemplo, bloques de disco , páginas de memoria y tiempo de procesador) a múltiples programas de aplicación, y dejar que cada programa decida qué hacer con estos recursos. El programa puede entonces vincularse a una biblioteca de soporte que implemente las abstracciones que necesita (o puede implementar las suyas propias).

Exonúcleos del MIT

El MIT desarrolló dos sistemas operativos basados ​​en exokernel, utilizando dos núcleos: Aegis, una prueba de concepto con soporte limitado para almacenamiento, y XOK, que aplicó el concepto de exokernel más a fondo.

Una idea esencial del sistema exokernel del MIT es que el sistema operativo debe actuar como un ejecutivo para pequeños programas proporcionados por el software de aplicación, que están limitados únicamente por el requisito de que el exokernel debe ser capaz de garantizar que utilizan el hardware de forma segura.

Diseño

El exokernel MIT administra los recursos de hardware de la siguiente manera:

Procesador
El núcleo representa los recursos del procesador como una línea de tiempo a partir de la cual los programas pueden asignar intervalos de tiempo. Un programa puede ceder el resto de su porción de tiempo a otro programa designado. El núcleo notifica a los programas los eventos del procesador, como interrupciones , excepciones de hardware y el comienzo o el final de una porción de tiempo. Si un programa tarda mucho tiempo en manejar un evento, el núcleo lo penalizará en las asignaciones de porciones de tiempo posteriores; en casos extremos, el núcleo puede abortar el programa.
Memoria
El núcleo asigna páginas de memoria física a los programas y controla el búfer de traducción . Un programa puede compartir una página con otro programa enviándole una capacidad para acceder a esa página. El núcleo garantiza que los programas accedan únicamente a las páginas para las que tienen capacidad.
Almacenamiento en disco
El núcleo identifica los bloques de disco para el programa de aplicación por su dirección de bloque física, lo que permite que la aplicación optimice la ubicación de los datos. Cuando el programa inicializa el uso del disco, proporciona al núcleo una función que este puede utilizar para determinar qué bloques controla el programa. El núcleo utiliza esta función de retorno para verificar que, cuando asigna un nuevo bloque, el programa reclama únicamente el bloque que se asignó además de los que ya controlaba.
Redes
El núcleo implementa un filtro de paquetes programable , que ejecuta programas en un lenguaje de código de bytes diseñado para una fácil comprobación de seguridad por parte del núcleo.

Aplicaciones

Los sistemas operativos de biblioteca disponibles para Exokernel incluyen el sistema ExOS personalizado y un emulador para BSD . Además de estos, el equipo de exokernel creó el servidor web Cheetah , que utiliza el kernel directamente.

Historia

La arquitectura de MINIX 3

El concepto de exokernel existe desde al menos 1994, [3] pero a partir de 2010 [actualizar]los exokernels siguen siendo un esfuerzo de investigación y no se han utilizado en ningún sistema operativo comercial importante.

Un concepto de sistema operativo exokernel es Nemesis , escrito por la Universidad de Cambridge , la Universidad de Glasgow , Citrix Systems y el Instituto Sueco de Ciencias de la Computación . El MIT también ha creado varios sistemas basados ​​en exokernel, incluido ExOS.

Véase también

Referencias

  1. ^ "Sistema operativo MIT Exokernel". pdos.csail.mit.edu . Consultado el 25 de enero de 2018 .
  2. ^ Engler, DR; Kaashoek, MF; O'Toole Jr., J.; Engler, DR; Kaashoek, MF; O'Toole Jr., J. (1995-12-03). "Exokernel: una arquitectura de sistema operativo para la gestión de recursos a nivel de aplicación". ACM SIGOPS Operating Systems Review . 29 (5): 251, 251–266, 266. doi :10.1145/224056.224076. ISSN  0163-5980. S2CID  221932539.
  3. ^ Engler, Kaashoek y O'Toole 1995.

Bibliografía

  • Engler, Dawson R (1998). "The Exokernel Operating System Architecture" (PostScript) . MIT . Consultado el 22 de septiembre de 2006 . {{cite journal}}: Requiere citar revista |journal=( ayuda )
  • ———; Kaashoek, M. Frans (1996). "Exterminate All Operating System Abstractions" (Exterminar todas las abstracciones del sistema operativo) (PostScript) . MIT . Consultado el 22 de septiembre de 2006 . {{cite journal}}: Requiere citar revista |journal=( ayuda )
  • ———; Kaashoek, M. Frans ; O'Toole, James Jr (1995). "Exokernel" (PDF) . Actas del decimoquinto simposio de la ACM sobre principios de sistemas operativos - SOSP '95 . Vol. 29. págs. 251–66. doi :10.1145/224056.224076. ISBN 978-0-89791-715-5. S2CID  221932539 . Consultado el 8 de octubre de 2014 .
  • Erlingsson, Úlfar; Kyparlis, Athanasios, Microkernels, Cornell, Hasta qué punto las operaciones simples y eficientes son una buena opción en el diseño de una interfaz de kernel.
  • Sistema operativo exokernel, MITUn exonúcleo de investigación.
  • Nemesis, Reino Unido : CambridgeUn exonúcleo de investigación.
  • BareMetal OS, Return Infinity, archivado desde el original el 6 de septiembre de 2014Un exonúcleo comercial.
  • XOmB, archivado desde el original el 28 de julio de 2019 , consultado el 13 de mayo de 2013Un exonúcleo de investigación.
  • ExAmour, FREl exonúcleo GNU .
Obtenido de "https://es.wikipedia.org/w/index.php?title=Exonúcleo&oldid=1188971479"