fbpx
Wikipedia

L4 (micronúcleo)

L4 es una familia de micronúcleos de segunda generación basada en los diseños e implementaciones originales del informático alemán Jochen Liedtke. Originalmente implementada en código ensamblador altamente afinado para procesadores Intel i386, la API ha sufrido grandes desarrollos en varias direcciones, tanto buscando un nivel más alto de independencia de plataforma como mejorando seguridad, aislamiento y robustez. Ha habido varias reimplementaciones de la interfaz binaria del núcleo L4 (ABI) y sus sucesores de más alto nivel, incluyendo L4Ka::Pistachio (Uni Karlsruhe), L4/MIPS (UNSW) y Fiasco (TU Dresden). Por esta razón, el nombre L4 ya no se refiere únicamente a la implementación original de Liedtke, sino que se aplica a toda la familia de micronúcleos que incluyen la interfaz del núcleo L4 y sus diferentes versiones.

Paradigma de diseño

Al explicar la idea de un micronúcleo, Liedtke decía:

Un concepto es tolerado dentro de un micronúcleo sólo si moviéndolo fuera de él, es decir, desarrollando implementaciones similares a nivel de usuario, la funcionalidad requerida del sistema no podría ser totalmente satisfecha.[1]

De esta manera, el micronúcleo L4 proporciona sólo cuatro mecanismos básicos: modelo de hilos, un mecanismo para comunicación entre procesos síncrona, scheduling y una abstracción del espacio de direcciones.

Un sistema operativo basado en un micronúcleo L4, tiene que proporcionar sus servicios a manera de "servidores" en espacio usuario que los núcleos monolíticos como Linux o micronúcleos de generaciones más antiguas incluyen internamente. Por ejemplo, para implementar un sistema seguro tipo Unix, los servidores tienen que proveer el manejo de permisos que Mach incluía dentro del núcleo.

Historia

Al notar los problemas de diseño y rendimiento de la primera generación del micronúcleo Mach, sus programadores se pusieron a re-examinar el concepto completo de los micronúcleos a mediados de los años 90. Se vio que la comunicación entre procesos asíncrona incluida dentro del núcleo utilizada en Mach llegó a ser una de las principales razones de su bajo rendimiento. Esto indujo a algunos de los programadores de Mach a incluir algunos componentes críticos dentro del núcleo (controladores de dispositivos o sistemas de archivos, por ejemplo), lo que ocasionaba un conflicto con el concepto minimalista de un micronúcleo real.

L3

Jochen Liedtke probó que una pequeña y bien diseñada capa de comunicación entre procesos implementada prestando atención al rendimiento y a cosas específicas de la plataforma, mejoraría el rendimiento general del núcleo. En lugar del complejo sistema de comunicación entre procesos de Mach, su micronúcleo L3 simplemente pasaba los mensajes sin agregarles ninguna carga extra. Definir e implementar las políticas de seguridad requeridas se consideró como una tarea que deberían implementar los servidores del espacio de usuario. El rol del núcleo era sólo proveer el mecanismo necesario para permitir que los servidores en el espacio de usuario, implementen y fortalezcan esas políticas. L3 probó ser un sistema operativo robusto y seguro usado por muchos años, por ejemplo por TÜV SÜD.

L4

Después de cierta experiencia usando L3, Liedtke se dio cuenta de que otros conceptos de Mach también estaban mal ubicados. Al simplificar los conceptos de los micronúcleos más aún, él desarrolló el primer núcleo L4 que estaba diseñado pensando principalmente en un alto rendimiento. Para incrementar absolutamente todo el rendimiento, el núcleo completo fue escrito en ensamblador. Su trabajo causó una pequeña revolución en los círculos de diseño de sistemas operativos. Pronto su trabajo estaba siendo estudiado por un número de universidades e institutos de investigación, incluyendo IBM, donde Liedtke comenzó a trabajar en 1996. En el Centro de Investigación T.J. Watson de IBM, Liedtke y sus colegas continuaron investigando sobre el L4 y sobre sistemas basados en micronúcleos en general.

L4Ka::Hazelnut

