Linux çekirdeği (kernel), işletim sisteminin kalbidir. Donanım ile yazılım arasındaki köprüyü kurar, kaynakları yönetir ve sistemin sorunsuz çalışmasını sağlar. Bu rehberde çekirdeğin yapısını, modül sistemini ve yönetimini ele alacağız.
Kernel Nedir?
Kernel (çekirdek), işletim sisteminin en temel bileşenidir. Donanım ile uygulamalar arasında iletişimi sağlar. Kullanıcı programları doğrudan donanıma erişemez; bu erişim çekirdek üzerinden gerçekleşir.
Linux çekirdeği 1991'de Linus Torvalds tarafından geliştirilmeye başlandı. İlk sürüm 0.01, birkaç bin satır koddan oluşuyordu. Bugün çekirdek milyonlarca satır kod içeriyor ve 29 farklı mimariyi destekliyor.
Çekirdeğin Görevleri
İşlem Yönetimi (Process Management)
Çalışan programları (process) yönetir. CPU zamanını süreçler arasında paylaştırır (zaman paylaşımı). Çoklu görev (multitasking) desteği sağlar. Süreçlerin oluşturulması, sonlandırılması ve zamanlanmasından sorumludur.
Bellek Yönetimi (Memory Management)
RAM'i süreçler arasında paylaştırır. Sanal bellek sistemiyle fiziksel RAM'den fazla bellek kullanımına izin verir. Bellek koruma mekanizmalarıyla süreçlerin birbirinin belleğine erişmesini engeller. Swap alanı yönetimi yapar.
Dosya Sistemi Yönetimi
Farklı dosya sistemlerini (ext4, XFS, Btrfs) destekler. Dosya okuma/yazma işlemlerini yönetir. Dosya izinleri ve güvenliği sağlar. Virtual File System (VFS) katmanıyla farklı dosya sistemlerine ortak arayüz sunar.
Aygıt Yönetimi
Donanım aygıtlarıyla iletişimi sağlar. Aygıt sürücüleri üzerinden donanıma erişim sunar. Kesme (interrupt) yönetimi yapar. Giriş/çıkış (I/O) işlemlerini koordine eder.
Ağ Yönetimi
TCP/IP protokol yığınını uygular. Ağ arayüzlerini yönetir. Paket yönlendirme ve filtreleme yapar.
Çekirdek Türleri
Monolitik Çekirdek
Tüm çekirdek işlevleri tek bir büyük programda birleştirilmiştir. Linux monolitik çekirdek kullanır.
Avantajları: Yüksek performans. Bileşenler arasında hızlı iletişim.
Dezavantajları: Büyük kod tabanı. Bir hata tüm sistemi etkileyebilir.
Mikro Çekirdek
Minimum işlevsellik çekirdekte, geri kalanı kullanıcı alanında çalışır.
Avantajları: Daha güvenli ve kararlı. Modüler yapı.
Dezavantajları: Performans kaybı. Daha karmaşık tasarım.
Linux Hybrid Yaklaşımı
Linux monolitik olmakla birlikte, modül sistemiyle esneklik kazanır. Modüller çalışma zamanında yüklenip kaldırılabilir.
Sürüm Numaralandırma
Linux çekirdeği sürüm numarası üç bölümden oluşur:
Major.Minor.Patch
Örnek: 6.8.12
6: Major versiyon 8: Minor versiyon (özellik güncellemeleri) 12: Patch versiyon (hata düzeltmeleri)
Güncel çekirdek sürümünü öğrenme:
uname -r
Çekirdek Modülleri
Kernel modülleri, çekirdeğe çalışma zamanında yüklenebilen veya kaldırılabilen kod parçalarıdır. Sistemin yeniden başlatılmasına gerek kalmadan işlevsellik eklenebilir veya çıkarılabilir.
Modül Türleri
Aygıt sürücüleri: Donanım desteği sağlar. Dosya sistemi sürücüleri: Farklı dosya sistemlerini destekler. Ağ protokolleri: Ağ işlevselliği ekler. Güvenlik modülleri: SELinux, AppArmor gibi.
Modül Yönetim Komutları
Yüklü modülleri listeleme:
lsmod
Modül bilgisi görüntüleme:
modinfo bluetooth modinfo ext4
Modül yükleme:
sudo modprobe bluetooth
Modül kaldırma:
sudo modprobe -r bluetooth
Eski yöntem (bağımlılık çözmez):
sudo insmod /path/to/module.ko sudo rmmod modulename
Modül Yapılandırması
/etc/modprobe.d/ dizini modül yapılandırma dosyalarını içerir.
Modülü kara listeye alma (yüklenmesini engelleme):
echo "blacklist modulename" | sudo tee /etc/modprobe.d/blacklist-modulename.conf
Modül parametresi ayarlama:
echo "options modulename parameter=value" | sudo tee /etc/modprobe.d/modulename.conf
Çekirdek Parametreleri
Çekirdek davranışını çalışma zamanında değiştiren parametreler.
Parametreleri Görüntüleme
Tüm parametreler:
sysctl -a
Belirli parametre:
sysctl net.ipv4.ip_forward
Parametre Değiştirme
Geçici değişiklik:
sudo sysctl -w net.ipv4.ip_forward=1
Kalıcı değişiklik için /etc/sysctl.conf veya /etc/sysctl.d/ dosyaları düzenlenir:
net.ipv4.ip_forward = 1
Değişiklikleri uygulama:
sudo sysctl -p
Çekirdek Derleme
İleri düzey kullanıcılar özel çekirdek derleyebilir. Özel donanım desteği, performans optimizasyonu veya minimal çekirdek için gerekebilir.
Temel Adımlar
Kaynak kodunu indirin (kernel.org). Yapılandırma dosyası oluşturun (make menuconfig). Çekirdeği derleyin (make). Modülleri derleyin ve kurun (make modules_install). Çekirdeği kurun (make install). Önyükleyiciyi güncelleyin (update-grub).
Bu işlem zaman alır ve hata riski taşır. Çoğu kullanıcı için dağıtımın sağladığı çekirdek yeterlidir.
Çekirdek Güncelleme
Dağıtımlar çekirdek güncellemelerini paket yöneticisi üzerinden sağlar.
Ubuntu/Debian:
sudo apt update && sudo apt upgrade
Güncelleme sonrası yeniden başlatma gerekir.
Kurulu çekirdekleri listeleme:
dpkg --list | grep linux-image
Eski çekirdekleri temizleme:
sudo apt autoremove
DKMS (Dynamic Kernel Module Support)
DKMS, çekirdek güncellendiğinde modüllerin otomatik yeniden derlenmesini sağlar. NVIDIA sürücüleri, VirtualBox gibi üçüncü parti modüller için önemli.
DKMS durumu:
dkms status
Proc ve Sys Dosya Sistemleri
/proc
Sanal dosya sistemi. Çalışan sistem hakkında bilgi sağlar.
/proc/cpuinfo: CPU bilgisi /proc/meminfo: Bellek bilgisi /proc/version: Çekirdek sürümü /proc/[PID]/: Süreç bilgileri
/sys
Çekirdek nesnelerine erişim sağlar. Donanım yapılandırması için kullanılır.
Hata Ayıklama
Çekirdek Logları
dmesg: Çekirdek mesajlarını gösterir.
dmesg | tail -50
journalctl ile çekirdek logları:
journalctl -k
Çekirdek Panik
Kritik hatada sistem durur. Panik mesajı hatanın nedenini gösterir. Genellikle donanım sorunu veya hatalı sürücü kaynaklıdır.
Sonuç
Linux çekirdeği işletim sisteminin temelidir. Donanım yönetiminden bellek tahsisine, ağ iletişiminden dosya sistemlerine kadar her şeyi kontrol eder.
Çoğu kullanıcı için çekirdek detaylarını bilmek gerekmez; dağıtımlar bu işleri halleder. Ancak sistem yöneticileri ve geliştiriciler için modül yönetimi, parametre ayarlama ve sorun giderme becerileri değerlidir.
Çekirdeği güncel tutun, güvenlik güncellemelerini atlayamayın. Özel gereksinimler olmadıkça dağıtımın sağladığı çekirdeği kullanın.
0 Yorum
Yorum Yaz