Linux çekirdeği (Linux kernel) Nedir?

Linux® çekirdeği, bir Linux işletim sisteminin ana bileşenidir ve bir bilgisayarın donanımı ile süreçleri arasındaki temel arabirimdir. Kaynakları mümkün olduğunca verimli bir şekilde yöneterek 2 arasında iletişim kurar.

Çekirdeğe böyle bir isim verilmiştir çünkü -sert bir kabuğun içindeki bir tohum gibi- işletim sistemi içinde bulunur ve telefon, dizüstü bilgisayar, sunucu veya başka herhangi bir bilgisayar türü olsun, donanımın tüm ana işlevlerini kontrol eder.

çekirdek ne işe yarar

Çekirdeğin 4 işi vardır:

  1. Bellek yönetimi:  Neyi ve nerede depolamak için ne kadar bellek kullanıldığını takip edin
  2. Süreç yönetimi:  Merkezi işlem birimini (CPU) hangi süreçlerin, ne zaman ve ne kadar süreyle kullanabileceğini belirleyin.
  3. Aygıt sürücüleri:  Donanım ve süreçler arasında aracı/yorumlayıcı olarak hareket edin
  4. Sistem çağrıları ve güvenlik:  Süreçlerden hizmet taleplerinin alınması

Çekirdek, düzgün bir şekilde uygulanırsa, kullanıcı tarafından görülmez, çekirdek alanı olarak bilinen kendi küçük dünyasında çalışır, burada bellek ayırır ve her şeyin nerede depolandığını takip eder. Kullanıcının gördüğü - web tarayıcıları ve dosyalar gibi - kullanıcı alanı olarak bilinir. Bu uygulamalar, bir sistem çağrı arabirimi (SCI) aracılığıyla çekirdekle etkileşime girer.

Şöyle düşünün:  Çekirdek, güçlü bir yöneticinin (donanım) meşgul bir kişisel asistanıdır. Çalışanlardan ve halktan (kullanıcılar) gelen mesajları ve istekleri (süreçleri) yöneticiye iletmek, neyin nerede depolandığını (bellek) hatırlamak ve herhangi bir zamanda ve nasıl yöneticiye kimin erişebileceğini belirlemek asistanın görevidir. 

Çekirdeğin işletim sistemine sığdığı yer

Çekirdeği bağlama koymak için, bir Linux makinesini 3 katmana sahip olarak düşünebilirsiniz:

  1. Donanım: Fiziksel makine—bellek (RAM) ve işlemci veya merkezi işlem biriminden (CPU) oluşan sistemin alt kısmı veya tabanı ile depolama, ağ iletişimi gibi giriş/çıkış (G/Ç) aygıtları , ve grafikler. CPU hesaplamalar yapar ve bellekten okur ve belleğe yazar.
  2. Linux çekirdeği: İşletim sisteminin çekirdeği. (Gördünüz mü? Tam ortada.) CPU'ya ne yapacağını söyleyen, bellekte bulunan bir yazılımdır.
  3. Kullanıcı işlemleri: Bunlar, çekirdeğin yönettiği çalışan programlardır . Kullanıcı süreçleri, toplu olarak kullanıcı alanını oluşturan şeydir. Kullanıcı süreçleri aynı zamanda sadece süreçler olarak da bilinir . Çekirdek ayrıca bu süreçlerin ve sunucuların birbirleriyle iletişim kurmasına izin verir (işlemler arası iletişim veya IPC olarak bilinir).

Sistem tarafından yürütülen kod, CPU'larda 2 moddan birinde çalışır: çekirdek modu veya kullanıcı modu. Çekirdek modunda çalışan kodun donanıma sınırsız erişimi vardır, kullanıcı modu ise CPU'ya ve belleğin SCI'ye erişimini kısıtlar. Bellek (çekirdek alanı ve kullanıcı alanı) için benzer bir ayrım vardır. Bu 2 küçük ayrıntı, güvenlik için ayrıcalık ayırma, konteyner oluşturma ve sanal makinalar gibi bazı karmaşık işlemlerin temelini oluşturur .

Bu ayrıca, kullanıcı modunda bir işlem başarısız olursa, hasarın sınırlı olduğu ve çekirdek tarafından kurtarılabileceği anlamına gelir. Ancak, belleğe ve işlemciye erişimi nedeniyle, bir çekirdek işlemi çökmesi tüm sistemi çökertebilir. Sınırları aşmak için gereken güvenlik önlemleri ve izinler olduğundan, kullanıcı işlemi çökmeleri genellikle çok fazla soruna neden olmaz. Ayrıca, Linux çekirdeği canlı yama sırasında çalışmaya devam edebildiğinden , güvenlik düzeltmeleri için yamalar uygulanırken herhangi bir kesinti olmaz. 

Blog'a Dön