En 1999, Liedtke se hizo cargo del Grupo de Arquitecturas de Sistemas en la Universidad de Karlsruhe, donde continuó su investigación en sistemas de micronúcleos. Como prueba de concepto de que un micronúcleo de alto rendimiento podría también ser construido en un lenguaje de alto nivel, el grupo desarrolló L4Ka::Hazelnut, una versión escrita en C++ del núcleo que corría en máquinas basadas en procesadores IA32 y ARM. El esfuerzo fue un éxito (el rendimiento era aún aceptable) y con su publicación las versiones del núcleo escritas en lenguaje ensamblador fueron descontinuadas.

Fiasco

Paralelamente al desarrollo de L4Ka::Hazelnut, en 1998 el grupo de sistemas operativos de la TU Dresden (Technische Universität Dresden) comenzó a desarrollar su propia implementación en C++ de la interfaz del núcleo L4, llamada Fiasco. En contraste a L4Ka::Hazelnut que no permite concurrencia en el núcleo y su sucesor L4Ka::Pistachio, que sólo permite interrupciones en el núcleo en puntos específicos predefinidos, Fiasco es totalmente "preemptible" (con excepción de operaciones atómicas extremadamente pequeñas) y alcanza una muy baja latencia de interrupción. Esto era considerado necesario porque Fiasco es usado como la base del DROPS, un sistema operativo de tiempo real, también desarrollado en TU Dresden.

Independencia de plataforma

L4Ka::Pistachio

Hasta la publicación de L4Ka::Pistachio y versiones más actuales de Fiasco, todos los micronúcleos L4 han estado inherentemente atados a la arquitectura del procesador donde se implementaban. La siguiente gran movida en el desarrollo de L4 fue el salto a una API independiente de plataforma que aún retuviera las características de alto rendimiento a pesar de su nivel de portabilidad más alto. A pesar de que los conceptos sobre los que se cimentaba el núcleo eran los mismos, la nueva API proporcionaba muchos cambios radicales a las versiones de L4 previas, incluyendo mejor soporte para sistemas multiprocesador, mayor separación entre hilos y espacios de direcciones y la introducción de bloques de control de hilos a nivel de usuario (UTCBs: User-level Thread Control Blocks) y registros virtuales. Después de publicar la nueva API de L4 (versión X.2, también conocida como Versión 4) a principios de 2001, el Grupo de Arquitectura de Sistemas en la Universidad de Karlsruhe implementó desde cero un nuevo núcleo, L4Ka::Pistachio, enfocándose en alto rendimiento como también en portabilidad.

Nuevas Versiones de Fiasco

El micronúcleo Fiasco por su parte, ha sido mejorado bastante en los últimos años. Actualmente admite varias plataformas de hardware incluyendo x86, amd64 y varias plataformas ARM. Notablemente, una versión de Fiasco (FiascoUX) puede ejecutarse como una aplicación a nivel de usuario encima de Linux.

Fiasco implementa varias extensiones a la API L4v2. Las IPC de excepciones permiten al núcleo enviar excepciones de CPU a manejadores de excepciones en aplicaciones implementadas a nivel de usuario. En la ayuda de "hilos ajenos" es posible realizar control granular sobre llamadas a sistema. UTCBs tipo X.2 han sido también añadidas; además, Fiasco contiene mecanismos para controlar permisos de comunicación tanto como manejo de consumo de recursos a nivel de núcleo. Sobre Fiasco se ha desarrollado una colección de servicios básicos a nivel de usuario (llamados L4Env) que entre otras cosas son usados para paravirtualizar una versión actual de Linux (2.6.x) (llamada L4Linux).

Universidad de Nueva Gales del Sur y NICTA

L4 también se desarrolla en la Universidad de Nueva Gales del Sur (UNSW), donde los programadores implementaron L4 en varias plataformas de 64 bits. Su trabajo resultó en L4/MIPS y L4/Alpha, haciendo que la versión original de Liedtke se bautice retroactivamente como L4/x86. Al igual que los núcleos originales de Liedtke, los núcleos de la UNSW (escritos en una mezcla de ensamblador y C) no eran portables y cada uno tenía que ser implementado desde cero. Con la publicación del altamente portable L4Ka::Pistachio, el grupo de la UNSW abandonó sus propios núcleos y comenzó a portar L4Ka::Pistachio a otras arquitecturas, incluyendo la implementación más rápida reportada de paso de mensajes (36 ciclos en la arquitectura Itanium).[2]

