- Çekirdek, fiziksel donanım ile yazılım uygulamaları arasındaki iletişimi koordine eden temel aracı katman görevi görür.
- Tek parça halindeki mimarisi, süreçlerin, belleğin ve aygıtların verimli bir şekilde yönetilmesine olanak tanırken, ek esneklik için harici modülleri de destekler.
- Sunucu ortamlarında performansı optimize etmek için belirli parametrelerin ayarlanmasında çekirdek yönetimi hayati önem taşır.
Terminalde bir simgeye tıkladığınızda veya bir komut çalıştırdığınızda gerçekte ne olduğunu merak ettiyseniz, kısa cevap şudur: Sahne arkasında yorulmadan çalışan bir orkestra şefi var. Linux çekirdeği olarak bilinen bu bileşen , esasen işletim sisteminin çekirdeğidir; bilgisayarınızın donanımının ve kullandığınız programların kaos yaratmadan birbirleriyle iletişim kurmasını sağlayan temel yazılım parçasıdır.
Açıklığa kavuşturmak gerekirse, insanlar "Linux" kullandıklarını söylediklerinde, teknik olarak Linux çekirdeğinin kendisini kastediyorlar; çünkü genellikle Ubuntu, Debian veya AlmaLinux gibi dağıtımları kuruyoruz . Bu dağıtımlar, Linux çekirdeğinin yanı sıra, sistemi herkes için kullanılabilir hale getiren bir dizi araç, grafik arayüz ve uygulamadan oluşur; çekirdek ise görünmez bir şekilde kaynakları yöneterek merkezde kalır.
Çekirdek tam olarak nasıl çalışıyor?

Çekirdek, çok sıkı bir aracı veya bekçi görevi görür. Hiçbir uygulamanın donanıma doğrudan erişim izni yoktur; bir tarayıcı ağ kartını kullanmak istiyorsa veya bir oyun GPU gücüne ihtiyaç duyuyorsa, bunu çekirdekten resmi olarak talep etmelidir . Çekirdek, isteği analiz eder ve kimin erişim elde edeceğine, ne kadar CPU süresi alacağına ve ne kadar RAM tahsis edileceğine karar verir; böylece bir işlemin diğerinin belleğini üzerine yazmasını ve sistemin çökmesine neden olmasını önler.
Aynı anda on programın açık olduğunu hayal edin. Çekirdek, bir hakem görevi görerek işlemci dönüşlerini o kadar hızlı dağıtır ki, her şey paralel olarak gerçekleşiyormuş gibi görünür. Dahası, VFS (Sanal Dosya Sistemi) adı verilen bir katman aracılığıyla depolamayı yönetir ve okuma ve yazma isteklerini kurulu sabit sürücünüzün özel diline çevirir.
Çekirdek tarafından yönetilen ana görevler
Bu yazılımın faydasını anlamak için, makinenin günlük çalışmasında üstlendiği sorumlulukları anlamak faydalı olacaktır:
- Süreç kontrolü: Süreçlerin oluşturulması, yürütülmesi ve kapatılmasından sorumludur. İlginç bir ayrıntı ise, belirli süreçlere öncelik vermesidir. UID 0 (root kullanıcısı)Bu sayede diğer kullanıcıların uyması gereken bazı kısıtlamaları atlamalarına olanak tanır.
- Bellek yönetimi: Hangi uygulamanın hangi RAM bloğunu kullanacağına ve takas alanını ne zaman kullanacağınıza karar verin. SWAPBu, aşağıdaki gibi parametreler kullanılarak ayarlanabilir.
vm.swappinessVerilerin diske taşınması sırasında sistemin ne kadar agresif davranacağına karar vermek, bir RAM nasıl optimize edilir? verimli. - Donanımla etkileşim: Fiziksel bileşenlerle iletişim kurmak için sürücüler kullanır. Bu sayede, yazılımın hangi marka ağ kartı kullandığınızı tam olarak bilmesine gerek kalmaz, çünkü çekirdek bunu sağlar. ortak soyutlama katmanı.
- Güvenlik ve izinler: Unix sistemlerinin tipik sahiplik hiyerarşisini uygulayarak, hangi dosyaya kimin erişimi olduğunu sürekli olarak izler.
Tek parça tasarım üzerine tartışma

