Kernel es la parte central de un sistema operativo que administra los recursos del sistema. También actúa como un puente entre la aplicación y el hardware de la computadora. Es uno de los primeros programas cargados al inicio (después del Bootloader).
Modo kernel y modo usuario de operación de
la CPU La CPU puede ejecutar ciertas instrucciones solo cuando está en modo kernel. Estas instrucciones se denominan instrucciones de privilegio. Permiten la implementación de operaciones especiales cuya ejecución por parte del programa de usuario podría interactuar con el funcionamiento del sistema operativo o la actividad de otro programa de usuario. Por ejemplo, instrucciones para administrar la protección de la memoria.
- El sistema operativo pone la CPU en modo kernel cuando se ejecuta en el kernel para que el kernel pueda ejecutar alguna operación especial.
- El sistema operativo pone la CPU en modo de usuario cuando un programa de usuario está en ejecución para que el programa de usuario no pueda interactuar con el programa del sistema operativo.
- La instrucción a nivel de usuario no requiere un privilegio especial. Los ejemplos son AGREGAR, EMPUJAR, etc.
El concepto de modos se puede extender más allá de dos, requiriendo más de un bit de modo único. Las CPU que admiten la virtualización usan uno de estos bits adicionales para indicar cuándo el administrador de la máquina virtual, VMM, tiene el control del sistema. El VMM tiene más privilegios que los programas de usuario ordinarios, pero no tantos como el núcleo completo.
Las llamadas al sistema generalmente se implementan en forma de interrupciones de software, lo que hace que el controlador de interrupciones del hardware transfiera el control a un controlador de interrupciones apropiado, que es parte del sistema operativo, cambiando el bit de modo al modo kernel en el proceso. El controlador de interrupciones verifica exactamente qué interrupción se generó, verifica parámetros adicionales (generalmente pasados a través de registros) si corresponde, y luego llama a la rutina de servicio del kernel adecuada para manejar el servicio solicitado por la llamada del sistema.
Los intentos de los programas de usuario de ejecutar instrucciones ilegales (instrucciones privilegiadas o inexistentes), o de acceder a áreas de memoria prohibidas, también generan interrupciones de software, que son atrapadas por el controlador de interrupciones, y el control se transfiere al sistema operativo, que emite un error apropiado. mensaje, posiblemente volca los datos en un archivo de registro (núcleo) para un análisis posterior y luego finaliza el programa infractor.
¿Qué es Microkernel?
Un microkernel es una de las clasificaciones del kernel. Al ser un kernel, administra todos los recursos del sistema. Pero en un microkernel, los servicios de usuario y los servicios del kernel se implementan en diferentes espacios de direcciones. Los servicios de usuario se mantienen en el espacio de direcciones del usuario , y los servicios del núcleo se mantienen en el espacio de direcciones del núcleo , lo que también reduce el tamaño del núcleo y el tamaño de un sistema operativo.
Proporciona servicios mínimos de gestión de procesos y memoria. La comunicación entre el programa/aplicación del cliente y los servicios que se ejecutan en el espacio de direcciones del usuario se establece a través del paso de mensajes, lo que reduce la velocidad del microkernel de ejecución. El sistema operativo no se ve afectado , ya que los servicios de usuario y los servicios del kernel están aislados, por lo que si algún servicio del usuario falla, no afecta el servicio del kernel. Por lo tanto, se suma a una de las ventajas de un microkernel. Es fácilmente ampliable , es decir, si se van a agregar nuevos servicios, se agregan al espacio de direcciones del usuario y, por lo tanto, no requieren modificación en el espacio del kernel. También es portátil, seguro y confiable.
Arquitectura de microkernel:
dado que el kernel es la parte central del sistema operativo, está diseñado para manejar solo los servicios más importantes. Por lo tanto, en esta arquitectura, solo los servicios más importantes están dentro del kernel y el resto de los servicios del sistema operativo están presentes dentro del programa de aplicación del sistema. Por lo tanto, los usuarios pueden interactuar con esos servicios no tan importantes dentro de la aplicación del sistema. Y el microkernel es el único responsable de los servicios más importantes del sistema operativo que se nombran de la siguiente manera:
- Interproceso-Comunicación
- Gestión de la memoria
- Programación de CPU
Ventajas de micronúcleo –
- La arquitectura de este núcleo es pequeña y aislada, por lo que puede funcionar mejor.
- La expansión del sistema es más fácil, simplemente se agrega a la aplicación del sistema sin alterar el kernel.
Eclipse IDE es un buen ejemplo de arquitectura Microkernel.
Leer a continuación: Kernel monolítico y diferencias clave con Microkernel