fbpx
Wikipedia

Exonúcleo



En computación, el término exonúcleo (en inglés, exokernel) se refiere a un sistema creado con fines de investigación en el Instituto Tecnológico de Massachusetts sobre OpenBSD y otros sistemas operativos similares. Su propósito es crear una especie de capa de software para otros sistemas virtuales.

Motivación

Tradicionalmente los diseñadores de núcleos intentaban hacer invisibles los recursos de hardware a las aplicaciones requiriendo que interactúen con el hardware de alguna manera conceptual. Estos modelos incluyen sistemas de archivos para almacenamiento en disco, espacio de direcciones virtual, planificadores para el manejo de las tareas y sockets para las comunicaciones en red. Estas abstracciones del hardware hacían más fácil escribir programas en general, pero limitaban el rendimiento y reprimían la experimentación de nuevas abstracciones. Una aplicación orientada a la seguridad podría necesitar un sistema de archivos que no dejase datos viejos en el disco, mientras que una aplicación orientada a la fiabilidad necesitaría un sistema que almacenase esos datos para recuperación en caso de fallos.

Uno podría optar por eliminar el núcleo completamente y programar directamente para el hardware, pero entonces la máquina entera debería estar dedicada a una sola tarea. Se puede llegar a una solución de consenso: dejar al núcleo destinar los recursos físicos de la máquina (por ejemplo, bloques de disco, páginas de memoria y el tiempo de CPU) a múltiples aplicaciones, y dejar a cada programa decidir qué hacer con esos recursos. El programa podría enlazar una librería de sistema operativo (libOS) que implementa abstracciones comunes, o podría implementar sus propias abstracciones. Teóricamente un sistema basado en exonúcleo podría proveer varias libOSes (librerías de sistema operativo) así como diferentes tipos de sistema operativo podrían ejecutarse bajo el mismo exonúcleo.

Visión general

La idea tras los exonúcleos es obligar a los desarrolladores a usar el menor número posible de abstracciones, permitiéndoles tomar tantas decisiones como sea posible sobre las abstracciones de hardware. Los exonúcleos son pequeños, ya que su funcionalidad está limitada a asegurar la protección y el multiplexado de recursos, que son muchísimo más simples que las implementaciones del paso de mensajes y las abstracciones de hardware de los núcleos monolíticos tradicionales.

Las aplicaciones pueden pedir direcciones específicas de memoria, bloques de disco, etc. El núcleo solo asegura que el recurso está libre y se permite a la aplicación usarlo. Este acceso de bajo nivel al hardware permite al programador implementar abstracciones personalizadas y omitir las innecesarias, normalmente contribuyendo a un mejor desempeño de la aplicación. Esto también permite a los programadores escoger qué nivel de abstracción desean.

Los exonúcleos pueden ser vistos como una aplicación del principio del "fin al fin" a los sistemas operativos, en el sentido en que no fuerzan a una aplicación a poner sus abstracciones en distintas capas de las que fueron diseñadas con diferentes requisitos en mente. Por ejemplo, en el proyecto del exonúcleo del MIT, el servidor web Cheetah guarda paquetes preformateados del protocolo IP en el disco, y el núcleo garantiza un acceso seguro al disco evitando lecturas y escrituras no permitidas, pero cómo se abstrae el funcionamiento del disco se deja a la elección de las librerías que la aplicación usa.

Exonúcleo del MIT

El MIT desarrolló dos sistemas operativos basados en exonúcleo, que empleaban dos núcleos: Aegis, una prueba del concepto con soporte limitado para almacenamiento, y XOK, que aplicaba el concepto de exonúcleo más directamente. Una idea esencial del sistema exonúcleo del MIT era que el sistema operativo debería actuar como un ejecutador para pequeños programas suministrados por la aplicación software, que solo están sujetos al requisito de que el exonúcleo debe ser capaz de garantizar que emplean el hardware de forma segura.

Diseño

Consta de 3 capas, la capa del exonúcleo, la capa LibOS (núcleos de varios sistemas operativos corriendo sobre exonúcleo) y la capa de aplicaciones, corriendo sobre LibOS. El exonúcleo del MIT administra el hardware de la siguiente manera:

CPU

El núcleo representa los recursos del procesador como una línea temporal en la cual los programas pueden colocar intervalos de tiempo. Un programa puede ceder el resto de su intervalo de tiempo a otro programa. El núcleo notifica a los programas de los eventos del CPU, como interrupciones, excepciones de hardware, y el inicio o final de un intervalo de tiempo. Si un programa tarda mucho en manejar un evento, el núcleo lo penalizará en las posteriores asignaciones de tiempo, y 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 Translation Lookaside Buffer (TLB). Un programa puede compartir una página con otro dándole permiso para ello. El núcleo se encarga de asegurar que los programas acceden solo a las páginas que tienen permitidas.

