stringtranslate.com

Núcleo híbrido

Estructura de los sistemas operativos basados ​​en kernel monolítico, microkernel y híbrido

Un kernel híbrido es una arquitectura de kernel de sistema operativo que intenta combinar aspectos y beneficios de las arquitecturas de microkernel y kernel monolíticas utilizadas en los sistemas operativos. [1] [2] [ ¿ fuente poco confiable? ]

Descripción general

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

La idea detrás de un kernel híbrido es tener una estructura de kernel similar a la de un microkernel, pero implementar esa estructura a la manera de un kernel monolítico. A diferencia de un microkernel, todos (o casi todos) los servicios del sistema operativo en un kernel híbrido todavía están en el espacio del kernel . No existen ninguno de los beneficios de confiabilidad de tener servicios en el espacio del usuario , como ocurre con un microkernel . Sin embargo, al igual que con un kernel monolítico ordinario , no hay ninguna sobrecarga de rendimiento para el paso de mensajes y el cambio de contexto entre el modo kernel y el modo de usuario que normalmente viene con un microkernel.

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 ambas capas.

Un ejemplo destacado de un kernel híbrido es el kernel de Microsoft Windows NT que impulsa todos los sistemas operativos de la familia Windows NT , hasta Windows 11 y Windows Server 2022 inclusive , y Windows Phone 8 , Windows Phone 8.1 y Xbox One .

Windows NT fue el primer sistema operativo Windows basado en un núcleo híbrido [ cita requerida ] . El núcleo híbrido fue diseñado como un micronúcleo modificado , influenciado por el micronúcleo Mach desarrollado por Richard Rashid en la Universidad Carnegie Mellon, pero sin cumplir todos los criterios de un micronúcleo puro. Windows basado en NT se clasifica como un kernel híbrido (o macrokernel [4] ) en lugar de un kernel monolítico porque los subsistemas de emulación se ejecutan en procesos de servidor en modo usuario, en lugar de en modo kernel como en un kernel monolítico, y además debido a la gran cantidad de objetivos de diseño que se parecen a los objetivos de diseño de Mach (en particular, la separación de las personalidades del sistema operativo de un diseño general del núcleo). 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 sería el caso con un diseño monolítico (en un diseño monolítico tradicional, no habría un micronúcleo por se, pero el kernel implementaría una funcionalidad muy similar a los subsistemas microkernel y modo kernel 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 denomina subsistema de ejecución cliente/servidor (csrss.exe). En las versiones de NT anteriores a la 4.0, este proceso de subsistema también contenía el administrador de ventanas, la interfaz del dispositivo de gráficos y los controladores del dispositivo de gráficos. 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 de gráficos internos) se ejecutan como un subsistema en modo kernel. [4]

Las aplicaciones que se ejecutan en NT se escriben en una de las personalidades del sistema operativo (normalmente la API de Windows) y no en 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 a través de un conjunto de DLL en modo de usuario (consulte 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 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 atrapando 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 de usuario apropiados, que a su vez utilizan la API de NT para comunicarse con procesos de aplicación, los subsistemas en modo kernel y entre sí. [5]

El núcleo XNU

núcleo XNU

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

Originalmente desarrollado por NeXT para el sistema operativo NeXTSTEP , XNU era un kernel híbrido que combinaba la versión 2.5 del kernel 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 derivaron del kernel Mach 3.0 original de la Universidad Carnegie Mellon). Los componentes BSD se actualizaron con código de FreeBSD. proyecto y el kit de controladores fue reemplazado por una API de C++ para escribir controladores llamado kit de E/S [ cita requerida ] .

Descripción

Al igual que otros núcleos modernos , XNU es un híbrido que contiene características monolíticas y de microkernels , e intenta hacer el mejor uso de ambas tecnologías, como la capacidad de transmisión de mensajes de los microkernels, lo que permite una mayor modularidad [ cita requerida ] y porciones más grandes del sistema operativo. para beneficiarse de la memoria protegida , [ cita necesaria ] además de conservar la velocidad de los núcleos monolíticos para ciertas tareas críticas.

Otros

Ver también

Notas

  1. ^ "Núcleo híbrido - OSDev Wiki". wiki.osdev.org . Consultado el 11 de enero de 2021 .
  2. ^ "¿Qué es el kernel híbrido? - Definición de Techopedia". Techinfo.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 "Oh, esos micronúcleos tenían buenas relaciones públicas, ¿cómo podemos intentar obtener buenas relaciones públicas para nuestro núcleo en funcionamiento? Oh, lo sé, usemos un nombre atractivo e intentemos dar a entender que tiene todas las ventajas de relaciones públicas que tiene ese otro sistema.
  4. ^ ab "Informe técnico sobre GDI y usuario en modo kernel de MS Windows NT". Corporación Microsoft. 2007 . Consultado 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 los principios del sistema operativo . Investigación de Microsoft/Asia - Pekín. Archivado desde el original el 28 de noviembre de 2007 . Consultado el 1 de marzo de 2007 .
  6. ^ "Migración de aplicaciones UNIX/Linux a OS X: Glosario". Computadora Apple. 2005 . Consultado el 16 de junio de 2017 .
  7. ^ ab Jim Magee. WWDC 2000 Sesión 106 - Mac OS X: Núcleo. 14 minutos dentro.
  8. ^ Douglas M. Wells (1994). Un entorno de sistema operativo confiable, escalable y en tiempo real (PDF) . 1994 Conferencia de aplicaciones y tecnologías de doble uso del IEEE. S2CID  5205380. Archivado desde el original (PDF) el 22 de agosto de 2017.
  9. ^ Dibujó mayor; Greg Minshall; Kyle Powell. "Una descripción general del sistema operativo NetWare".
  10. ^ "Núcleo OS/2" . Consultado el 4 de septiembre de 2020 .

Referencias