logo

¿Qué es el núcleo?

En informática, Kernel es un programa informático que es el núcleo o corazón de un sistema operativo. Antes de analizar el kernel en detalle, primero comprendamos sus conceptos básicos, es decir, el sistema operativo de una computadora.

Sistema operativo

Un sistema operativo o SO es un software de sistema que funciona como una interfaz entre los componentes de hardware y el usuario final. Permite ejecutar otros programas. Cada sistema informático, ya sea de escritorio, portátil, tableta o teléfono inteligente, debe tener un sistema operativo para proporcionar funcionalidades básicas para el dispositivo. Algunos sistemas operativos ampliamente utilizados son ventanas , linux , MacOS, Android, iOS, etc.

¿Qué es el kernel en el sistema operativo?

¿Qué es el núcleo?
  • Como se mencionó anteriormente, el kernel es la parte central de un sistema operativo (sistema operativo); por lo tanto, tiene control total sobre todo lo que hay en el sistema. Cada operación de hardware y software es gestionada y administrada por el kernel.
  • Actúa como un puente entre las aplicaciones y el procesamiento de datos realizado a nivel de hardware. Es el componente central de un sistema operativo.
  • Es la parte del sistema operativo que siempre reside en la memoria de la computadora y permite la comunicación entre los componentes de software y hardware.
  • Es el programa de computadora que se cargó por primera vez al iniciar el sistema (después del gestor de arranque). Una vez cargado, gestiona el resto de arranques. También gestiona solicitudes de memoria, periféricos y E/S del software. Además, traduce todas las solicitudes de E/S en instrucciones de procesamiento de datos para la CPU. Gestiona otras tareas también como como administración de memoria, administración de tareas y administración de discos .
  • Un kernel se guarda y generalmente se carga en un espacio de memoria separado, conocido como Espacio del kernel protegido. Está protegido contra el acceso de programas de aplicación o partes menos importantes del sistema operativo.
  • Otros programas de aplicación, como el navegador, el procesador de textos y el reproductor de audio y vídeo, utilizan un espacio de memoria separado conocido como espacio de usuario.
  • Debido a estos dos espacios separados, los datos del usuario y los datos del kernel no interfieren entre sí y no causan inestabilidad ni lentitud.

Funciones de un kernel

Un núcleo de un sistema operativo es responsable de realizar diversas funciones y tiene control sobre el sistema. Algunas responsabilidades principales de Kernel se detallan a continuación:

    Gestión de dispositivos
    Para realizar diversas acciones, los procesos requieren acceso a dispositivos periféricos como un mouse, teclado, etc., que están conectados a la computadora. Un kernel es responsable de controlar estos dispositivos mediante controladores de dispositivo. Aquí un controlador de dispositivo es un programa informático que ayuda o permite que el sistema operativo se comunique con cualquier dispositivo de hardware.
    Un kernel mantiene una lista de todos los dispositivos disponibles, y es posible que esta lista ya sea conocida, configurada por el usuario o detectada por el sistema operativo en tiempo de ejecución.Gestión de la memoria
    El kernel tiene control total para acceder a la memoria de la computadora. Cada proceso requiere algo de memoria para funcionar y el kernel permite que los procesos accedan a la memoria de forma segura. Para asignar la memoria, el primer paso se conoce como direccionamiento virtual, que se realiza mediante paginación o segmentación. direccionamiento virtual es un proceso de proporcionar espacios de direcciones virtuales a los procesos. Esto evita que las aplicaciones choquen entre sí.Administracion de recursos
    Una de las funcionalidades importantes de Kernel es compartir los recursos entre varios procesos. Debe compartir los recursos de manera que cada proceso acceda uniformemente al recurso.
    El kernel también proporciona una forma de sincronización y comunicación entre procesos (IPC). Es responsable del cambio de contexto entre procesos.Acceso a recursos informáticos
    Un kernel es responsable de acceder a los recursos de la computadora, como la RAM y los dispositivos de E/S. RAM o memoria de acceso aleatorio se utiliza para contener datos e instrucciones. Cada programa necesita acceder a la memoria para ejecutarse y, en su mayoría, quiere más memoria de la disponible. En tal caso, Kernel desempeña su papel y decide qué memoria utilizará cada proceso y qué hacer si la memoria requerida no está disponible.
    El kernel también asigna la solicitud de las aplicaciones para utilizar dispositivos de E/S como teclados, micrófonos, impresoras, etc.

Tipos de núcleo

Existen principalmente cinco tipos de Kernel, que se detallan a continuación:

¿Qué es el núcleo?

1. Núcleos monolíticos

En un núcleo monolítico, el El mismo espacio de memoria se utiliza para implementar servicios de usuario y servicios de kernel.

¿Qué es el núcleo?

Significa que, en este tipo de kernel, no se utiliza memoria diferente para los servicios de usuario y los servicios del kernel.

Como utiliza el mismo espacio de memoria, el tamaño del kernel aumenta, aumentando el tamaño total del sistema operativo.

La ejecución de procesos también es más rápida que otros tipos de kernel, ya que no utiliza espacio separado de usuario y kernel.

Ejemplos de núcleos monolíticos son Unix, Linux, Open VMS, XTS-400, etc.

función de subcadena java

Ventajas:

  • La ejecución de procesos también es más rápida ya que no hay espacio de usuario y espacio de kernel separados y hay menos software involucrado.
  • Como es una sola pieza de software, tanto sus fuentes como sus formularios compilados son más pequeños.

