lunes, 7 de octubre de 2013

Kernel

Kernel
De la raíz germánica Kern, núcleo, hueso, 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 del ordenador 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á 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.

http://codinghorror.typepad.com/.a/6a0120a85dcdae970b0120a86db3ea970b-pi

Kernel panic
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érm
ino 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.
Las rutinas de kernel que controlan los kernel panics son generalmente diseñadas para lanzar un mensaje de error en la consola, volcar la imagen del kernel desde la memoria al disco duro (para luego poder depurarlo
) y esperar a que el sistema se reinicie (manual o automáticamente).
La información en el mensaje de error es altamente técnica, pudiendo
ser solo interpretada por entendidos en la materia.
En ocasiones, el sistema operativo puede seguir operando, pero probablemente se encuentra en un estado inestable.
El kernel panic fue introducido en las primeras versiones de Unix.

Posibles causas

Intentos del sistema operativo para leer una dirección de memoria inválida o no permitida son una fuente común de kernel panics. El error también puede ocurrir como resultado de un fallo de hardware.
Es probable también que se presente si falta algún módulo que deba ir pegado al kernel dependiendo del hardware con el que se cuente.
Un kernel panic puede ser producto de una explotación de una vulnerabilidad en algún módulo del núcleo de forma malintencionada, logrando corromper la integridad del sistema.

1. Un módulo de memoria RAM en mal estado, incompatible o defectuoso, es la causa más frecuente.
2. Drivers y/o extensiones de kernel incompatibles o corruptos.
3. Hardware incompatible. No es extraño que algún elemento de hardware de otros fabricantes, generlalmente los periféricos (impresoras, esáneres, ratones...), no respondan bien al kernel o a alguna de sus extensiones.
4. Hardware o software mal instalado o en mal estado, que pueden dar lugar a fallos de hardware o errores de programas resultando en kernel panics.
5. Un disco duro en mal estado, directorio corrupto, etc.
Mas raramente, permisos incorrectos del sistema.
6. Poco espacio en el disco duro o una memoria RAM insuficiente.

SOLUCIONES ANTE DIFERENTES CASOS

-Forzar reinicio tras un kernel panic 

Existe un archivo de configuración del sistema, sysctl.conf, situado en etc/; en el que aparecen multitud de parámetros con los que podemos configurar nuestro equipo. Para el caso que nos ocupa, debemos editar dicho archivo para especificar el tiempo que tardará el sistema en forzar el reinicio. Una de las maneras de conseguirlo temporalmente puede ser escribiendo en la consola:

# echo "n" > /proc/sys/kernel/panic
Para comprobar que ha sido guardado el cambio, y que no está establecido su valor inicial (0, que lo desactiva), utilizamos:
# cat /proc/sys/kernel/panic
n
Donde n corresponde a el número de segundos que han de pasar antes de que el sistema se reinicie.
Para hacer este cambio permanente debemos configurar el archivo antes citado, /etc/sysctl.conf, en el que añadiremos la siguiente línea: kernel.panic=n. Para indicar que, de nuevo, han de pasar n segundos antes de que se reinicie el sistema. Como siempre, lo podemos hacer de varias maneras:

1- Modificarlo en una sola línea de código:

1.1 # echo "kernel.panic=5" >> /etc/sysctl.conf
1.2
# /sbin/sysctl -w kernel.panic=n

2- Editarlo manualmente:

# vi | nano /etc/sysctl.conf
Añadir:
kernel.panic=n

No hay comentarios:

Publicar un comentario