lunes, 6 de octubre de 2014

PANIC! KERNEL

En esta entrada voy a hablar sobre el kernel o núcleo de un Sistema Operativo, del alemán kern, que significa núcleo o hueso.

Según yo he entendido, a grandes rasgos es un software que se ejecuta en modo privilegiado y que se encarga de facilitar la comunicación con el hardware del sistema mediante la gestión de interrupciones.




Existen varios tipos de núcleos para los distintos sistemas operativos:

  • Kernel modular (GNU/Linux). Se centran en las funcionalidades esenciales como la administración de memoria, la planificación de procesos, etc. En otros sistemas operativos lo que se hace es utilizar drivers. En Linux se creó una interfaz adecuada que posibilitara el desarrollo de módulos que hicieran de drivers. Estos se pueden compilar por separado y pueden añadirse al kernel en el tiempo de ejecución.
  • Kernel monolítico (Unix/Linux/FreeBSD). Se trata de un programa de gran tamaño que debe ser recompilado al completo cada vez que quiera añadirse una nueva posibilidad. Está programado de forma no modular, y su rendimiento es mayor que un micronúcleo, aunque cualquier cambio a realizar en cualquier servicio requeriría la recompilación del núcleo y el reinicio del sistema para aplicar los nuevos cambios.
  • Microkernel (Windows). Proporcionan un pequeño conjunto de abstracciones simples del hardware y usan las aplicaciones llamadas "servidores" para ofrecer una mayor funcionalidad. Todos los servicios, que en general son provistos por el núcleo, se ejecutan como procesos servidores en espacios de usuario.
  • Hurd (GNU). GNU Hurd es un conjunto de programas servidores que simulan un núcleo Unix que establece la base del sistema operativo GNU. Consiste en múltiples servidores ejecutándose simultáneamente. En lugar de un sólo programa, en Hurd cada una de las tareas es gestionada por un servidor independiente.


En cuanto a sus funciones, estas son a grandes rasgos las más significativas

  • 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.)

KERNEL PANIC

¿Qué es un kernel panic? Es un acción tomada por un sistema operativo al detectar un error fatal interno del que no puede recuperarse. El término es empleado especialmente en sistemas Unix; para Windows su equivalente coloquial es pantalla azul de la muerte. El kernel panic también aparece en los sistemas Mac OS X.

¿Qué puede causar un kernel panic? Una de las causas más comunes de este error fatal es cuando el sistema operativo intenta leer una dirección de memoria inválida o no permitida. Los fallos importantes en el hardware y los bugs en el sistema operativo también son causantes de este fallo.

¿Cómo arreglar un kernel panic?

REFERENCIAS


Wikipedia: Núcleo (Informática)

Ecured: Kernel

EsScribd: Tipos de Kernel

Alegsa: Kernel Panic

No hay comentarios:

Publicar un comentario