El grupo también ha demostrado que los controladores de dispositivos a nivel de usuario pueden tener el mismo rendimiento que controladores implementados en el núcleo[3]​ y desarrollaron Wombat, una versión altamente portable de Linux en L4 que corre en procesadores x86, ARM y MIPS. En procesadores XScale, Wombat demostró que el costo de hacer conmutación de contexto era hasta 30 veces menos que en Linux nativo.[4]

Investigación y desarrollo actual

Recientemente, el grupo de la UNSW en su nuevo centro en la National ICT Australia (NICTA), hizo un "fork" de L4Ka::Pistachio y lo llamó NICTA::L4-embedded; como su nombre lo dice, pretende ser usado en sistemas comerciales embebidos y consecuentemente, los detalles de implementación hacen que el consumo de memoria sea pequeño y la complejidad reducida. La API ha sido modificada para que casi todas las llamadas al sistema sean lo bastante cortas como para no requerir puntos de "preemption" para asegurar alta respuesta en tiempo real.[5]

El grupo de NICTA ahora se enfoca en transformar a L4 en una plataforma altamente segura y confiable. Actualmente se está desarrollando una prueba formal de correctitud de la implementación.[6]

Todo esto es combinado con el desarrollo de una nueva L4 API, llamada seL4, que pretende satisfacer requerimientos de seguridad tales como los de Criterio Común. La API seL4 es representada por una especificación ejecutable[7]​ escrita en Haskell. Hay un proyecto similar sobre la ejecución de análisis exhaustivos de latencias en operaciones de núcleos. Trabajos adicionales están desarrollando marcos para construir sistemas componentizados sobre L4.[8]

El proyecto GNU Hurd estaba considerando adoptar el micronúcleo L4 (GNU Hurd/L4 [1]) para reemplazar a Mach, pero su nuevo diseño basado en capacidades no es compatible con L4 que no soporta capacidades. Posibles alternativas son L4.sec y Coyotos, con una marcada preferencia hacia Coyotos (su desarrollo ha sido hecho público; su especificación publicada y los esfuerzos han sido hechos para hacer que Coyotos cubra todas las necesidades de HURD).

Osker , un sistema operativo escrito en Haskell, está siendo escrito para cumplir la especificación de L4, a pesar de que se enfoca en el uso de programación funcional para el desarrollo de sistemas operativos, no se enfoca estrictamente en investigación sobre micronúcleos.

Implantación Comercial

En noviembre de 2005, NICTA anunció que Qualcomm estaba implementando la versión de L4 de NICTA en los chips de sus Mobile Station Modem, lo que condujo al uso de L4 en algunos teléfonos móviles desde finales de 2006. En agosto de 2006, el jefe de ERTOS y profesor de la UNSW, Gernot Heiser, lanzó una compañía llamada (OK Labs) que se encargaría de proporcionar soporte comercial a los usuarios de L4 y a continuar el desarrollo de L4 para su uso comercial, en una estrecha colaboración con NICTA. OK Labs distribuye su propia versión de L4, llamada OKL4 el 20 de agosto de 2008 en Wayback Machine., que es un descendiente de NICTA::L4-embedded y con soporte para las arquitecturas x86, ARM y MIPS. OKL4 fue inicialmente distribuido bajo una licencia BSD; pero las últimas publicaciones usan una licencia dual con una licencia Sleepycat de código abierto. OK Labs también distribuye un Linux paravirtualizado llamado OKLinux, un descendiente de Wombat.

En abril de 2008, OK Labs publicó su OKL4 2.1 que es la primera versión pública de L4 usando un modelo de seguridad basado en capacidades.

