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ış:
- Uygulama bir kütüphane fonksiyonu çağırır (ör. C'de
write(), Python'daopen()). - Kütüphane, syscall numarasını ve argümanları register'lara koyup özel bir komut çalıştırır (x86-64'te
syscall). - CPU kernel mode'a geçer, kernel isteği doğrular ve işler.
- 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 /tmpNeden 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,stdiobuffer'ı) ki her byte içinwriteçağrılmasın. - Linux'ta
io_uringgibi 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.
İlgili İşletim Sistemleri soruları
- Concurrency ile parallelism arasındaki fark nedir?
- Race condition nedir? Bir örnekle nasıl önleneceğini gösterin.
- Context switch nedir? Neden maliyetlidir?
- Virtual memory ve paging nasıl çalışır? Page fault nedir?
- Mutex ile semaphore arasındaki fark nedir?
- Deadlock nedir? Oluşması için gereken dört koşul nelerdir ve nasıl önlenir?
Bu konuda başka bir soru biliyor musun?
Mülakatta karşılaştığın soruları ekle, onaylandıktan sonra yayına alınsın.