10 puan yazan GN⁺ 2025-11-28 | 1 yorum | WhatsApp'ta paylaş
  • Linux çekirdeği, tek bir süreç değil, tüm sistemi oluşturan çekirdek katmandır; donanım ile yazılımı birbirine bağlayan sürekli mevcut bir yapıdır
  • Kullanıcı süreçleri için sistem çağrılarını, kesmeleri ve zamanlamayı koordine ederek yürütmeyi sürdürür
  • Çekirdek, sanallaştırılmış, eşlenmiş, yalıtılmış ve denetlenen çok katmanlı bir yapı olarak çalışır
  • Öğrenme amaçlı olarak init/main.c, kernel/fork.c, include/linux/sched.h, arch/x86/kernel/entry_64.S gibi temel kaynak dosyaları sunulur
  • Çekirdeğin yapısını ve rolünü anlamak için önemli bir temel öğrenme kaynağıdır

Çekirdeğin özü

  • Çekirdek, bir süreç değil sistemin kendisidir; donanım ile yazılımı bağlayan sürekli mevcut ve otoriter bir katmandır
    • Kullanıcı süreçlerinin çalışmasını destekler ve sistem kaynaklarını yönetmede merkezi bir rol üstlenir
  • Çekirdek, süreçlere hizmet veren bileşen olarak sistem çağrılarını (syscall), kesmeleri ve zamanlamayı koordine ederek kullanıcı işlerini sürdürür

Sistemin katmanlı yapısı

  • Çekirdek, sanallaştırılmış, eşlenmiş, yalıtılmış ve denetlenen bir kontrol yapısından oluşur
    • Çalışma zamanında birden çok katman etkileşime girerek sistem kararlılığını ve denetimini korur
    Reklam

Öğrenme dosyaları

  • Çekirdeğin yapısını anlamak için aşağıdaki dört ana dosya sunulur
    • init/main.c
    • kernel/fork.c
    • include/linux/sched.h
    • arch/x86/kernel/entry_64.S

Kavram kontrol soruları

  • Çekirdek ile süreç arasındaki temel fark: B. Çekirdek bir süreç değil, sistemin kendisidir
  • Çekirdeğin kullanıcı süreçlerini destekleme biçimi: B. Sistem çağrılarını, kesmeleri ve zamanlamayı koordine eder
  • Çekirdeğin katmanlı özelliği: C. Sanallaştırılmış, eşlenmiş, yalıtılmış ve denetlenen yapı

1 yorum

 
GN⁺ 2025-11-28
Hacker News görüşleri
  • Gerçekten harika bir proje. Talmud sayfa düzenini hatırlatıyor — yüzyıllar boyunca birikmiş yorumların tek bir sayfada katman katman üst üste durduğu yapı çok ilginçti
    Kod o kadar doğrusal değil tabii ama bu Linux Kernel Explorer'da da benzer bir “yorum katmanları” hissi var
    Özellikle yandaki not biçimini çok beğendim
    İlgili bağlantılar: Talmud sayfa düzeni, Talmud düzeni notları

    • Talmud, bir bakıma orijinal hiper metin gibi (emin değilim ama öyle hissettiriyor)
  • Sanırım bir şeyi kaçırıyorum. Kernel kaynak kodu zaten çok uzun zamandır web üzerinden gezilebiliyordu — mesela Elixir Bootlin gibi siteler var
    Ama bunun hangi ek işlevleri sunduğunu anlayamadım. Bootlin'de arama da var, burada görünmüyor
    Günümüzde olsa LLM tabanlı kod açıklamaları ya da bağımlılık grafiği gibi şeyler beklerdim

    • “Yapay zeka çağının altın dönemi!” diye umutlanmıştım ama pratikte biraz mevcut özelliklerin yeni bir web framework ile paketlenmiş yapay zeka remiksi gibi kalmış
  • GitHub API rate limit'ine takıldığı için dosya listesi görünmüyor
    Aynı sorunu yaşayanlar VPN ya da Cloudflare Wrap ile IP değiştirirse çözülüyor
    Geliştirici, GitHub ile giriş seçeneği ya da bir cache katmanı eklerse yeni kullanıcıların erişmesi daha kolay olabilir

    • Sorunu bildirdiğim için teşekkür eden bir yanıt aldım. Uygulamanın ne kadar basit kurulduğunu fark edip iyileştireceğini söylemiş
  • Bu tarz araçları gerçekten seviyorum. Geçmişte Red Hat'in yaptığı benzer bir araçla Brezilya elektronik oy verme makinesi kaynak kodunu analiz ettiğimi hatırlıyorum
    O dönemde yinelenen dosyaları ve işlevleri düzenleme işi bende idi, araç da Motif UI tabanlı bir masaüstü uygulamasıydı

  • Bu fikri gerçekten çok sevdim. Karmaşık proje kodlarını incelerken nereden başlayacağımı bilemiyordum, bu araç ise temel yapıyı hızlıca kavramayı sağlıyor
    Yalnız bir hata buldum — Chapter 2'de mm/ gibi dizinleri açınca “Invalid file response” hatası veriyor. Muhtemelen dizini dosya gibi açmaya çalışıyor

  • Bu Explorer, birçok geliştiricinin gerçekten ihtiyaç duyduğu bir araç gibi görünüyor
    Kernel kaynak kodu devasa ve karmaşık; nereden başlanacağını bilmek zordu, bu ise yapıyı bir tür harita gibi gösteriyor
    VFS'yi ya da modüllerin nasıl bağlandığını da tek bakışta görmek mümkün; API sınırı veya dizin hataları gibi sorunları olsa da harika bir ilk adım

    • Bana eski LXR'yi hatırlattı.
      Ben Linux ile çalışmaya başladığımda bana çok yardımcı olmuştu; sonrasında Python ile yeniden yazılan Elixir ve kaynak kodu da var
    • Ama “master'ı pull edemiyorsam, grep ya da gmake kullanamıyorsam bunun ne faydası var?” diye soranlar da olmuş
  • Elixir Bootlin zaten eski ama mobilde daha iyi çalışıyor

    • Mobil uyumluluk geri bildirimi için teşekkür eden bir yanıt verilmiş ve iyileştirileceği söylenmiş
    • Elixir etiket gezintisini desteklediği için dosya bazlı değil, kod tabanının tamamında gezinmek açısından daha uygun
  • Gerçekten çok iyi görünüyor. Yazarı fabiomaia.eu imiş
    Benzer bir aracın Python için yapılmasını isteyeceğim
    Yeni mühendislere CPython deposunun yapısını öğretirken faydalı olabilir

    • “Bunu kendin yapmayı neden denemiyorsun?” diyenler de olmuş. Açık kaynakta hızlı uygulama ve issue'lara yanıt beklemek oldukça yaygın
  • Aklıma takıldı — kernel kodunun en hayranlık uyandıran kısmı sizce neresi?

    • Muhtemelen fs/select.c ya da polling mekanizması kısmı
  • Chapter 1'deki arch/x86/kernel/entry_64.S dosyası açılmıyor
    Dizin ağacında da görünmüyor
    (Bu sorundan bahseden başka bir yorum vardı ama silinmiş gibi görünüyor)

    • Muhtemelen yol yazım hatası var. Aslında arch/x86/entry/entry_64.S olmalı