Referencias

  1. Jochen Liedtke (December de 1995). «On µ-Kernel Construction». Proc. 15th ACM symposium on Operating Systems Principles (SOSP). pp. 237-250.  Parámetro desconocido |dataarquivo= ignorado (ayuda); Parámetro desconocido |urlmorta= ignorado (ayuda); Parámetro desconocido |dataacceso= ignorado (ayuda); Parámetro desconocido |urlarquivo= ignorado (ayuda)
  2. Gray, Charles; Chapman, Matthew; Chubb, Peter; Mosberger-Tang, David; Heiser, Gernot (Abril de 2005). «Itanium—a system implementor's tale». USENIX Annual Technical Conference. Annaheim, CA, USA. pp. 264-278. 
  3. Leslie, Ben; Chubb, Peter; FitzRoy-Dale, Nicholas; Götz, Stefan; Gray, Charles; Macpherson, Luke; Potts, Daniel; Shen, Yueting; Elphinstone, Kevin; Heiser, Gernot (septiembre de 2005). «User-level device drivers: achieved performance». Journal of Computer Science and Technology 5 (20): 654-664. doi:10.1007/s11390-005-0654-4. 
  4. van Schaik, Carl; Heiser, Gernot (January de 2007). «High-performance microkernels and virtualisation on ARM and segmented architectures». 1st International Workshop on Microkernels for Embedded Systems. Sydney, Australia: NICTA. pp. 11-21. Consultado el 1 de abril de 2007.  Parámetro desconocido |urlarquivo= ignorado (ayuda); Parámetro desconocido |dataarquivo= ignorado (ayuda); Parámetro desconocido |urlmorta= ignorado (ayuda);
  5. Ruocco, Sergio (octubre de 2007). «A Real-Time Programmer's Tour of General-Purpose L4 Microkernels». EURASIP Journal on Embedded Systems, Special Issue on Operating System Support for Embedded Real-Time Applications 2008: 1. doi:10.1155/2008/234710. 
  6. Tuch, Harvey; Klein, Gerwin; Norrish, Michael (January de 2007). «Types, bytes, and separation logic». 34th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages. Nice, France. pp. 97-108. 
  7. Derrin, Philip; Elphinstone, Kevin; Klein, Gerwin; Cock; David; Chakravarty, Manuel M. T. (September de 2006). «Running the manual: an approach to high-assurance microkernel development». ACM SIGPLAN Haskell Workshop. Portland, Oregon. pp. 60-71. 
  8. Kuz, Ihor; Liu, Yan; Gorton, Ian; Heiser, Gernot (to appear). «CAmkES: a component model for secure microkernel-based embedded systems». Journal of Systems and Software. 
  • Jochen Liedtke, Ulrich Bartling, Uwe Beyer, Dietmar Heinrichs, Rudolf Ruland, Gyula Szalay. Two years of experience with a μ-Kernel based OS, ACM Press 1991
  • Liedtke, Jochen; Haeberlen, Andreas; Park, Yoonho; Reuther, Lars; Uhlig, Volkmar (22 de octubre de 2000). «Copia archivada». . Archivado desde el original|urlarchivo= requiere |url= (ayuda) el 5 de septiembre de 2006. Consultado el 5 de septiembre de 2006.  |title= y |título= redundantes (ayuda) (on L4 kernel and compiler)
  • Cheng Guanghui, Nicholas Mc Guire. , Distributed & Embedded Systems Lab - Lanzhou University

Enlaces externos

  • – Centro L4, sitio común para proyectos L4
  • The L4 microkernel family – Descripción, documentación y proyectos de las implementaciones de L4
    • Wiki Oficial de L4.Fiasco
  • L4Ka – Implementaciones L4Ka::Pistachio y L4Ka::Hazelnut
  • Fiasco – Una implementación libre en C++ para procesadores x86 y ARM
  • UNSW – Implementaciones para DEC Alpha y MIPS
  • OKL4 el 20 de agosto de 2008 en Wayback Machine. – Versión comercial de L4 de
  • – Publicaciones de Investigación
    • – Un puerto de Linux sobre L4/ OS
    • – Un puerto de Darwin sobre L4
  • L4Linux – Linux corriendo en L4
  • DROPS – Proyecto de un Sistema Operativo en Tiempo Real de Dresde
  • GNU Hurd/L4 – Porte de GNU Hurd/Mach a L4
  • – El Grupo de Investigación de µKernel L4 de China
  • Información de L3, el predecesor de L4
  •   Datos: Q1797819

