El kernel de Linux es una pieza compleja de ingeniería. Desde el arranque hasta el modo multiusuario de nivel de ejecución 5, el kernel de Linux inicializa y administra los recursos de una PC, incluidos el procesador, la memoria, la red, la salida de video y el almacenamiento local. Como el núcleo funciona con todos estos subsistemas y recursos diferentes, registra varios mensajes de alto nivel para que los administradores del sistema sepan lo que está haciendo. Estos mensajes se pueden ver usando el botón “dmesg
» dominio. El problema es que la salida del kernel puede parecer compleja e ininteligible para el ojo inexperto. Sin embargo, con un poco de ayuda para entender los conceptos básicos, el “dmesg
El comando ” puede convertirse en una herramienta muy poderosa en el conjunto de herramientas de un administrador de sistemas.
Bota
La forma más rápida de conocer los mensajes del núcleo es examinar las primeras líneas del proceso de arranque. Para ver la primera página de salida, use el siguiente comando:
Las primeras tres líneas son probablemente sobre la inicialización de los «Grupos de control» para el procesador. Estos no son tan interesantes a menos que seas un hacker del kernel. Sin embargo, la siguiente línea es muy importante. Le dirá qué versión del kernel de Linux está ejecutando.
La salida en mi máquina de prueba dice:
Linux version 3.13.0-24-generic (buildd@roseapple) (gcc version 4.8.2 (Ubuntu 4.8.2-19ubuntu1) ) #46-Ubuntu SMP Thu Apr 10 19:08:14 UTC 2014 (Ubuntu 3.13.0-24.46-generic 3.13.9)
Lo que esto me dice es que mi máquina de prueba ejecuta Linux kernel 3.13, que fue compilado por Ubuntu el 10 de abril de 2014.
Las siguientes 80 a 100 líneas son todos detalles de bajo nivel sobre el BIOS, la CPU y la memoria. La siguiente línea importante es el resumen de la memoria del sistema. Siempre comienza con «Memoria:». En mi máquina de prueba, la salida es:
Memory: 1525720K/1572408K available (6507K kernel code, 641K rwdata, 2752K rodata, 872K init, 924K bss, 46688K reserved, 659400K highmem)
El número después de la barra inclinada es la cantidad total de memoria del sistema accesible para el kernel de Linux, en este caso, 1,5 GB. En este punto, Linux casi ha terminado de analizar el procesador y la memoria, y pronto centrará su atención en el resto de la máquina, incluido el video, los puertos USB, los discos duros, etc.
Detección de hardware
La salida del kernel también es una excelente manera de descubrir cómo interactúa Linux con el hardware de su PC. Por ejemplo, para descubrir qué discos duros reconoce el kernel, puede buscar en los mensajes la palabra clave «sda». Para hacer esto, use “grep
» como esto:
“sda” es el nombre que se le da al primer disco duro SATA, “sdb” es el segundo disco duro SATA y así sucesivamente. Si no encuentra sus discos en «sda», «sdb», etc., pruebe con «hda», «hdb», etc.
Para obtener información sobre la tarjeta de red, busque «eth0», por ejemplo:
En mi máquina de prueba, una de las líneas de salida relacionada con «eth0» muestra:
e1000 0000:00:03.0 eth0: Intel(R) PRO/1000 Network Connection
Esto me dice que mi tarjeta Ethernet es una Intel PRO/1000 (conocida como e1000).
Si inserta una unidad flash USB y desea verificar si el núcleo la ha reconocido y qué nombre de dispositivo se le ha asignado, puede ver los últimos mensajes del núcleo usando tail
:
los -20
dice tail
para mostrar las últimas 20 líneas de salida de dmesg. El resultado del ejemplo muestra que se insertó una unidad flash fabricada por ADATA en el puerto USB, tiene una capacidad de 8 GB y se le ha asignado el nombre de dispositivo de sdd
.
dmesg
puede ser una herramienta muy útil para los administradores de sistemas. Pruébelo y vea lo que puede aprender sobre su sistema. Si tiene alguna pregunta, hágala en la sección de comentarios y veremos si podemos ayudarlo.