Desventajas:

  • Si algún servicio genera algún error, puede colapsar todo el sistema.
  • Estos núcleos no son portátiles, lo que significa que para cada nueva arquitectura deben reescribirse.
  • De gran tamaño y, por tanto, difíciles de gestionar.
  • Para agregar un nuevo servicio es necesario modificar el sistema operativo completo.

2. Micronúcleo

¿Qué es el núcleo?

Un micronúcleo también se conoce como mk , y es diferente de un kernel tradicional o Monolithic Kernel. En esto, Los servicios de usuario y los servicios del kernel se implementan en dos espacios de direcciones diferentes: espacio de usuario y espacio del kernel. . Dado que utiliza diferentes espacios para ambos servicios, el tamaño del microkernel disminuye, lo que también reduce el tamaño del sistema operativo.

Los microkernels son más fáciles de administrar y mantener en comparación con los kernels monolíticos. Aún así, si habrá una mayor cantidad de llamadas al sistema y cambios de contexto, entonces podría reducir el rendimiento del sistema al hacerlo lento.

Estos núcleos utilizan un sistema de paso de mensajes para manejar la solicitud de un servidor a otro.

Los microkernels solo proporcionan algunos servicios esenciales, como la definición de espacios de direcciones de memoria, IPC (comunicación entre procesos) y gestión de procesos. Kernel no proporciona otros servicios, como las redes, y los maneja un programa de espacio de usuario conocido como servidores .

Una de las principales desventajas de los núcleos monolíticos, que un error en el núcleo puede bloquear todo el sistema, se puede eliminar en el micronúcleo. Al igual que en un microkernel, si un proceso del kernel falla, aún se puede evitar la falla de todo el sistema reiniciando los servicios causados ​​por el error.

Ejemplos de Microkernel son L4, AmigaOS, Minix, K42 , etc.

Ventajas

  • Los microkernels se pueden gestionar fácilmente.
  • Se puede agregar fácilmente un nuevo servicio sin modificar todo el sistema operativo.
  • En un microkernel, si un proceso del kernel falla, aún es posible evitar que todo el sistema falle.

Desventajas

  • Hay más requisitos de software para la interfaz, lo que reduce el rendimiento del sistema.
  • La gestión de procesos es muy complicada.
  • Los errores de mensajería son difíciles de solucionar.

3. Núcleo híbrido

¿Qué es el núcleo?

Los núcleos híbridos también se conocen como núcleos modulares , y es la combinación de Monolithic y Microkernels. Aprovecha la velocidad de los núcleos monolíticos y la modularidad de los micronúcleos.

Un núcleo híbrido puede entenderse como la versión extendida de un micronúcleo con propiedades adicionales de un núcleo monolítico. Estos núcleos se utilizan ampliamente en sistemas operativos comerciales, como diferentes versiones de MS Windows.

Es muy similar a un microkernel, pero también incluye código adicional en el espacio del kernel para mejorar el rendimiento del sistema.

Los kernels híbridos permiten ejecutar algunos servicios como pila de red en el espacio del kernel para reducir el rendimiento en comparación con un microkernel tradicional, pero aún permite ejecutar código del kernel (como controladores de dispositivos) como servidores en el espacio de usuario.

Ejemplos de kernel híbrido son Windows NT, Netware, BeOS, etc.

Ventajas:

  • No es necesario reiniciar para realizar pruebas.
  • La tecnología de terceros se puede integrar rápidamente.

Desventajas:

  • Existe la posibilidad de que haya más errores con más interfaces por las que pasar.
  • Puede resultar una tarea confusa mantener los módulos para algunos administradores, especialmente cuando se trata de problemas como diferencias de símbolos.

4. Nanonúcleo

Como el nombre sugiere, En Nanokernel, el código completo del kernel es muy pequeño, lo que significa que el código que se ejecuta en el modo privilegiado del hardware es muy pequeño. . Aquí el término nano define un núcleo que admite una resolución de reloj de nanosegundos.

número de armstrong

Ejemplos de nanonúcleo son EROS, etc.

Ventajas

  • Proporciona abstracciones de hardware incluso con un tamaño muy pequeño.

Desventajas

  • Nanokernel carece de servicios del sistema.

5. Exokernel

Exokernel todavía está en desarrollo y es el enfoque experimental para diseñar sistemas operativos.

Este tipo de kernel es diferente a otros kernels como en este; La protección de recursos se mantiene separada de la administración, lo que nos permite realizar una personalización específica de la aplicación.

Ventajas:

  • El sistema basado en exokernel puede incorporar múltiples sistemas operativos de biblioteca. Cada biblioteca exporta una API diferente, por ejemplo, una se puede usar para el desarrollo de UI de alto nivel y la otra se puede usar para control en tiempo real. .

Desventajas:

  • El diseño del exokernel es muy complejo.

¿Qué es el pánico del kernel?

Como ya hemos comentado, ese núcleo controla todo el sistema informático; por lo tanto, si falla, puede destruir todo el sistema. En MacOS y Linux, un evento tan indeseable se conoce como ' Panico kernel.' Para recuperarse del Kernel Panic, necesitamos reiniciar el sistema.

Por lo general, estos pánicos del kernel son causados ​​por problemas de comunicación del hardware. Por lo tanto, si se producen repetidos ataques de pánico en el kernel, intente desconectar los dispositivos menos necesarios o innecesarios y compruebe si el problema se resuelve o no.