İşlemci programları Kullanıcı Modunda veya Çekirdek Modunda yürütür. Bilgisayarınızı kullandığınızda işlemci, yaptığı işe bağlı olarak sıklıkla bu iki mod arasında geçiş yapar. Peki Kullanıcı Modu ve Çekirdek Modu nedir? Bu iki mod arasındaki fark nedir? CPU'nun neden bu modlar arasında geçiş yapması gerekiyor?
Windows'ta Kullanıcı Modu nedir?

Windows'ta Kullanıcı Modu
Windows'ta bir program başlattığınızda, o program Kullanıcı Modunda başlatılır. Kullanıcı Modundaki bir program çalıştırmak istediğinde, Windows bunun için bir işlem oluşturur. İşlem, yalnızca bir işlemcinin yürüttüğü bir program veya Windows'un yürütmeyi planladığı bir programdır. Ve Windows bir işlem oluşturduğunda, bu işlem için de bir sanal adres alanı oluşturur.
Sanal adres alanı, Windows'un bir işleme atadığı mantıksal (fiziksel olmayan) adresler kümesidir. İşlemler bu adresleri verileri fiziksel bellekte depolamak için kullanabilir.
Ayrıca sanal adres alanı yalıtılmıştır. Bu nedenle, bir işlemin sanal adres alanı başka bir işlemin adres alanına müdahale etmez. Ve Kullanıcı Modundaki programların ayrı adres alanları olduğundan, bir program çökerse, o program tek başına çökecek ve etkileriyle diğer programları veya tüm işletim sistemini etkilemeyecektir.
Kullanıcı Modu uygulamalarını tanımlamanın bir başka yolu da “daha az ayrıcalıklı” terimini kullanmaktır. Windows, Kullanıcı Modu uygulamalarının kritik sistem kaynaklarına doğrudan erişmesini kısıtlayarak onları daha az ayrıcalıklı hale getirir. Örneğin, bir uygulama donanıma erişmek istiyorsa, sistem çağrılarını (bir bilgisayar programının işletim sisteminin çekirdeğinden bir hizmet talep ettiği bir programlama stili) kullanarak işletim sistemi çekirdeğinden geçmesi gerekir, yürütülür).
Basitçe söylemek gerekirse, video oyunları gibi uygulama programları Kullanıcı Modunda çalışır. Çok az ayrıcalıkları vardır, dolayısıyla sistem kaynaklarına sınırsız erişimleri yoktur. Her Kullanıcı Modu uygulamasının kendi adres alanı vardır. Bir uygulama başka bir uygulamanın adres alanını değiştiremez. Bu nedenle, bir uygulamanın çökmesi bilgisayarda çalışan diğer programları etkilemez.
Windows'ta Çekirdek Modu nedir?
![Windows'ta Çekirdek Modu ile Kullanıcı Modu arasındaki fark Windows'ta Çekirdek Modu ile Kullanıcı Modu arasındaki fark]()
Windows'ta Çekirdek Modu
Çekirdek Modu'nu tartışmadan önce, öncelikle "çekirdeğin" ne olduğunu ve Windows'ta nasıl çalıştığını bilmeliyiz.
Çekirdek bir işletim sisteminin beynidir. İşletim sistemindeki diğer tüm bileşenlerin dayandığı temel yazılım bileşenidir. Çekirdek, bilgisayar donanımını yönetir, bilgisayardaki programları düzenler ve donanım ile uygulama yazılımı arasındaki etkileşimleri yönetir.
Kısacası çekirdek, sistem üzerinde çalışan en ayrıcalıklı kod parçasıdır çünkü donanımla doğrudan etkileşime giren koddur. Donanım kaynaklarını kullanmak isteyen diğer programların çekirdek üzerinden erişim istemesi gerekir.
Bir uygulama programı Kullanıcı Modunda çalışırken ve web kamerası gibi donanıma erişmek istediğinde, sistem çağrılarını kullanarak çekirdeğe talepte bulunmalıdır. Bu istekleri yerine getirmek için CPU, programın yürütülmesi sırasında Kullanıcı Modundan Çekirdek Moduna geçer.
Yürütme tamamlandıktan sonra CPU, Kullanıcı Moduna geri döner ve bir sonraki programlanmış işlemi yürütmeye başlar. Buna “Bağlam Değiştirme” denir .
Kullanıcı Modu ile Çekirdek Modu arasındaki fark nedir?
Kullanıcı Modu ile Çekirdek Modu arasındaki temel fark, her modun sağladığı ayrıcalıkların düzeyidir. Kullanıcı Modunda uygulamaların daha az ayrıcalığı vardır. Donanım kaynaklarına doğrudan erişimleri yoktur ve diğer uygulamaların adres alanına yazamazlar.
Çekirdek Modunda çalışan kodun ayrıcalıkları yükseltilmiştir. Yalnızca bilgisayar donanımına doğrudan erişime sahip olmakla kalmaz, aynı zamanda işletim sistemi de dahil olmak üzere Çekirdek Modunda çalışan tüm programlar da bir adres alanını paylaşır. Yani Çekirdek Modundaki bir program çökerse, tüm işletim sisteminin çökmesine neden olabilir. Bu tür sorunların oluşmamasını sağlamak için Windows yalnızca bazı işlemlerin Çekirdek Modunda çalışmasına izin verir.
Windows, kullanıcı programlarını sistem kaynaklarından ayırmak için katmanlı bir yaklaşım benimser
Windows, işlemlerin ayrıcalık düzeylerini belirlemek için katmanlı bir model kullanır. En dış katmanda yer alan uygulamalar kiralama ayrıcalıklarına sahip uygulamalardır. Bu katmanların çekirdeği çekirdektir. Bu nedenle çekirdeğin işletim sistemi kaynaklarına sınırsız erişimi vardır.
Katmanlı yaklaşım aynı zamanda kritik işletim sistemi işlevselliğini de korur. Üst katmandaki programlar rastgele çöktüğünde işletim sistemini etkilemez. Öte yandan çekirdek çöktüğünde tüm işletim sistemi etkilenir.