Almacenamiento en disco

El núcleo identifica los bloques de disco a las aplicaciones mediante su dirección física, permitiendo a la aplicación que optimice la localización de los datos. Cuando el programa inicializa su uso del disco, suministra al núcleo una función que este puede emplear para determinar qué bloques controla dicho programa. El núcleo usa esta llamada para verificar que cuando asigna un nuevo bloque, el programa solamente solicita el bloque que le fue asignado, además de aquellos que ya controlaba.

Redes

El núcleo implementa un filtro de paquetes programable, que ejecuta programas en un lenguaje byte code diseñado para una fácil comprobación de seguridad por parte del núcleo.

Aplicaciones

Los sistemas operativos (librerías libOS dispuestas sobre el núcleo) disponibles para exonúcleo incluyen el habitual sistema ExOS y un emulador para BSD. Además, el equipo del exonúcleo creó el servidor web Cheetah, que usa el núcleo directamente.

Rendimiento

El sistema es realmente robusto y flexible, debido a que la única tarea del exonúcleo, es impedir que tengan errores de permisos al hardware y conflictos entre los LibOS. Ejemplo de este diseño se encuentra en ExOS y Extended OpenBSD.

Historia

El concepto de exonúcleo fue introducido en torno a los finales de 1994, pero aún en 2005 los exonúcleos siguen siendo un gran esfuerzo en investigación y no son usados en ningún sistema operativo comercial popular. Un sistema operativo que sigue la filosofía exonúcleo es Nemesis, escrito por la Universidad de Cambridge, la Universidad de Glasgow, Citrix Systems y el Instituto Sueco de Informática. El MIT también ha desarrollado varios sistemas exonúcleo, como el ExOS.

Véase también

  •   Datos: Q1350261
  •   Multimedia: Category:Exokernel

