Linux Çekirdeği Gezgini
(reverser.dev)- 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.Sgibi 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
Öğrenme dosyaları
- Çekirdeğin yapısını anlamak için aşağıdaki dört ana dosya sunulur
init/main.ckernel/fork.cinclude/linux/sched.harch/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
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ı
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
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
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ışıyorFlorent Revest'in çalışmalarını da özellikle takdir ediyorum
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
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
Elixir Bootlin zaten eski ama mobilde daha iyi çalışıyor
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
Aklıma takıldı — kernel kodunun en hayranlık uyandıran kısmı sizce neresi?
Chapter 1'deki
arch/x86/kernel/entry_64.Sdosyası açılmıyorDizin ağacında da görünmüyor
(Bu sorundan bahseden başka bir yorum vardı ama silinmiş gibi görünüyor)
arch/x86/entry/entry_64.Solmalı