Linux-kernen er et komplekst stykke engineering. Fra opstart til runlevel 5 multi-user-tilstand initialiserer og styrer Linux-kernen en pc's ressourcer, herunder processoren, hukommelsen, netværket, videoudgangen og det lokale lager. Da kernen arbejder sammen med alle disse forskellige delsystemer og ressourcer, logger den forskellige højt niveau meddelelser for at lade systemadministratorer vide, hvad det gør. Disse meddelelser kan ses ved hjælp af kommandoen " dmesg ". Problemet er, at udgangen fra kernen kan virke kompleks og uforståelig for det uuddannede øje. Men med en lille hjælp til at forstå det grundlæggende, kan kommandoen " dmesg " blive et meget kraftfuldt værktøj i et systemadministrators værktøjssæt.

Støvle

Den hurtigste måde at lære om kernel meddelelser er at undersøge de første par linjer fra opstartsprocessen. For at se den første side af output, brug følgende kommando:

 dmesg | mindre 

De første tre linjer er sandsynligvis om initialiseringen af ​​"Control Groups" til processoren. Disse er ikke så interessante, medmindre du er en kernel hacker. Men den næste linje er meget vigtig. Det vil fortælle dig, hvilken version af Linux kerne du kører.

Udgangen på min testmaskine lyder:

 Linux version 3.13.0-24-generisk (buildd @ roseapple) (gcc version 4.8.2 (Ubuntu 4.8.2-19ubuntu1)) # 46-Ubuntu SMP Tors Apr 10 19:08:14 UTC 2014 (Ubuntu 3.13.0- 24, 46-generisk 3, 13, 9) 

Hvad dette fortæller mig, er, at min testmaskine kører Linux-kerne 3.13, som blev udarbejdet af Ubuntu den 10. april 2014.

De næste 80 til 100 linjer er alle lavniveau detaljer om BIOS, CPU'en og hukommelsen. Den næste vigtige linje er resuméet af systemhukommelsen. Det begynder altid med "Memory:". På min testmaskine er udgangen:

 Hukommelse: 1525720K / 1572408K tilgængelig (6507K kernekode, 641K rwdata, 2752K rodata, 872K init, 924K bss, 46688K reserveret, 659400K højttaler) 

Tallet efter skråstreg er den samlede mængde systemhukommelse tilgængelig for Linux-kernen, i dette tilfælde 1, 5 GB. På dette tidspunkt er Linux næsten færdig med at kigge på processoren og hukommelsen, og det vil snart vise sin opmærksomhed til resten af ​​maskinen, herunder videoen, USB-portene, harddiskene og så videre.

Hardware afsløring

Kernel output er også en fantastisk måde at opdage, hvordan Linux interagerer med hardwaren på din pc. For at opdage, hvilke harddiske kernen genkender, kan du søge gennem meddelelserne for søgeordet "sda". For at gøre dette skal du bruge " grep " som denne:

 dmesg | grep sda 

"Sda" er navnet på den første SATA-harddisk, "sdb" er den anden SATA-harddisk og så videre. Hvis du ikke finder dine diske under "sda", "sdb" etc., så prøv "hda", "hdb" og så videre.

For at få oplysninger om netværkskortet skal du søge efter "eth0", for eksempel:

 dmesg | grep eth0 

På min testmaskine viser en af ​​linjerne af "eth0" -relateret output:

 e1000 0000: 00: 03.0 eth0: Intel (R) PRO / 1000 Netværksforbindelse 

Dette fortæller mig, at mit Ethernet-kort er en Intel PRO / 1000 (kendt som en e1000).

Hvis du indsætter et USB-flashdrev, og du vil kontrollere, om det er blevet genkendt af kernen, og hvilket enhedsnavn det er blevet tildelt, kan du se de sidste par kernel-meddelelser ved hjælp af tail :

 dmesg | hale -20 

-20 fortæller tail at vise de sidste 20 produktionslinjer fra dmesg. Eksempeludgangen viser, at et flashdrev fra ADATA blev indsat i USB-porten, det har en kapacitet på 8 GB, og at den er blevet tildelt enhedsnavnet sdd .

dmesg kan være et meget nyttigt værktøj til systemadministratorer. Prøv det og se, hvad du kan lære om dit system. Hvis du har spørgsmål, så spørg dem i kommentarfeltet, og vi vil se, om vi kan hjælpe.