Rehber Kernel ve User Mode arasındaki fark

Merhabalar. Bugün Kernel ve User Mode arasındaki farkı, çalışma mantığını anlatmaya çalışacağım.

Öncelikle tanımlama ile başlayalım;

Kernel;


Kernel, diğer adıyla çekirdek demektir. İşletim sistemi ana işlemlerini ve donanım ile haberleşme işlemlerini bu seviyede yapar. Burada gerçekleşen işlemler hayati önem arz etmektedir.

User Mode;

Bunun 3 seviyesi var. Ring 3, Ring 2, Ring 1.

1200px-CPU_ring_scheme.svg.png


Ring 3: Bu bizim sıradan uygulamalar kullandığımız kısımdır. Burada oluşan uygulama çökmeleri sistemi doğrudan kitlemez.

Ring 2: Bu bizim daha çok sistem bilgilerinden, sistem dosyalarından veri çekerek yaptığımız işlem katmanıdır. Bu da Ring 3 gibi mavi ekrana neden olmaz.

Ring 1: Bu ise çekirdeğe en yakın olan katmandır. Bu katmanda daha çok sistem donanımı için müdahale yapan yazılımlar çalışmaktadır.

Bu kısımda oluşan bir hata mavi ekran ile sonuçlanabilir.

Örnek: MSI Afterburner, iCUE, Samsung Magician, Dragon Center.

Asıl Ring 1'de çalışan ve mavi ekrana neden olacak şeyler sürücü yazılımlarıdır.

NVIDIA GeForce Experience ve AMD Control Panel gibi.

Aslında bizim Kernel sürücü dediğimiz şey şudur;

Kernel sürücü, Ring 3, 2, 1 kısımlarından Ring 0, yani çekirdek üzerinden bir fonksiyon çağırır.
Bu fonksiyon alışverişi düzgün olursa işlemler sorunsuz olur.

images.png


Yani sizin anlayacağınız herhangi bir yazılım gerekli izinler ile çekirdek üzerinden fonksiyon çalıştırabilir.

Bunların en başında donanımlar gelmektedir.

images-1.png


Görüldüğü üzere donanım sürücüleri User Mode ile çekirdek üzerinde çalışan bir sürücü yazılımı ile iletişim kurarlar.

Yani siz oyun sırasında milyonlarca bu işlemlerden yapıyorsunuz. Ancak içlerinden 1 tanesi sorunlu olursa hemen mavi ekran yiyebilirsiniz.

Mavi ekranın amacı ise donanım zararını önlemektir. Aslında mavi ekran aldığınız zaman sevinmeniz lazım. Mavi ekranın amacı Kernel bir sorun olduğu zaman donanım hasarları olmaması için, sistemin kendisi işlem yapmasını durdurması sayesinde engellenmektedir.

Tabii bu işlemler tek bir iş için değil.

images-2.png


Görüldüğü üzere bir işletim sistemi oldukça fazla ve karmaşık işlemleri işlemektedir.

İşletim siteminin ana amacı bir yazılım hata verdiği zaman tüm sistemin kilitlenmesini engellemek.

Yani sizin kullandığınız yazılımınız çöktüğü zaman sistemin komple gitmesini engellemektir amacı.

Genel olarak işlem biçimi bu şekilde.

Ring 3.2.1 yazılımına göre Ring 0 (çekirdek) üzerinden gerekli izinler verildiği sürece Kernel Function (çekirdek fonksiyonu) çağırabilir.

Kısaca makalem bu şekilde. Resimler ile daha iyi anlattığımı düşünüyorum.

Umarım fikir sahibi olmuşsunuzdur.

Buradan işletim sistemi yazmak isteyen arkadaşlara selam :D
 
Son düzenleme:
Bu modern işletim sistemlerinde bu şekilde işliyor. Ancak eski işletim sistemlerinde (mesela DOS) yazılım doğrudan donanıma erişebilir ve bir hata olduğu anda sistem kilitlenebilir.
 
Genellikle bilgim olan bir alan olduğu için bir iki yanlış kısmı düzeltmek isterim. İlk görseldekinin aksine bu oldukça eski(2000'lerin başı) bir tanımlama örneğidir. 4 ring modeli, Intel işlemciler ve X86 mimarisi için hazırlanmış ancak modern işletim sistemlerinde kullanılmayan bir yapıdır, şu an sadece ring0 ve ring3 olarak basitçe user ve kernel olarak ayrılıyor.

Biraz daha detaylandırırsak 4'lü ring modeli Intel tarafından hazırlanmış ve herhangi birisinin işletim sistemi tasarımında kullanabileceği bir rol modeldir. Ancak Microsoft geliştirme aşamasını hızlandırmak ve güvenliği artırmak amacıyla katman sayısını azalttı. Intel'in bu ara katmanları yapma amacı kötü amaçlı yapılan driverların kullanımını ve sisteme zarar vermesini engellemek ve ayrıca ek güvenlik sağlamaktı ancak Microsoft bunun yerine daha önceki bir konunuzda bahsettiğiniz dijital imza sistemini kullanmayı tercih etti ve modern Windows'da kullanmadı.

Bunun dışında ring 1&2 seviyeleri bahsettiğinizin aksine user değil bir ara katman seviyesindedir, direkt olarak işletim sisteminin olduğu beyin diyebileceğimiz ring0 katmanıyla, kullanıcı ve sistem uygulamalarının çalıştığı ring3 katmanı arasında "yetkilendirilmiş" seviyede çalıştıran bir sistem katmanlarıdır, ring0'a göre avantajı burada çalıştırılan sürücülerin sistem çökmesine ve güvenlik zaafiyetlerine sebep olmaması.

Özetle bu bahsettiğim 4'lü katman sistemi yukarıdada bahsettiğim üzere Intel tarafından tasarlanmış ve sadece X86 mimarisinde kullanılan, modern işletim sistemlerinde kullanılmayan, AMD tarafından X64 mimarisinde sanallaştırma ile ilgili sorunlara sebep açtığı için kullanılmayan güncel olmayan bir modeldir.
 
@257106 hocam bu programlama kısmı mantığı ile alakalı bir rehber. Genel olarak sistemin çalışma mantığını anlatmaya çalıştım zaten. Güncel X64 CPU bu kısımda sorun yapabiliyor dediğiniz gibi. Makale içinde bahsettiğim gibi temel bilgi verdim.
 

Geri
Yukarı