Articulo de referencia

núcleo híbrido

Estructura de los sistemas operativos basados ​​en núcleos monolíticos, micronúcleos e híbridos. Un núcleo híbrido es un núcleo de sistema operativo cuya arquitectura intenta co...

Estructura de los sistemas operativos basados ​​en núcleos monolíticos, micronúcleos e híbridos.

Un núcleo híbrido es un núcleo de sistema operativo cuya arquitectura intenta combinar aspectos y beneficios de las arquitecturas de micronúcleo y núcleo monolítico utilizadas en los sistemas operativos. [ 1 ] [ 2 ]

Descripción general

Las categorías tradicionales de núcleos son los núcleos monolíticos y los micronúcleos (considerando los nanonúcleos y exonúcleos como versiones más extremas de los micronúcleos). La categoría "híbrida" es controvertida, debido a la similitud entre los núcleos híbridos y los núcleos monolíticos ordinarios; Linus Torvalds ha descartado el término como simple estrategia de marketing. [ 3 ]

La idea detrás de un núcleo híbrido es tener una estructura de núcleo similar a la de un micronúcleo, pero implementándola como un núcleo monolítico. A diferencia de un micronúcleo, todos (o casi todos) los servicios del sistema operativo en un núcleo híbrido se encuentran en el espacio del núcleo . No se obtienen los beneficios de confiabilidad que ofrece tener servicios en el espacio de usuario , como ocurre con un micronúcleo. Sin embargo, al igual que con un núcleo monolítico convencional, no existe la sobrecarga de rendimiento asociada al paso de mensajes y al cambio de contexto entre el modo núcleo y el modo usuario, que normalmente se presenta en un micronúcleo.

Ejemplos

núcleo NT

La arquitectura de la familia de sistemas operativos Windows NT consta de dos capas ( modo de usuario y modo kernel ), con muchos módulos diferentes dentro de cada una de ellas.

Un ejemplo destacado de núcleo híbrido es el núcleo Microsoft Windows NT , que impulsa todos los sistemas operativos de la familia Windows NT , hasta Windows 11 y Windows Server 2025 inclusive , y que también impulsa Windows Phone 8 , Windows Phone 8.1 , Windows 10 Mobile y las consolas Xbox One y Xbox Series .

Windows NT fue el primer sistema operativo Windows basado en un núcleo híbrido . Este núcleo híbrido se diseñó como un micronúcleo modificado , influenciado por el micronúcleo Mach desarrollado por Richard Rashid en la Universidad Carnegie Mellon, pero sin cumplir con todos los criterios de un micronúcleo puro. Windows basado en NT se clasifica como un núcleo híbrido (o macronúcleo [ 4 ] ) en lugar de un núcleo monolítico, debido a que los subsistemas de emulación se ejecutan en procesos de servidor en modo usuario, en lugar de en modo núcleo como en un núcleo monolítico, y también debido a la gran cantidad de objetivos de diseño que se asemejan a los de Mach (en particular, la separación de las personalidades del sistema operativo de un diseño de núcleo general). Por el contrario, la razón por la que NT no es un sistema de micronúcleo es porque la mayoría de los componentes del sistema se ejecutan en el mismo espacio de direcciones que el núcleo, como ocurriría con un diseño monolítico (en un diseño monolítico tradicional, no habría un micronúcleo propiamente dicho, pero el núcleo implementaría una funcionalidad ampliamente similar a la del micronúcleo y los subsistemas en modo núcleo de NT).

La personalidad principal del sistema operativo en Windows es la API de Windows , que siempre está presente. El subsistema de emulación que implementa la personalidad de Windows se llama Subsistema de tiempo de ejecución cliente/servidor (csrss.exe). En versiones de NT anteriores a la 4.0, este proceso del subsistema también contenía el administrador de ventanas, la interfaz de dispositivo gráfico y los controladores de dispositivo gráfico. Sin embargo, por razones de rendimiento, en la versión 4.0 y posteriores, estos módulos (que a menudo se implementan en modo de usuario incluso en sistemas monolíticos, especialmente aquellos diseñados sin soporte gráfico interno) se ejecutan como un subsistema en modo kernel. [ 4 ]

