CodeBlanks Logo Icon CodeBlanks

dmesg ve loglar

dmesg ile çekirdek loglarını öğrenirsin.

dmesg ve çekirdek logları

dmesg komutu çekirdek ileti arabelleğini okur ve ekrana basar. Açılıştan bu yana donanım bulma, sürücü yükleme ve hata iletileri burada birikir.

Çekirdek printk fonksiyonuyla log yazar; her ileti bir öncelik seviyesiyle etiketlenir. KERN_EMERG en yüksek, KERN_DEBUG en düşüktür. Kullanıcı alanı syslog ve /var/log dosyalarıyla benzer kayıt tutar. Loglar hem hata ayıklama hem denetim için kritiktir; dmesg -T ile zaman damgalı görünür.

Öncelik seviyeleri ve filtreleme

Çekirdek logları sekiz seviyelidir: KERN_EMERG (0) en yüksek, KERN_DEBUG (7) en düşüktür. Arabellek boyu sınırlıdır; yeni iletiler eskileri iter.

dmesg --level=err ile yalnızca hataları filtreleyebilirsin. printk çağrısında önek seviyeyi belirler: printk(KERN_ERR "hata\n"). Sürücüler hangi seviyede yazacağını dikkatle seçer; çok gürültülü log arabelleği boşaltır. console_loglevel hangi seviyenin konsola yazılacağını denetler.

Uygulama Log seviyelerini yazdır

void print_level(const char *name, int level) fonksiyonunu tanımla; gövdesi printf("[%d] %s\n", level, name); olsun. main içinde bunu ("KERN_EMERG", 0), ("KERN_ALERT", 1), ("KERN_ERR", 3), ("KERN_INFO", 6) ile çağır.

Başlangıç kodu

main.c
#include <stdio.h>

// print_level fonksiyonunu tanımla
// KERN_EMERG, KERN_ALERT, KERN_ERR, KERN_INFO için çağır

int main(void) {
    return 0;
}

Örnek çözüm

main.c
#include <stdio.h>

void print_level(const char *name, int level) {
    printf("[%d] %s\n", level, name);
}

int main(void) {
    print_level("KERN_EMERG", 0);
    print_level("KERN_ALERT", 1);
    print_level("KERN_ERR", 3);
    print_level("KERN_INFO", 6);
    return 0;
}

Beklenen çıktı

[0] KERN_EMERG
[1] KERN_ALERT
[3] KERN_ERR
[6] KERN_INFO

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Çekirdek loglarını hangi komut gösterir?

  • dmesg Doğru cevap
  • lsmod
  • ps
  • top

Açıklama: dmesg çekirdek ileti arabelleğini okur.

2 Log seviyelerini eşle

Kavram Anlamı
KERN_EMERG Sistem çöküşü
KERN_ALERT Hemen müdahale
KERN_ERR Hata durumu
KERN_INFO Bilgi iletisi

3 printk seviye önekini tamamla

Soru
printk(KERN_____ "sürücü yüklendi
");
Cevap
printk(KERN_INFO "sürücü yüklendi
");

Açıklama: KERN_INFO bilgi amaçlı iletileri etiketler.

Uzman bölümündeki tüm dersler