1. EL KERNEL EN LOS SISTEMAS OPERATIVOS
DEFINICION:
El Kernel se encarga de administrar los procesos, la memoria, los dispositivos y
todas las llamadas al propio sistema, siendo el responsable de ejecutar los
programas y decidir cuándo van a ser procesados, asignarles los espacios en
memoria que requieren (aunque también debe decir cuando no haya suficiente).
También está dentro de las competencias del Kernel recibir y atender las peticiones
que los dispositivos envíen, como es el caso del teclado o el mouse y por de igual
manera si un programa específico requiere el acceso a un determinado dispositivo,
por ejemplo la impresora.
El Kernel del sistema es un programa que siempre esta residente en memoria RAM
que atiende llamadas al sistema y otros eventos básicos y brinda los siguientes
servicios:
Controla los recursos básicos.
Controla los dispositivos periféricos (Discos, terminales, impresoras, etc.).
Permite a distintos usuarios compartir recursos y ejecutar sus programas.
Proporciona un sistema de archivos que administra el almacenamiento de
información (Programas, datos, documentos, etc.)
MODO KERNEL Y MODO USUARIO:
El modo Kernel constituye un modo privilegiado de ejecución; en este modo no se
impone ninguna restricción al Kernel del sistema, puede utilizar todas las
instrucciones del procesador, manipular toda la memoria, dialogar con todos los
controladores de dispositivo, etc.
El modo Usuario es el modo de ejecución normal de un proceso; en este modo el
proceso no posee ningún privilegio: ciertas instrucciones están prohibidas, solo
tiene acceso a las zonas de memoria que se le han asignado, y no puede interactuar
con el hardware.
Mas:
Un proceso que se ejecuta en modo usuario no puede acceder directamente a los
recursos de la maquina (hardware), para ello debe de efectuar llamadas al sistema.
Una llamada al sistema es una petición trasmitida por un proceso al Kernel, este
último trata la petición en un modo Kernel con todos los privilegios, y envía los
resultados al proceso que prodigue su ejecución normal.
COMPARACION:
2. Hoy vamos a hablar del Kernel. El Kernel es el primer programa que se lanza cuando
encendemos el PC y sale el logo de Windows. El Kernel sirve para arrancar los
demás programas y no tiene ventanas como el Word. Es difícil imaginar un
programa sin ventanas, pero tenemos que hacer un esfuerzo de abstracción.
Aquellos de nosotros que hemos intentado entender un poco el Linux para poder
comparar, hemos podido ver que allí, el Kernel es el programa que enseña letras
blancas sobre fondo negro en el monitor, y allí muchos programas no tienen
ventanas y ni siquiera enseñan letras blancas (son tan inútiles y dañinos que les
llaman "demonios"), lo que muestra a todas luces la inutilidad de mucho de ese tan
famoso código GPL.
Pues bien, el Kernel de Windows Vista es un microkernel y el de Linux es un Kernel
monolítico. Un microkernel es, como su propio nombre indica, un Kernel pequeño,
y como tiene pocas líneas de código, no se cuelga y todo va más rápido. En un
Kernel monolítico, hay muchas líneas de código que no sirven para nada y todo va
más despacio y se cuelga mucho.
Funciones 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 (tareas) de una máquina.
Gestión del hardware (memoria, procesador, periférico, forma de almacenamiento,
etc.)
Tipos de Kernel
No necesariamente se necesita un núcleo para usar una computadora. Los
programas pueden cargarse y ejecutarse directamente en una computadora
«vacía», siempre que sus autores quieran desarrollarlos sin usar ninguna
abstracción del hardware ni ninguna ayuda del sistema operativo. Ésta era la forma
normal de usar muchas de las primeras computadoras: para usar distintos
programas se tenía que reiniciar y reconfigurar la computadora cada vez.
Con el tiempo, se empezó a dejar en memoria (aún entre distintas ejecuciones)
pequeños programas auxiliares, como el cargador y el depurador, o se cargaban
desde memoria de sólo lectura. A medida que se fueron desarrollando, se
3. convirtieron en los fundamentos de lo que llegarían a ser los primeros núcleos de
sistema operativo.
Hay cuatro grandes tipos de núcleos:
Los núcleos monolíticos facilitan abstracciones del hardware subyacente realmente
potentes y variadas.
El micro nú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 micro nú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.
El Kernel de Linux
En la carpeta / boot también habrá otros archivos muy importante llamado initrd.img-
versión, la versión System.map, y config-version. El archivo initrd es utilizado como
un disco RAM pequeño que extrae y ejecuta el archivo del kernel actual. El archivo
System.map se utiliza para la gestión de la memoria antes de que el kernel
totalmente se cargue, y el archivo de configuración le dice al núcleo qué opciones y
módulos de carga ejecute al inicio.
El Kernel de Windows
Windows es un Sistema Operativo serio, capaz de competir en el mercado con otros
como Unix que ya tienen una posición privilegiada, en cuanto a resultados, debe
tener una serie de características que le permitan ganarse ese lugar.
Modo Kernel: Capa de Abstracción de Hardware (HAL).Conocido por sus siglas en
inglés HAL (Hardware AbstractionLayer) es una interfaz entre el hardware y el resto
del Sistema Operativo, está implementada como una biblioteca de enlace dinámico
(dll) y es responsable de proteger el resto del sistema de las especificaciones del
hardware, tales como controladores de interrupción e interfaces de entrada/salida.
Esta abstracción hace al sistema más portable ya que el resto del sistema no tiene
que preocuparse sobre que plataforma está corriendo.
4. MicroKernel: es el responsable de todas las acciones que se realizan sobre el
sistema y casi todas las funciones del sistema pasan a través de él. El microkernel
está situado en el corazón de Windows, trabaja muy estrechamente con el HAL
(Nivel de Abstracción de Hardware), este planifica la ejecución de hilos y manipula
las interrupciones y excepciones de procesos. El papel de este es mantener a los
procesadores lo más ocupado posible. En sentido general este se encarga de las
funciones más básicas de todo el SO, como son:
Ejecución de subprocesos.
Sincronización multiprocesador.
Manejo de las interrupciones de hardware.