Linux çekirdeğinin monolitik olduğu söylenir ve bu, onun katı olduğu anlamına gelmez; aksine, bellek, işlem ve dosya yönetimini donanıma çok yakın çalışan tek bir blokta birleştirdiği anlamına gelir. Bu tasarımın en büyük avantajı , bir görevi yürütmek için ayrı bileşenler arasında geçiş yaparak zaman kaybetmediği için ham performanstır .
Ancak, katı bir sistem olmaktan kaçınmak için Linux, çekirdek modülleri kullanır . Bunlar, anında yüklenip kaldırılabilen eklentiler gibidir. Bu nedenle, yeni bir aygıt bağladığınızda, sistem bilgisayarı yeniden başlatmak veya tüm çekirdeği sıfırdan yeniden derlemek zorunda kalmadan gerekli sürücüyü yükleyebilir.
Bakım, sürümler ve optimizasyon

Hangi çekirdek sürümünü kullandığınızı bilmek çok kolay. Sadece şunu yazmanız yeterli: uname -r Konsolda tam sürümü görmek için veya uname -a Eğer istiyorsanız eksiksiz bilgi paketiSistem mimarisi de dahil olmak üzere. Sürümler genellikle dört rakamlı bir şemayı takip eder; üçüncü rakam yeni bir özelliği, son rakam ise genellikle bir önceki sürümü ifade eder. hata düzeltmeleri veya böcekler.
Sunuculardan, özellikle bulut ortamlarından bahsettiğimizde, çekirdek hayati önem kazanır. Örneğin, KVM sanallaştırmasında, her VPS sunucusunun kendi bağımsız çekirdeği vardır ; bu da düğümdeki başka bir makine arızalanırsa sizin makinenizin etkilenmemesini ve çekirdeği istediğiniz gibi başkalarını etkilemeden güncelleyebilmenizi sağlar.
Maksimum performans arayanlar için çekirdek optimizasyonu (kernel tuning) seçeneği mevcuttur . Bu, Linux çekirdeğini optimize etmeyi ve ağ veya dosya sistemi gibi alt sistemlerin yapılandırmasını ince bir şekilde değiştirerek gecikmeyi azaltmayı içerir; bu sayede finansal işlemler veya yüksek eşzamanlılık gerektiren sosyal ağlar gibi büyük miktarda veri işleyen uygulamalar için VFS önbellek baskısı gibi parametreler ayarlanarak optimizasyon sağlanır.
Çekirdek kurulumu ve güncellemesi

Çoğumuz dağıtımımızın paket yöneticisini kullanıyor olsak da (örneğin...) apt Ubuntu'da veya dnf (RHEL'de) kaynak kodunu şu adresten indirmek mümkündür: kernel.orgDerleyip manuel olarak kurun. Bu, çok özel optimizasyonlara ihtiyaç duyan ileri düzey kullanıcılar arasında yaygındır.
Önemli bir nokta şu ki, sistemdeki tek değiştirilemeyen parça çekirdektir . Bugün bir güncelleme yükleseniz bile, makineyi yeniden başlatana kadar sistem eski sürümü kullanmaya devam edecektir; bu noktada önyükleyici yeni önyükleme dosyasını yükleyecektir.
Sonuç olarak, bu bileşen, donanım ve yazılımın uyum içinde bir arada bulunmasını sağlayan, RAM'den kök izinlerine kadar her şeyi yöneten ve modüler monolitik mimarisi ve son derece yüksek performanslı görevler için ayarlanabilme özelliği sayesinde sistemin verimli olmasını sağlayan bir başyapıttır.