Las aplicaciones que se ejecutan en NT están escritas para una de las personalidades del sistema operativo (normalmente la API de Windows), y no para la API nativa de NT, cuya documentación no está disponible públicamente (con la excepción de las rutinas utilizadas en el desarrollo de controladores de dispositivos). Una personalidad del sistema operativo se implementa mediante un conjunto de DLL en modo usuario (véase biblioteca de vínculos dinámicos ), que se asignan a los espacios de direcciones de los procesos de la aplicación según sea necesario, junto con un proceso de servidor del subsistema de emulación (como se describió anteriormente). Las aplicaciones acceden a los servicios del sistema llamando a las DLL de la personalidad del sistema operativo asignadas a sus espacios de direcciones, que a su vez llaman a la biblioteca de tiempo de ejecución de NT (ntdll.dll), también asignada al espacio de direcciones del proceso. La biblioteca de tiempo de ejecución de NT atiende estas solicitudes entrando en modo kernel para llamar a rutinas ejecutivas en modo kernel o realizar llamadas a procedimientos locales (LPC) a los procesos de servidor del subsistema en modo usuario correspondientes, que a su vez utilizan la API de NT para comunicarse con los procesos de la aplicación, los subsistemas en modo kernel y entre sí. [ 5 ]

El núcleo XNU

núcleo XNU

XNU es el núcleo que Apple Inc. adquirió y desarrolló para su uso en los sistemas operativos macOS , iOS , watchOS y tvOS , y que lanzó como software libre y de código abierto como parte del sistema operativo Darwin . XNU es un acrónimo de X is Not Unix . [ 6 ]

XNU , desarrollado originalmente por NeXT para el sistema operativo NeXTSTEP , era un núcleo híbrido que combinaba la versión 2.5 del núcleo Mach con componentes de 4.3BSD y una API orientada a objetos para escribir controladores llamada Driver Kit.

Después de que Apple adquirió NeXT, el componente Mach se actualizó a OSFMK 7.3, [ 7 ] que es un microkernel. [ 8 ] Apple utiliza un OSFMK 7.3 muy modificado que funciona como un kernel híbrido con partes de FreeBSD incluidas. [ 7 ] (OSFMK 7.3 incluye código aplicable del kernel Mach 4 de la Universidad de Utah y código aplicable de las muchas variantes de Mach 3.0 que se bifurcaron del kernel Mach 3.0 original de la Universidad Carnegie Mellon). Los componentes BSD se actualizaron con código del proyecto FreeBSD y el Driver Kit fue reemplazado por una API de C++ para escribir controladores llamada I/O Kit .

Descripción

Al igual que otros núcleos modernos, XNU es un híbrido que contiene características tanto de núcleos monolíticos como de micronúcleos, intentando aprovechar al máximo ambas tecnologías. Por ejemplo, la capacidad de paso de mensajes de los micronúcleos permite una mayor modularidad y que mayores porciones del sistema operativo se beneficien de la memoria protegida , además de conservar la velocidad de los núcleos monolíticos para ciertas tareas críticas.

Otros

Véase también

Notas

  1. "Núcleo híbrido - Wiki de OSDev" . wiki.osdev.org . Consultado el 11 de enero de 2021 .
  2. "¿Qué es un núcleo híbrido? - Definición de Techopedia" . Techopedia.com . 22 de agosto de 2011. Consultado el 11 de enero de 2021 .
  3. "Linus Torvalds" . En cuanto a todo el asunto del "núcleo híbrido", es solo marketing. Es como decir: "Oh, esos micronúcleos tuvieron buena publicidad, ¿cómo podemos intentar conseguir buena publicidad para nuestro núcleo funcional? Ah, ya sé, usemos un nombre atractivo e intentemos dar a entender que tiene todas las ventajas de publicidad que tiene ese otro sistema".
  4. 1 2 "Documento técnico sobre el modo kernel de usuario y GDI de MS Windows NT" . Microsoft Corporation. 2007. Recuperado el 24 de agosto de 2022 .
  5. Probert, Dave (2005). "Descripción general de la arquitectura de Windows" . Uso de proyectos basados ​​en API internas de NT para enseñar principios de sistemas operativos . Microsoft Research/Asia - Pekín. Archivado del original el 28 de noviembre de 2007. Recuperado el 1 de marzo de 2007 .
  6. "Portando aplicaciones UNIX/Linux a OS X: Glosario" . Apple Computer. 2005. Consultado el 16 de junio de 2017 .
  7. 1 2 Jim Magee. WWDC 2000 Sesión 106 - Mac OS X: Núcleo . Minuto 14.
  8. Douglas M. Wells (1994). Un entorno de sistema operativo confiable, escalable y en tiempo real (PDF) . Conferencia IEEE de Tecnologías y Aplicaciones de Doble Uso de 1994. S2CID 5205380. Archivado del original (PDF) el 22 de agosto de 2017. 
  9. Drew Major; Greg Minshall; Kyle Powell. "Una descripción general del sistema operativo NetWare" .

Referencias

  • Mark Russinovich (23 de noviembre de 2004). "Dentro de la API nativa" . Sysinternals . Archivado del original el 15 de marzo de 2006. Consultado el 24 de julio de 2006 .