exonúcleo, computación, término, exonúcleo, inglés, exokernel, refiere, sistema, creado, fines, investigación, instituto, tecnológico, massachusetts, sobre, openbsd, otros, sistemas, operativos, similares, propósito, crear, especie, capa, software, para, otros. En computacion el termino exonucleo en ingles exokernel se refiere a un sistema creado con fines de investigacion en el Instituto Tecnologico de Massachusetts sobre OpenBSD y otros sistemas operativos similares Su proposito es crear una especie de capa de software para otros sistemas virtuales Indice 1 Motivacion 2 Vision general 3 Exonucleo del MIT 3 1 Diseno 3 1 1 CPU 3 1 2 Memoria 3 1 3 Almacenamiento en disco 3 1 4 Redes 3 2 Aplicaciones 4 Rendimiento 5 Historia 6 Vease tambienMotivacion EditarTradicionalmente los disenadores de nucleos intentaban hacer invisibles los recursos de hardware a las aplicaciones requiriendo que interactuen con el hardware de alguna manera conceptual Estos modelos incluyen sistemas de archivos para almacenamiento en disco espacio de direcciones virtual planificadores para el manejo de las tareas y sockets para las comunicaciones en red Estas abstracciones del hardware hacian mas facil escribir programas en general pero limitaban el rendimiento y reprimian la experimentacion de nuevas abstracciones Una aplicacion orientada a la seguridad podria necesitar un sistema de archivos que no dejase datos viejos en el disco mientras que una aplicacion orientada a la fiabilidad necesitaria un sistema que almacenase esos datos para recuperacion en caso de fallos Uno podria optar por eliminar el nucleo completamente y programar directamente para el hardware pero entonces la maquina entera deberia estar dedicada a una sola tarea Se puede llegar a una solucion de consenso dejar al nucleo destinar los recursos fisicos de la maquina por ejemplo bloques de disco paginas de memoria y el tiempo de CPU a multiples aplicaciones y dejar a cada programa decidir que hacer con esos recursos El programa podria enlazar una libreria de sistema operativo libOS que implementa abstracciones comunes o podria implementar sus propias abstracciones Teoricamente un sistema basado en exonucleo podria proveer varias libOSes librerias de sistema operativo asi como diferentes tipos de sistema operativo podrian ejecutarse bajo el mismo exonucleo Vision general EditarLa idea tras los exonucleos es obligar a los desarrolladores a usar el menor numero posible de abstracciones permitiendoles tomar tantas decisiones como sea posible sobre las abstracciones de hardware Los exonucleos son pequenos ya que su funcionalidad esta limitada a asegurar la proteccion y el multiplexado de recursos que son muchisimo mas simples que las implementaciones del paso de mensajes y las abstracciones de hardware de los nucleos monoliticos tradicionales Las aplicaciones pueden pedir direcciones especificas de memoria bloques de disco etc El nucleo solo asegura que el recurso esta libre y se permite a la aplicacion usarlo Este acceso de bajo nivel al hardware permite al programador implementar abstracciones personalizadas y omitir las innecesarias normalmente contribuyendo a un mejor desempeno de la aplicacion Esto tambien permite a los programadores escoger que nivel de abstraccion desean Los exonucleos pueden ser vistos como una aplicacion del principio del fin al fin a los sistemas operativos en el sentido en que no fuerzan a una aplicacion a poner sus abstracciones en distintas capas de las que fueron disenadas con diferentes requisitos en mente Por ejemplo en el proyecto del exonucleo del MIT el servidor web Cheetah guarda paquetes preformateados del protocolo IP en el disco y el nucleo garantiza un acceso seguro al disco evitando lecturas y escrituras no permitidas pero como se abstrae el funcionamiento del disco se deja a la eleccion de las librerias que la aplicacion usa Exonucleo del MIT EditarEl MIT desarrollo dos sistemas operativos basados en exonucleo que empleaban dos nucleos Aegis una prueba del concepto con soporte limitado para almacenamiento y XOK que aplicaba el concepto de exonucleo mas directamente Una idea esencial del sistema exonucleo del MIT era que el sistema operativo deberia actuar como un ejecutador para pequenos programas suministrados por la aplicacion software que solo estan sujetos al requisito de que el exonucleo debe ser capaz de garantizar que emplean el hardware de forma segura Diseno Editar Consta de 3 capas la capa del exonucleo la capa LibOS nucleos de varios sistemas operativos corriendo sobre exonucleo y la capa de aplicaciones corriendo sobre LibOS El exonucleo del MIT administra el hardware de la siguiente manera CPU Editar El nucleo representa los recursos del procesador como una linea temporal en la cual los programas pueden colocar intervalos de tiempo Un programa puede ceder el resto de su intervalo de tiempo a otro programa El nucleo notifica a los programas de los eventos del CPU como interrupciones excepciones de hardware y el inicio o final de un intervalo de tiempo Si un programa tarda mucho en manejar un evento el nucleo lo penalizara en las posteriores asignaciones de tiempo y en casos extremos el nucleo puede abortar el programa Memoria Editar El nucleo asigna paginas de memoria fisica a los programas y controla el Translation Lookaside Buffer TLB Un programa puede compartir una pagina con otro dandole permiso para ello El nucleo se encarga de asegurar que los programas acceden solo a las paginas que tienen permitidas Almacenamiento en disco Editar El nucleo identifica los bloques de disco a las aplicaciones mediante su direccion fisica permitiendo a la aplicacion que optimice la localizacion de los datos Cuando el programa inicializa su uso del disco suministra al nucleo una funcion que este puede emplear para determinar que bloques controla dicho programa El nucleo usa esta llamada para verificar que cuando asigna un nuevo bloque el programa solamente solicita el bloque que le fue asignado ademas de aquellos que ya controlaba Redes Editar El nucleo implementa un filtro de paquetes programable que ejecuta programas en un lenguaje byte code disenado para una facil comprobacion de seguridad por parte del nucleo Aplicaciones Editar Los sistemas operativos librerias libOS dispuestas sobre el nucleo disponibles para exonucleo incluyen el habitual sistema ExOS y un emulador para BSD Ademas el equipo del exonucleo creo el servidor web Cheetah que usa el nucleo directamente Rendimiento EditarEl sistema es realmente robusto y flexible debido a que la unica tarea del exonucleo es impedir que tengan errores de permisos al hardware y conflictos entre los LibOS Ejemplo de este diseno se encuentra en ExOS y Extended OpenBSD Historia EditarEl concepto de exonucleo fue introducido en torno a los finales de 1994 pero aun en 2005 los exonucleos siguen siendo un gran esfuerzo en investigacion y no son usados en ningun sistema operativo comercial popular Un sistema operativo que sigue la filosofia exonucleo es Nemesis escrito por la Universidad de Cambridge la Universidad de Glasgow Citrix Systems y el Instituto Sueco de Informatica El MIT tambien ha desarrollado varios sistemas exonucleo como el ExOS Vease tambien EditarNucleo monolitico Micronucleo Nucleo hibrido Datos Q1350261 Multimedia Category ExokernelObtenido de https es wikipedia org w index php title Exonucleo amp oldid 135221560, wikipedia, wiki, leyendo, leer, libro, biblioteca,

español

, española, descargar, gratis, descargar gratis, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, imagen, música, canción, película, libro, juego, juegos