Kernel Mode
Çekirdek Kipi
- Türkçe karşılığı
- çekirdek modu
- Okunuşu
- körnıl moud
Günlük kullanımda iki ad da yaygın.
Kısaca
Kernel mode (çekirdek kipi), çekirdeğin donanıma ve belleğe tam erişebildiği ayrıcalıklı CPU durumudur; sıradan programlar kısıtlı kullanıcı kipinde çalışır.
Kernel mode nedir?
İşlemciler ayrıcalık seviyelerini donanımda uygular. x86'da bunlara halka (ring) denir: çekirdek, bütün talimatların ve belleğin kullanılabildiği ring 0'da çalışır; uygulamalar ise donanıma doğrudan dokunan, bellek eşlemelerini değiştiren ya da kesmeleri kapatan talimatların yasak olduğu ring 3'te çalışır. ARM'ın da benzer istisna seviyeleri (exception level) vardır.
Bir program yalnızca çekirdeğin yapabileceği bir şeye ihtiyaç duyduğunda, örneğin bir dosyayı okumak, bellek ayırmak ya da bir ağ paketi göndermek için, bir sistem çağrısı yapar. CPU çekirdek kipine geçer, çekirdeğin işleyicisini çalıştırır ve sonuçla birlikte kullanıcı kipine geri döner. Kesmeler (interrupt) ve page fault gibi hatalar da çekirdek kipine girer.
Çöken tek bir uygulamanın bütün bilgisayarı çökertmesini önleyen bu ayrımdır: kullanıcı kipindeki programlar yalnızca kendilerine zarar verebilir. Aygıt sürücüleri ve bazı güvenlik yazılımları dahil çekirdek kipinde çalışan kodun ise böyle bir güvenlik ağı yoktur. Oradaki bir hata bütün sistemi çökertebilir, bir Linux kernel panic'ine ya da Windows mavi ekranına yol açabilir; 2024'te hatalı bir güvenlik güncellemesinin milyonlarca Windows bilgisayarında yaptığı gibi.
Sık yapılan bir yanlış, çekirdek kipine geçmenin bedava olduğunu düşünmektir. Her sistem çağrısı bir kip geçişine mal olur; bu yüzden çok sayıda küçük çağrı yapan programlar yavaş olabilir. I/O kütüphanelerinin veriyi tamponlamasının ve Linux'un io_uring'i gibi yeni arayüzlerin birçok işlemi daha az geçişte toplamasının nedeni budur.
Önemli noktalar
- Çekirdek kipi, işletim sistemi çekirdeğine donanıma ve belleğe tam erişim verir.
- Uygulamalar kısıtlı kullanıcı kipinde çalışır.
- Sistem çağrıları, kesmeler ve hatalar CPU'yu çekirdek kipine geçirir.
- Sürücüler gibi çekirdek kipindeki koddaki hatalar bütün sistemi çökertebilir.
- Kip geçişleri zaman alır; bu yüzden I/O tamponlanır ve toplu yapılır.
Sık sorulan sorular
Çekirdek kipi ile kullanıcı kipi arasındaki fark nedir?
Çekirdek kipinde kod her talimatı yürütebilir ve her belleğe ya da cihaza erişebilir. Kullanıcı kipinde ise kod kendi belleğiyle sınırlıdır ve ayrıcalıklı işlemleri sistem çağrılarıyla çekirdekten istemek zorundadır.
Aygıt sürücüleri neden çekirdek kipinde çalışır?
Sürücüler donanımla doğrudan konuşur ve kesmeleri ele alır; bu da ayrıcalıklı erişim gerektirir. Hatalı bir sürücünün bütün işletim sistemini çökertebilmesinin ve bazı sistemlerin mümkün olduğunda sürücüleri kullanıcı alanına taşımasının nedeni de budur.
Koruma halkaları (protection rings) nedir?
x86 işlemcilerdeki, en ayrıcalıklı olan 0'dan en az ayrıcalıklı olan 3'e kadar numaralandırılmış donanım ayrıcalık seviyeleridir. İşletim sistemleri genellikle çekirdek için yalnızca ring 0'ı, uygulamalar için de ring 3'ü kullanır.
İlgili sayfalar
- Kernelİşletim Sistemleri, s. 17Kernel, işletim sisteminin CPU'yu, belleği ve donanım aygıtlarını yöneten ve programların bu kaynaklara nasıl eriştiğini denetleyen çekirdek bölümüdür.
- User Spaceİşletim Sistemleri, s. 37User space, sıradan programların çalıştığı kısıtlı alandır; kernel space'ten ayrıdır, böylece hatalı ya da kötü niyetli bir uygulama tüm sistemi çökertemez.
- System Callİşletim Sistemleri, s. 32System call, bir programın işletim sistemi kernel'ından bir dosyayı okumak ya da process başlatmak gibi ayrıcalıklı bir işlem yapmasını istediği çağrıdır.
- Interruptİşletim Sistemleri, s. 15Interrupt, CPU'ya bir olayın acil ilgi gerektirdiğini bildiren sinyaldir; CPU mevcut işini duraklatır ve kernel'daki özel bir işleyiciyi çalıştırır.
- Device Driverİşletim Sistemleri, s. 8Device driver, işletim sisteminin belirli bir donanımı denetlemesini sağlayan ve genel işletim sistemi isteklerini aygıta özgü komutlara çeviren yazılımdır.
- İşletim Sistemiİşletim Sistemleri, s. 16İşletim sistemi (OS), bilgisayarın donanımını yöneten temel yazılımdır; bu donanımı programlar arasında paylaştırır ve onu kullanmanın ortak bir yolunu sunar.
Bu sayfada bir hata ya da eksik mi gördünüz?Düzeltme önerin