Kernel
El núcleo o kernel es la parte central de un sistema operativo y es el que se encarga de
realizar toda la comunicación segura entre el software y el hardware del ordenador. El
núcleo kernel es la parte más importante del sistema operativo Unix y sus derivados,
como Linux y todas las distribuciones que dependen de él.
Es el principal responsable de facilitar a los distintos programas acceso seguro al
hardware de la computadora o en forma básica, es el encargado de gestionar recursos, a
través de servicios de llamada al sistema. Como hay muchos programas y el acceso al
hardware es limitado, también se encarga de decidir qué programa podrá usar un
dispositivo de hardware y durante cuánto tiempo, lo que se conoce como
multiprogramación. Acceder al hardware directamente puede ser realmente complejo,
por lo que los núcleos suelen implementar una serie de abstracciones del hardware. Esto
permite esconder la complejidad, y proporcionar una interfaz limpia y uniforme al
hardware subyacente, lo que facilita su uso al programador.
Sus funciones principales son:
La gestión de memoria.
La administración del sistema de archivos.
La administración de servicios de entrada/salida.
La asignación de recursos entre los usuarios.
Hay cuatro grandes tipos de núcleos:
Núcleos Monolíticos: Facilitan abstracciones del hardware subyacente
realmente potentes y variadas.
Micronúcleos (microkernel): Proporcionan un pequeño conjunto de
abstracciones simples del hardware, y usan las aplicaciones llamadas servidores
para ofrecer mayor funcionalidad.
Núcleos Híbridos (micronúcleos modificados): Son muy parecidos a los
micronúcleos puros, excepto porque incluyen código adicional en el espacio de
núcleo para que se ejecute más rápidamente.
Exonúcleos: No facilitan ninguna abstracción, pero permiten el uso de
bibliotecas que proporcionan mayor funcionalidad gracias al acceso directo o
casi directo al hardware.
El Shell o intérprete de órdenes: Son aplicaciones capaces de interpretar las órdenes
del usuario a través de comandos escritos, como por ejemplo el sistema MS-DOS o los
terminales de consola de los sistemas operativos Linux. Estas aplicaciones permiten al
usuario interactuar con el ordenador, normalmente a través de una sencilla interfaz de
texto plano, y suponen la forma más básica de interacción de un usuario con su
ordenador, escribiendo las órdenes en este Shell a través de comandos y recogiendo las
respuestas de la máquina.