micronúcleo, este, artículo, sección, necesita, wikificado, favor, edítalo, para, cumpla, convenciones, estilo, este, aviso, puesto, febrero, 2020, familia, micronúcleos, segunda, generación, basada, diseños, implementaciones, originales, informático, alemán, . Este articulo o seccion necesita ser wikificado por favor editalo para que cumpla con las convenciones de estilo Este aviso fue puesto el 23 de febrero de 2020 L4 es una familia de micronucleos de segunda generacion basada en los disenos e implementaciones originales del informatico aleman Jochen Liedtke Originalmente implementada en codigo ensamblador altamente afinado para procesadores Intel i386 la API ha sufrido grandes desarrollos en varias direcciones tanto buscando un nivel mas alto de independencia de plataforma como mejorando seguridad aislamiento y robustez Ha habido varias reimplementaciones de la interfaz binaria del nucleo L4 ABI y sus sucesores de mas alto nivel incluyendo L4Ka Pistachio Uni Karlsruhe L4 MIPS UNSW y Fiasco TU Dresden Por esta razon el nombre L4 ya no se refiere unicamente a la implementacion original de Liedtke sino que se aplica a toda la familia de micronucleos que incluyen la interfaz del nucleo L4 y sus diferentes versiones Indice 1 Paradigma de diseno 2 Historia 2 1 L3 2 2 L4 2 3 L4Ka Hazelnut 2 4 Fiasco 3 Independencia de plataforma 3 1 L4Ka Pistachio 3 2 Nuevas Versiones de Fiasco 3 3 Universidad de Nueva Gales del Sur y NICTA 4 Investigacion y desarrollo actual 5 Implantacion Comercial 6 Referencias 7 Enlaces externosParadigma de diseno EditarAl explicar la idea de un micronucleo Liedtke decia Un concepto es tolerado dentro de un micronucleo solo si moviendolo fuera de el es decir desarrollando implementaciones similares a nivel de usuario la funcionalidad requerida del sistema no podria ser totalmente satisfecha 1 De esta manera el micronucleo L4 proporciona solo cuatro mecanismos basicos modelo de hilos un mecanismo para comunicacion entre procesos sincrona scheduling y una abstraccion del espacio de direcciones Un sistema operativo basado en un micronucleo L4 tiene que proporcionar sus servicios a manera de servidores en espacio usuario que los nucleos monoliticos como Linux o micronucleos de generaciones mas antiguas incluyen internamente Por ejemplo para implementar un sistema seguro tipo Unix los servidores tienen que proveer el manejo de permisos que Mach incluia dentro del nucleo Historia EditarAl notar los problemas de diseno y rendimiento de la primera generacion del micronucleo Mach sus programadores se pusieron a re examinar el concepto completo de los micronucleos a mediados de los anos 90 Se vio que la comunicacion entre procesos asincrona incluida dentro del nucleo utilizada en Mach llego a ser una de las principales razones de su bajo rendimiento Esto indujo a algunos de los programadores de Mach a incluir algunos componentes criticos dentro del nucleo controladores de dispositivos o sistemas de archivos por ejemplo lo que ocasionaba un conflicto con el concepto minimalista de un micronucleo real L3 Editar Jochen Liedtke probo que una pequena y bien disenada capa de comunicacion entre procesos implementada prestando atencion al rendimiento y a cosas especificas de la plataforma mejoraria el rendimiento general del nucleo En lugar del complejo sistema de comunicacion entre procesos de Mach su micronucleo L3 simplemente pasaba los mensajes sin agregarles ninguna carga extra Definir e implementar las politicas de seguridad requeridas se considero como una tarea que deberian implementar los servidores del espacio de usuario El rol del nucleo era solo proveer el mecanismo necesario para permitir que los servidores en el espacio de usuario implementen y fortalezcan esas politicas L3 probo ser un sistema operativo robusto y seguro usado por muchos anos por ejemplo por TUV SUD L4 Editar Despues de cierta experiencia usando L3 Liedtke se dio cuenta de que otros conceptos de Mach tambien estaban mal ubicados Al simplificar los conceptos de los micronucleos mas aun el desarrollo el primer nucleo L4 que estaba disenado pensando principalmente en un alto rendimiento Para incrementar absolutamente todo el rendimiento el nucleo completo fue escrito en ensamblador Su trabajo causo una pequena revolucion en los circulos de diseno de sistemas operativos Pronto su trabajo estaba siendo estudiado por un numero de universidades e institutos de investigacion incluyendo IBM donde Liedtke comenzo a trabajar en 1996 En el Centro de Investigacion T J Watson de IBM Liedtke y sus colegas continuaron investigando sobre el L4 y sobre sistemas basados en micronucleos en general L4Ka Hazelnut Editar En 1999 Liedtke se hizo cargo del Grupo de Arquitecturas de Sistemas en la Universidad de Karlsruhe donde continuo su investigacion en sistemas de micronucleos Como prueba de concepto de que un micronucleo de alto rendimiento podria tambien ser construido en un lenguaje de alto nivel el grupo desarrollo L4Ka Hazelnut una version escrita en C del nucleo que corria en maquinas basadas en procesadores IA32 y ARM El esfuerzo fue un exito el rendimiento era aun aceptable y con su publicacion las versiones del nucleo escritas en lenguaje ensamblador fueron descontinuadas Fiasco Editar Paralelamente al desarrollo de L4Ka Hazelnut en 1998 el grupo de sistemas operativos de la TU Dresden Technische Universitat Dresden comenzo a desarrollar su propia implementacion en C de la interfaz del nucleo L4 llamada Fiasco En contraste a L4Ka Hazelnut que no permite concurrencia en el nucleo y su sucesor L4Ka Pistachio que solo permite interrupciones en el nucleo en puntos especificos predefinidos Fiasco es totalmente preemptible con excepcion de operaciones atomicas extremadamente pequenas y alcanza una muy baja latencia de interrupcion Esto era considerado necesario porque Fiasco es usado como la base del DROPS un sistema operativo de tiempo real tambien desarrollado en TU Dresden Independencia de plataforma EditarL4Ka Pistachio Editar Hasta la publicacion de L4Ka Pistachio y versiones mas actuales de Fiasco todos los micronucleos L4 han estado inherentemente atados a la arquitectura del procesador donde se implementaban La siguiente gran movida en el desarrollo de L4 fue el salto a una API independiente de plataforma que aun retuviera las caracteristicas de alto rendimiento a pesar de su nivel de portabilidad mas alto A pesar de que los conceptos sobre los que se cimentaba el nucleo eran los mismos la nueva API proporcionaba muchos cambios radicales a las versiones de L4 previas incluyendo mejor soporte para sistemas multiprocesador mayor separacion entre hilos y espacios de direcciones y la introduccion de bloques de control de hilos a nivel de usuario UTCBs User level Thread Control Blocks y registros virtuales Despues de publicar la nueva API de L4 version X 2 tambien conocida como Version 4 a principios de 2001 el Grupo de Arquitectura de Sistemas en la Universidad de Karlsruhe implemento desde cero un nuevo nucleo L4Ka Pistachio enfocandose en alto rendimiento como tambien en portabilidad Nuevas Versiones de Fiasco Editar El micronucleo Fiasco por su parte ha sido mejorado bastante en los ultimos anos Actualmente admite varias plataformas de hardware incluyendo x86 amd64 y varias plataformas ARM Notablemente una version de Fiasco FiascoUX puede ejecutarse como una aplicacion a nivel de usuario encima de Linux Fiasco implementa varias extensiones a la API L4v2 Las IPC de excepciones permiten al nucleo enviar excepciones de CPU a manejadores de excepciones en aplicaciones implementadas a nivel de usuario En la ayuda de hilos ajenos es posible realizar control granular sobre llamadas a sistema UTCBs tipo X 2 han sido tambien anadidas ademas Fiasco contiene mecanismos para controlar permisos de comunicacion tanto como manejo de consumo de recursos a nivel de nucleo Sobre Fiasco se ha desarrollado una coleccion de servicios basicos a nivel de usuario llamados L4Env que entre otras cosas son usados para paravirtualizar una version actual de Linux 2 6 x llamada L4Linux Universidad de Nueva Gales del Sur y NICTA Editar L4 tambien se desarrolla en la Universidad de Nueva Gales del Sur UNSW donde los programadores implementaron L4 en varias plataformas de 64 bits Su trabajo resulto en L4 MIPS y L4 Alpha haciendo que la version original de Liedtke se bautice retroactivamente como L4 x86 Al igual que los nucleos originales de Liedtke los nucleos de la UNSW escritos en una mezcla de ensamblador y C no eran portables y cada uno tenia que ser implementado desde cero Con la publicacion del altamente portable L4Ka Pistachio el grupo de la UNSW abandono sus propios nucleos y comenzo a portar L4Ka Pistachio a otras arquitecturas incluyendo la implementacion mas rapida reportada de paso de mensajes 36 ciclos en la arquitectura Itanium 2 El grupo tambien ha demostrado que los controladores de dispositivos a nivel de usuario pueden tener el mismo rendimiento que controladores implementados en el nucleo 3 y desarrollaron Wombat una version altamente portable de Linux en L4 que corre en procesadores x86 ARM y MIPS En procesadores XScale Wombat demostro que el costo de hacer conmutacion de contexto era hasta 30 veces menos que en Linux nativo 4 Investigacion y desarrollo actual EditarRecientemente el grupo de la UNSW en su nuevo centro en la National ICT Australia NICTA hizo un fork de L4Ka Pistachio y lo llamo NICTA L4 embedded como su nombre lo dice pretende ser usado en sistemas comerciales embebidos y consecuentemente los detalles de implementacion hacen que el consumo de memoria sea pequeno y la complejidad reducida La API ha sido modificada para que casi todas las llamadas al sistema sean lo bastante cortas como para no requerir puntos de preemption para asegurar alta respuesta en tiempo real 5 El grupo de NICTA ahora se enfoca en transformar a L4 en una plataforma altamente segura y confiable Actualmente se esta desarrollando una prueba formal de correctitud de la implementacion 6 Todo esto es combinado con el desarrollo de una nueva L4 API llamada seL4 que pretende satisfacer requerimientos de seguridad tales como los de Criterio Comun La API seL4 es representada por una especificacion ejecutable 7 escrita en Haskell Hay un proyecto similar sobre la ejecucion de analisis exhaustivos de latencias en operaciones de nucleos Trabajos adicionales estan desarrollando marcos para construir sistemas componentizados sobre L4 8 El proyecto GNU Hurd estaba considerando adoptar el micronucleo L4 GNU Hurd L4 1 para reemplazar a Mach pero su nuevo diseno basado en capacidades no es compatible con L4 que no soporta capacidades Posibles alternativas son L4 sec y Coyotos con una marcada preferencia hacia Coyotos su desarrollo ha sido hecho publico su especificacion publicada y los esfuerzos han sido hechos para hacer que Coyotos cubra todas las necesidades de HURD Osker 2 un sistema operativo escrito en Haskell esta siendo escrito para cumplir la especificacion de L4 a pesar de que se enfoca en el uso de programacion funcional para el desarrollo de sistemas operativos no se enfoca estrictamente en investigacion sobre micronucleos Implantacion Comercial EditarEn noviembre de 2005 NICTA anuncio que Qualcomm estaba implementando la version de L4 de NICTA en los chips de sus Mobile Station Modem lo que condujo al uso de L4 en algunos telefonos moviles desde finales de 2006 En agosto de 2006 el jefe de ERTOS y profesor de la UNSW Gernot Heiser lanzo una compania llamada Open Kernel Labs OK Labs que se encargaria de proporcionar soporte comercial a los usuarios de L4 y a continuar el desarrollo de L4 para su uso comercial en una estrecha colaboracion con NICTA OK Labs distribuye su propia version de L4 llamada OKL4 Archivado el 20 de agosto de 2008 en Wayback Machine que es un descendiente de NICTA L4 embedded y con soporte para las arquitecturas x86 ARM y MIPS OKL4 fue inicialmente distribuido bajo una licencia BSD pero las ultimas publicaciones usan una licencia dual con una licencia Sleepycat de codigo abierto OK Labs tambien distribuye un Linux paravirtualizado llamado OKLinux un descendiente de Wombat En abril de 2008 OK Labs publico su OKL4 2 1 que es la primera version publica de L4 usando un modelo de seguridad basado en capacidades Referencias Editar Jochen Liedtke December de 1995 On µ Kernel Construction Proc 15th ACM symposium on Operating Systems Principles SOSP pp 237 250 Parametro desconocido dataarquivo ignorado ayuda Parametro desconocido urlmorta ignorado ayuda Parametro desconocido dataacceso ignorado ayuda La referencia utiliza el parametro obsoleto month ayuda Parametro desconocido urlarquivo ignorado ayuda Gray Charles Chapman Matthew Chubb Peter Mosberger Tang David Heiser Gernot Abril de 2005 Itanium a system implementor s tale USENIX Annual Technical Conference Annaheim CA USA pp 264 278 La referencia utiliza el parametro obsoleto coauthors ayuda La referencia utiliza el parametro obsoleto month ayuda Leslie Ben Chubb Peter FitzRoy Dale Nicholas Gotz Stefan Gray Charles Macpherson Luke Potts Daniel Shen Yueting Elphinstone Kevin Heiser Gernot septiembre de 2005 User level device drivers achieved performance Journal of Computer Science and Technology 5 20 654 664 doi 10 1007 s11390 005 0654 4 van Schaik Carl Heiser Gernot January de 2007 High performance microkernels and virtualisation on ARM and segmented architectures 1st International Workshop on Microkernels for Embedded Systems Sydney Australia NICTA pp 11 21 Consultado el 1 de abril de 2007 Parametro desconocido urlarquivo ignorado ayuda Parametro desconocido dataarquivo ignorado ayuda Parametro desconocido urlmorta ignorado ayuda La referencia utiliza el parametro obsoleto month ayuda La referencia utiliza el parametro obsoleto coauthors ayuda Ruocco Sergio octubre de 2007 A Real Time Programmer s Tour of General Purpose L4 Microkernels EURASIP Journal on Embedded Systems Special Issue on Operating System Support for Embedded Real Time Applications 2008 1 doi 10 1155 2008 234710 Tuch Harvey Klein Gerwin Norrish Michael January de 2007 Types bytes and separation logic 34th ACM SIGPLAN SIGACT Symposium on Principles of Programming Languages Nice France pp 97 108 La referencia utiliza el parametro obsoleto coauthors ayuda La referencia utiliza el parametro obsoleto month ayuda Derrin Philip Elphinstone Kevin Klein Gerwin Cock David Chakravarty Manuel M T September de 2006 Running the manual an approach to high assurance microkernel development ACM SIGPLAN Haskell Workshop Portland Oregon pp 60 71 La referencia utiliza el parametro obsoleto month ayuda La referencia utiliza el parametro obsoleto coauthors ayuda Kuz Ihor Liu Yan Gorton Ian Heiser Gernot to appear CAmkES a component model for secure microkernel based embedded systems Journal of Systems and Software Jochen Liedtke Ulrich Bartling Uwe Beyer Dietmar Heinrichs Rudolf Ruland Gyula Szalay Two years of experience with a m Kernel based OS ACM Press 1991 Liedtke Jochen Haeberlen Andreas Park Yoonho Reuther Lars Uhlig Volkmar 22 de octubre de 2000 Copia archivada In Proceedings of the 1st Workshop on Industrial Experiences with Systems Software WIESS San Diego CA October 2000 Archivado desde el original urlarchivo requiere url ayuda el 5 de septiembre de 2006 Consultado el 5 de septiembre de 2006 La referencia utiliza el parametro obsoleto coauthors ayuda title y titulo redundantes ayuda on L4 kernel and compiler Cheng Guanghui Nicholas Mc Guire L4 Fiasco L4Linux Kickstart Distributed amp Embedded Systems Lab Lanzhou UniversityEnlaces externos EditarPublicaciones L4ka L4Hq Centro L4 sitio comun para proyectos L4 The L4 microkernel family Descripcion documentacion y proyectos de las implementaciones de L4 Wiki Oficial de L4 Fiasco L4Ka Implementaciones L4Ka Pistachio y L4Ka Hazelnut Fiasco Una implementacion libre en C para procesadores x86 y ARM UNSW Implementaciones para DEC Alpha y MIPS OKL4 Archivado el 20 de agosto de 2008 en Wayback Machine Version comercial de L4 de Open Kernel Labs NICTA L4 Publicaciones de Investigacion Wombat Un puerto de Linux sobre L4 Iguana OS Darbat Un puerto de Darwin sobre L4 L4Linux Linux corriendo en L4 DROPS Proyecto de un Sistema Operativo en Tiempo Real de Dresde GNU Hurd L4 Porte de GNU Hurd Mach a L4 China Comp L4 Research Group El Grupo de Investigacion de µKernel L4 de China Informacion de L3 el predecesor de L4 Datos Q1797819Obtenido de https es wikipedia org w index php title L4 micronucleo amp oldid 134923561, 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