EL KERNEL ó núcleo, es un software
que constituye una parte fundamental del
sistema operativo. Es el principal
responsable de facilitar a los distintos
programas acceso seguro al hardware de
la computadora el es el encargado de
gestionar recursos, a través de servicios
de llamada al sistema, también se
encarga de decidir qué programa podrá
hacer uso de un dispositivo de hardware
y durante cuánto tiempo, lo que se
conoce como multiplexado. 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
proporciona una interfaz limpia y
uniforme al hardware subyacente, lo que
facilita su uso al programador.
FUNCINONES DEL KERNEL
• Administración de la memoria
para todos los programas y
procesos en ejecución.
• Administración del tiempo de
procesador que los programas y
procesos en ejecución utilizan. • La
comunicación entre los programas
que solicitan recursos y el
hardware. • Gestión de los distintos
programas informáticos de una
máquina. • Gestión del hardware.
TIPOS DE KERNEL
Hay cuatro grandes tipos de núcleos: • Los
núcleos monolíticos facilitan abstracciones
del hardware subyacente realmente potentes y
variadas. • Los micronúcleos: proporcionan un
pequeño conjunto de abstracciones simples
del hardware, y usan las aplicaciones
llamadas servidores para ofrecer mayor
funcionalidad. • Los núcleos híbridos: 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. • Los 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.
VERSIONES DE KERNEL
Versión de producción: Era la versión
estable del momento y la que se debía
de utilizar, ya que, esta versión era el
resultado final de las versiones que
estaban en desarrollo. Versión de
desarrollo: Era la versión que estaba en
desarrollo y la que los programadores
utilizaban para corregir bugs. Esta
versión era muy inestable. Las últimas
versiones de los diferentes Kernel:
-Ultima versión estable del Kernel 2.6.25
-Ultima versión estable de la serie 2.4:
2.4.36-2 -Ultima versión estable de la
serie 2.2: 2.2.26
PROS Y CONTRAS DE KERNEL
PROS Sin módulos cargables del núcleo,
un sistema operativo tendría que incluir
toda la posible funcionalidad esperada ya
compilada directamente en el núcleo
base. Gran parte de la funcionalidad que
podría residir en la memoria sin ser
utilizado, perdiendo la memoria, y
requeriría que los usuarios reconstruir y
reiniciar el núcleo de base cada vez que
requieren una nueva funcionalidad. La
mayoría de los sistemas operativos de
apoyo a los módulos del Kernel cargables
incluirán módulos de apoyo a la
funcionalidad más deseada. CONTRAS
Una pequeña crítica de preferir un Kernel
modular sobre un Kernel estático es el
llamado Pena fragmentación. El Kernel de
base siempre se descomprime en
memoria contigua real por sus rutinas de
instalación, de modo que, el código del
núcleo de base no está fragmentado. Una
vez que el sistema está en un estado en el
que se pueden insertar.
DONDE SE ALMACENAN DENTRO DEL SISTEMA OPERATIVO LOS ARCHIVOS DEL KERNEL
El Kernel de Linux en una
posición conocida del disco,
carga el Kernel en memoria y le
cede el control. El Kernel se
almacena comprimido en disco,
por lo que lo primero que hace el
código del Kernel que se ejecuta
inicialmente es descomprimir el
propio Kernel y situarlo en
memoria. Entonces se ejecuta
realmente el Kernel y empieza una
lista de comprobaciones y
activación de módulos internos
del mismo.
ARQUITECTURA DEL KERNEL LINUX
Debido a que el Kernel de Linux es
monolítico, tiene más complejidad
que en los otros tipos de Kernel. Esta
fue una característica de diseño que
estaba bajo un poco de debate en los
primeros días de Linux y aún tiene
algunos de los defectos de diseño
que los núcleos monolíticos son
inherentes a tener. Una cosa que los
desarrolladores del Kernel de Linux
hicieron para conseguir solucionar
estas fallas es hacer módulos del
Kernel que pueden ser cargados y
descargados en tiempo de ejecución,
lo que significa que puede agregar o
quitar características de su núcleo en
el momento. Esto puede ir más allá de
la adición de la funcionalidad de
hardware para el núcleo, mediante la
inclusión de módulos que ejecutan
los procesos del servidor, como la
vitalización de bajo nivel, pero también
puede permitir que el núcleo pueda
ser del todo reemplazado sin
necesidad de reiniciar el equipo en
algunos casos.
MODULOS DEL KERNEL
Los módulos del Kernel, también
conocido como un módulo del Kernel
cargables (LKM), son esenciales para
mantener el funcionamiento del núcleo
con todo el hardware sin consumir toda
la memoria disponible. Un módulo
generalmente, aumenta la funcionalidad
del núcleo de base para cosas como
los dispositivos, sistemas de archivos y
las llamadas al sistema. LKMs tienen la
extensión .Ko y normalmente se
almacenan en el directorio /lib/
modules. Debido a su carácter modular,
usted puede personalizar fácilmente su
núcleo mediante el establecimiento de
módulos de carga, o no, durante el
arranque con el comando menuconfig o
editando el archivo /boot /config, o usted
puede cargar y descargar los módulos
sobre la marcha con el comando
modprobe. Los módulos de terceros y de
código cerrado están disponibles en
algunas distribuciones, como Ubuntu, y
no puede ser instalado de forma
predeterminada porque el código fuente
de los módulos no está disponible.