¿Cuál es la función principal del núcleo en los sistemas operativos?

Básicamente podemos definir que un Kernel es el componente principal de la mayoría de los sistemas operativos de la computadora. Proporciona una interfaz entre las aplicaciones y el procesamiento de datos real a nivel de hardware.

Kernel es considerado como el corazón de un sistema operativo. Kernel proporciona la capa de abstracción de nivel más bajo para los recursos (especialmente procesadores y dispositivos de E / S) que el software de la aplicación debe controlar para realizar su función. Hace que estas instalaciones estén disponibles para los procesos de aplicación a través del mecanismo de comunicación entre procesos (IPC) y la llamada al sistema.

FUNCIÓN BÁSICA DE KERNEL:

Como hemos visto anteriormente, el núcleo es el motor de cualquier sistema operativo, por lo que todas las funciones vitales deben ser controladas y gestionadas por el núcleo mismo. Hay varias tareas y funciones de un núcleo, pero algunas de las importantes se dan a continuación:

1. Asignación de recursos: la función principal del núcleo es administrar los recursos de la computadora y permitir que otros programas se ejecuten y usen estos recursos. Estos recursos son: CPU, memoria y dispositivos de E / S.

2. Gestión de procesos: un proceso define a qué porciones de memoria puede acceder la aplicación. La tarea principal de un núcleo es permitir la ejecución de aplicaciones y apoyarlas con características como la abstracción de hardware.
Para ejecutar una aplicación, un núcleo primero configura un espacio de direcciones para la aplicación, luego carga el archivo que contiene el código de la aplicación en la memoria, luego configura una pila para el programa y se ramifica en una ubicación dada dentro del programa, y ​​finalmente comienza su ejecución.

3. Administración de memoria: el núcleo tiene acceso completo a la memoria del sistema. Permite que los procesos accedan de manera segura a esta memoria según lo requieran. El direccionamiento virtual ayuda al kernel a crear particiones virtuales de memoria en dos áreas desarticuladas, una está reservada para el kernel (espacio de kernael) y la otra para las aplicaciones (espacio de usuario).

4. Administración de dispositivos de E / S: para realizar funciones útiles, los procesos necesitan acceso a los periféricos conectados a la computadora, que son controlados por el núcleo a través de los Controladores de dispositivos. Un controlador de dispositivo es un programa informático que permite que el sistema operativo interactúe con un dispositivo de hardware. Proporciona al sistema operativo información sobre cómo controlar y comunicarse con una determinada pieza de hardware.
Un kernel mantiene una lista de dispositivos disponibles. Un administrador de dispositivos primero realiza un escaneo en diferentes buses de hardware, como la Interconexión de componentes periféricos (PCI) o el Bus serie universal (USB), para detectar los dispositivos instalados, luego busca los controladores apropiados. El núcleo proporciona la E / S para permitir que los controladores accedan físicamente a sus dispositivos a través de algún puerto o ubicación de memoria.

5. Comunicación entre procesos: Kernel proporciona métodos para la sincronización y comunicación entre procesos llamados comunicación entre procesos (IPC). Hay varios enfoques de IPC, por ejemplo, semáforo, memoria compartida, cola de mensajes, canalización (o con el nombre de fifo), etc.

6. Programación: en un sistema multitarea, el núcleo le dará a cada programa una porción de tiempo y cambiará de un proceso a otro tan rápidamente que al usuario le parecerá que estos procesos se están ejecutando simultáneamente. El kernel utiliza algoritmos de programación para determinar qué proceso se ejecuta a continuación y cuánto tiempo se le dará. El algoritmo establece prioridad entre los procesos.

7. Llamadas del sistema y manejo de interrupciones: una llamada al sistema es un mecanismo que utiliza el programa de aplicación para solicitar un servicio del sistema operativo. Las llamadas al sistema incluyen cerrar, abrir, leer, esperar y escribir. Para acceder a los servicios proporcionados por el núcleo, debemos invocar las funciones relacionadas del núcleo. La mayoría de los núcleos proporcionan una Biblioteca C o una API, que a su vez invoca las funciones relacionadas del núcleo.
Existen pocos métodos por los cuales se puede invocar la función del kernel respectivo, usando la interrupción simulada por software, o usando una llamada de puerta, o usando una instrucción especial de llamada del sistema y usando una cola basada en memoria.

8. Gestión de seguridad o protección: Kernel también brinda protección contra fallas (control de errores) y contra comportamientos maliciosos (seguridad). Un enfoque para esto puede ser el sistema de protección basado en el lenguaje, en el que el núcleo solo permitirá que se ejecute el código producido por un compilador de idiomas confiable.

Para sumar más, puede consultar los tutoriales del MIT.

Kernel proporciona la interfaz entre hardware y aplicaciones;

En términos simples, considere que las aplicaciones y el procesador son de dos países diferentes y necesitan hablar entre ellos … por lo que Kernel aquí actúa como mediador / traductor y hace el trabajo.

Para una comprensión más profunda, consulte Kernel (informática)

Kernel de Linux

Citando Wikipedia http://en.wikipedia.org/wiki/Ker …,

En informática, el núcleo es un programa informático que gestiona las solicitudes de entrada / salida del software y las traduce en instrucciones de procesamiento de datos para la unidad central de procesamiento y otros componentes electrónicos de una computadora. El núcleo es una parte fundamental del sistema operativo de una computadora moderna.

Básicamente le permite a su sistema operativo hablar con el metal desnudo, es decir, el hardware de su sistema.

el núcleo proporciona recursos de hardware para cumplir con los requisitos de software

Virtualización: control de los recursos del sistema para que cada proceso tenga la ilusión de tener el control exclusivo de la computadora