¿Qué es un volcado de núcleos?

Un volcado de memoria es un registro del contenido de la memoria de una computadora cuando ocurrió un error grave. Puede incluir toda la memoria del sistema o solo la parte que estaba utilizando el programa que falló. También puede incluir otros datos relevantes como el estado del procesador, el contenido del registro y la información sobre los procesos en ejecución. Los ingenieros de software utilizan con frecuencia volcados de núcleo con depuradores y otras utilidades para analizar y corregir errores informáticos. Un volcado de núcleo también se puede utilizar para transferir un proceso de trabajo de un procesador a otro durante el funcionamiento normal.

El término «volcado de núcleo» probablemente se originó en la década de 1960 cuando las primeras computadoras usaban memoria de núcleo magnético. Cuando un programa en ejecución fallaba, todos los datos de todo el núcleo se imprimían en papel para ayudar con la depuración. Estas impresiones generalmente consistían en poco más que direcciones de memoria y datos en notación octal o hexadecimal. A medida que mejoraban las tecnologías de almacenamiento, los volcados de núcleo se podían guardar en un disco, cinta magnética extraíble o tarjetas de memoria no volátiles. La mayor capacidad de almacenamiento de información de estado junto con los avances en la depuración de software han hecho que el diagnóstico de errores sea más eficiente.

Las causas típicas de los volcados de memoria son aplicaciones o software del sistema mal escritos. Muy a menudo, el código del programa asume que los punteros y los índices de matriz siempre hacen referencia a estructuras de datos válidas. Si alguno de estos se ha movido más allá de los límites de sus estructuras originales, por ejemplo, puede ocurrir un volcado de núcleo. Los problemas para acceder a los archivos de datos en un dispositivo de almacenamiento o la lectura de datos dañados también pueden causar un volcado de memoria. Los problemas de hardware, incluida la memoria defectuosa, los discos duros o los procesadores, también pueden desencadenarlos.

Generalmente, existen dos tipos de volcados de memoria. Un tipo es donde se termina el proceso en ejecución o el programa de aplicación y el control vuelve al sistema operativo. En este caso, el resto del sistema sigue funcionando normalmente, ya que solo se detuvo el programa infractor. Por lo general, se genera un archivo de volcado de núcleo grande que luego se puede cargar en un depurador. Si el error se produjo en un programa para el que están disponibles los símbolos y el código fuente, estos también se pueden cargar en el depurador.

El otro tipo más serio de volcado de núcleo también se llama pánico de kernel. Este tipo de volcado detiene todo el sistema en seco para evitar más complicaciones y corrupción de datos. En los sistemas Microsoft Windows®, este tipo de volcado generalmente ocurre en la forma demasiado familiar de una «pantalla azul de la muerte». Los pánicos como estos suelen ser más difíciles de depurar y a menudo son causados ​​por problemas de hardware o de nivel del sistema. Esto puede suceder antes de que el sistema haya terminado de iniciarse cuando hay poca información disponible sobre la causa real.