User mode ile kernel mode arasındaki fark nedir? System call nedir?

Cevap

CPU'nun iki temel ayrıcalık seviyesi vardır. Kernel mode'da kod tüm donanıma, belleğe ve ayrıcalıklı komutlara erişebilir. User mode'da çalışan uygulama kodu ise kısıtlıdır; donanıma doğrudan erişemez, başka process'lerin belleğini göremez. Bu ayrım, hatalı veya kötü niyetli bir uygulamanın tüm sistemi çökertmesini engeller.

x86'da bu seviyeler ring'lerle ifade edilir: kernel ring 0, uygulamalar ring 3'te çalışır.

System call

User mode'daki bir program dosya açmak, ağa veri göndermek veya bellek istemek gibi ayrıcalıklı bir iş için kernel'den system call (sistem çağrısı) ile hizmet ister. Akış:

  1. Uygulama bir kütüphane fonksiyonu çağırır (ör. C'de write(), Python'da open()).
  2. Kütüphane, syscall numarasını ve argümanları register'lara koyup özel bir komut çalıştırır (x86-64'te syscall).
  3. CPU kernel mode'a geçer, kernel isteği doğrular ve işler.
  4. Sonuç register'a yazılır, CPU user mode'a döner.

Yaygın Linux syscall'ları: read, write, open, mmap, fork, execve, clone, epoll_wait.

# Bir komutun yaptığı system call'ları izlemek
strace -c ls /tmp

Neden maliyetlidir?

Mod geçişi, register'ların saklanması, güvenlik kontrolleri ve (Spectre/Meltdown sonrası alınan önlemler nedeniyle) TLB/cache etkileri yüzünden syscall, normal bir fonksiyon çağrısından çok daha pahalıdır. Bu yüzden:

  • I/O tamponlanır (BufferedWriter, stdio buffer'ı) ki her byte için write çağrılmasın.
  • Linux'ta io_uring gibi arayüzler birçok I/O isteğini toplu gönderip syscall sayısını azaltır.

Kernel mode'a başka geçiş yolları

Syscall dışında interrupt (donanım kesmesi, ör. ağ kartı) ve exception (ör. page fault, sıfıra bölme) da CPU'yu kernel mode'a geçirir.

  1. Concurrency ile parallelism arasındaki fark nedir?Kolayİşletim SistemleriYazılım Müh.
  2. Race condition nedir? Bir örnekle nasıl önleneceğini gösterin.Ortaİşletim SistemleriYazılım Müh.
  3. Context switch nedir? Neden maliyetlidir?Ortaİşletim SistemleriYazılım Müh.
  4. Virtual memory ve paging nasıl çalışır? Page fault nedir?Zorİşletim SistemleriYazılım Müh.
  5. Mutex ile semaphore arasındaki fark nedir?Ortaİşletim SistemleriYazılım Müh.
  6. Deadlock nedir? Oluşması için gereken dört koşul nelerdir ve nasıl önlenir?Zorİşletim SistemleriYazılım Müh.

Bu konuda başka bir soru biliyor musun?

Mülakatta karşılaştığın soruları ekle, onaylandıktan sonra yayına alınsın.

Soru ekle