r.

Windows NT çekirdek modu, bilgisayarın donanım ve sistem kaynaklarına tam erişime sahiptir ve kodu korumalı bir bellek alanında çalıştırır. Zamanlama, iplik önceliği, bellek yönetimi ve donanımla etkileşime erişimi kontrol eder. Çekirdek modu, kullanıcı modu hizmetlerini ve uygulamalarını, işletim sisteminin erişememesi gereken kritik alanlara erişmesini durdurur; kullanıcı modu süreçleri çekirdek modundan kendi adına bu işlemleri gerçekleştirmelerini istemelidir.

X86 mimarisi, (0 ile 3 arasında numaralandırılmış) dört farklı ayrıcalık düzeyini desteklerken yalnızca iki üst ayrıcalık düzeyi kullanılır. Usmode programları CPL 3 ile çalıştırılır ve çekirdek CPL 0 ile çalışır. Bu iki seviyeye sırasıyla "halka 3" ve "halka 0" denir. Bununla birlikte, doğrudan donanıma erişmeye çalışan G / Ç ayrıcalıkları içeren OS / 2 uygulamaları ile uyumluluk bozulmasına rağmen, yalnızca iki ayrıcalık düzeyini destekleyen RISC platformlarına kod taşınabilirliği sağlamak için böyle bir tasarım kararı yapıldı.

Windows Yönetim Hizmetleri, alçak düzey çekirdek modu bölümünü oluşturur ve NTOSKRNL.EXE dosyasında bulunur. I / O, nesne yönetimi, güvenlik ve süreç yönetimi ile ilgilenir. Bunlar arasında Önbellek Yöneticisi, Yapılandırma Yöneticisi, G / Ç Yöneticisi, Yerel Prosedür Çağrısı (LPC), Bellek Yöneticisi, Nesne Yöneticisi, İşlem Yapıları ve Güvenlik Referans Monitörü (SRM) olmak üzere birçok alt sistem bulunur. Birlikte gruplandırıldığında, bileşenler Yönetici hizmetleri olarak adlandırılabilir (dahili ad Ex). Sistem hizmetleri (dahili adı Nt), yani sistem çağrıları da bu seviyede uygulanmaktadır, ancak daha iyi performans için doğrudan çekirdeği çağıran çok az sayı vardır.

Bu bağlamda "hizmet" terimi genel olarak çağrılabilir bir rutine, ya da çağrılabilir rutin setine atıfta bulunur. Bu, Unix benzeri işletim sistemlerinde daemon'a biraz benzeyen bir kullanıcı modu bileşenidir.

Nesne Yöneticisi - Nesne Yöneticisi (iç adı Ob), tüm diğer yürütme alt sistemlerinin, özellikle de sistem çağrılarının Windows NT kaynaklarına erişmesi için geçmesi gereken bir yürütme alt sistemi olup aslında kaynak yönetim altyapısı hizmeti yapmaktadır. Nesne yöneticisi, diğer çalıştırılabilir alt sistemlerde nesne kaynak yönetimi işlevselliğinin çoğaltılmasını azaltmak için kullanılır; böylelikle böceklere yol açabilir ve Windows NT'nin geliştirilmesini zorlaştırabilir. Nesne yöneticisine, bu kaynak bir fiziksel kaynak (dosya sistemi veya çevre birimi gibi) veya mantıksal bir kaynak (dosya gibi) gibidir. Her nesne, nesne yöneticisinin bilmesi gereken bir yapıya veya nesne türüne sahiptir.

Nesne oluşturma ve ekleme olmak üzere iki aşamalı bir işlemdir. Oluşturma, boş bir nesnenin tahsis edilmesine ve ad alanındaki (isteğe bağlı) bir ad gibi nesne yöneticisinin gerektirdiği kaynakların ayrılmasına neden olur. Yaratılış başarılı olursa, yaratılıştan sorumlu alt sistem boş nesneyi doldurur. Son olarak, alt sistem başlatmayı başarılı olarak görürse, nesne yöneticisine, nesneyi (isteğe bağlı) adı veya tanıtıcı adı verilen bir tanımlama bilgisi yoluyla erişilebilir hale getirmesini söyler. Bundan sonra, nesnenin ömrü, nesne yöneticisi tarafından işlenir ve nesne yöneticisi tarafından elden çıkarılacağı sinyalini verene kadar, nesneyi çalışma durumunda tutmak alt sistemin sorumluluğundadır.

Kulplar, bir çekirdek kaynağına opak bir değerle bir göndermeyi temsil eden tanımlayıcılardır. Benzer şekilde, bir nesnenin adıyla açılması güvenlik denetimlerine tabidir, ancak varolan, açık bir tanıtıcı vasıtasıyla hareket etmek, yalnızca nesne açıldığında veya oluşturulduğunda istenen erişim düzeyiyle sınırlıdır. Nesne türleri, nesne prosedürlerini ve nesneye özgü verileri tanımlar. Bu şekilde nesne yöneticisi, Windows NT'nin nesne yönelimli programlama olmasını sağlar; nesne türleri nesneleri tanımlayan çok biçimli sınıflar olarak düşünülebilir. Bununla birlikte, çoğu alt sistem, G / Ç Yöneticisi'ndeki dikkate değer bir istisna ile, tüm nesne türü yordamları için varsayılan uygulamaya güvenir.

Oluşturulan bir nesnenin her örneği adını, nesne oluşturma işlevine geçirilen parametreleri, güvenlik niteliklerini ve nesne türüne işaret eden bir işaretçiyi depolar. Nesne ayrıca, nesne yöneticisine, sistemdeki kaç başka nesne bu nesneyi referans gösterdiğini, dolayısıyla nesnenin kendisine bir yakın talep gönderildiğinde yok edilebileceğini belirlemek için bir nesne kapatma yordamını ve bir başvuru sayımını içerir. Her adlandırılmış nesne, hiyerarşik bir nesne ad alanında bulunur.

Önbellek Denetleyicisi - Normal dosya G / Ç'leri için ortak bir önbellek sağlamak için Bellek Yöneticisi, G / Ç Yöneticisi ve G / Ç sürücüleri ile yakın işbirliği yapar. Windows Önbellek Yöneticisi yerel ve uzak dosyalar arasında tutarlı bir işlem için dosya blokları (aygıt blokları yerine) üzerinde çalışır ve bellek eşlemeli dosyalarla belirli bir derecede tutarlılık sağlar, çünkü önbellek blokları bellek eşlemeli özel bir durumdur görünümler ve önbellek özel bir sayfa hatası özlüyor.

Yapılandırma Yöneticisi - Windows Kayıt uygular.

G / Ç Yöneticisi - Cihazların kullanıcı modu alt sistemleri ile iletişim kurmasına izin verir. Kullanıcı modu okuma ve yazma komutlarını, aygıt sürücülerine ilettiği IRP okuma veya yazma işlevine çevirir. Dosya sistemi G / Ç isteklerini kabul eder, bunları cihaza özel çağrılara çevirir ve doğrudan girişi okur veya çıktı yazması için donanımla ilgilenen düşük seviye aygıt sürücülerini içerebilir. Ayrıca, okuma isteklerini önbelleğe alıp arka planda diske yazarak disk performansını artırmak için bir önbellek yöneticisi de içerir.

Yerel Yordam Çağrısı (LPC) - Bağlantı semantiği ile işlemler arası iletişim portları sağlar. LPC bağlantı noktaları, kullanıcı modu alt sistemleri tarafından istemcileriyle, alt düzey kullanıcı modülü alt sistemleriyle iletişim kurmak için ve Microsoft RPC için yerel aktarım için temel olarak iletişim kurmak için kullanılır.

Bellek Yöneticisi - Sanal belleği, bellek korumasını, fiziksel bellekteki ve dışındaki belleklerin ikincil belleğe sayfalamanı kontrol eder ve genel amaçlı bir fiziksel bellek ayırıcısı uygular. Ayrıca bir yürütülebilir dosyanın tek bir atom adımıyla eşlenmesine olanak tanıyan bir PE yürütücüsü ayrıştırıcısı da uygular. Windows NT Server 4.0, Terminal Server Edition'dan başlayarak bellek yöneticisi, sözde oturum alanı, modu belleği, kullanıcı modu belleği gibi bağlama geçişine tabidir. Bu, çekirdek modu Win32 alt sisteminin ve GDI sürücülerinin birden çok örneğinin, ilk tasarımlarındaki eksikliklere rağmen yan yana çalışmasına izin verir. Her oturum alanı, topluca "oturum" olarak adlandırılan çeşitli işlemler tarafından paylaşılır. Yeni bir nesne türü girmeden oturumlar arasında bir dereceye kadar izolasyon sağlamak için, süreçler ve oturumlar arasındaki ilişki, Security Reference Monitor tarafından bir öznitelik olarak ele alınır.

Oturumların nispeten basit ve ad hoc yapısı, ilk tasarımın bir parçası olmadığı gerçeğinden ve WinReturn denilen Windows NT için terminal sunucusu ürününün bir ön şartı olarak üçüncü bir taraf (Citrix Systems) tarafından ana hattın asgariye bozulmasıyla geliştirilmeliydi. Ancak, Windows Vista'dan başlayarak, oturumlar sonunda Windows mimarisinin uygun bir yönü oldu. Artık Win32 aracılığıyla dolaylı olarak kullanıcı moduna sürünen bir bellek yöneticisi yapısı, çoğu Yürütme alt sistemini etkileyen yaygın bir soyutlamaya dönüştürüldü. Nitekim, Windows Vista'yı düzenli olarak kullanmak her zaman çoklu oturum ortamına neden olur.

Süreç Yapısı - Süreci ve iş parçacığı oluşturma ve sonlandırma işlemlerini gerçekleştirir ve iş kavramını uygular; işin bir bütün olarak sona erdirilebilen bir grup işlemi veya paylaşılan kısıtlamalara (toplam tahsis edilen maksimum bellek veya CPU zamanı) dahil edilebilir. İş nesneleri Windows 2000'de tanıtıldı.

PnP Yöneticisi - "Tak ve çalıştır" işlemlerini yapar ve önyükleme saatinde aygıt algılama ve kurulumunu destekler. Aynı zamanda bir cihazı (USB veya IEEE 1394 FireWire gibi) yeni bir aygıt kazandığında ve bunu desteklemek için bir aygıt sürücüsüne ihtiyaç duyulduğunda, aygıtları isteğe bağlı olarak durdurup başlatmaya da sorumluluğu vardır. Toplu halde, kullanıcı modunda, Tak ve Çalıştır Hizmeti'nde uygulanır; bu, uygun sürücüleri yüklemenin, servislerin ve uygulamaların yeni cihazların gelmesini bildiren ve kullanıcıya GUI'nin görüntülenmesiyle ilgili karmaşık görevleri işler.

Güç Yöneticisi - Güç olaylarıyla (kapalı, bekleme, hazırda bekletme, vb.) anlaşma yapar ve etkilenen sürücüleri özel IRP'lerle (Güç IRP'leri) bilgilendirir.

Güvenlik Referans Monitörü (SRM) - Güvenlik entegre alt sisteminin güvenlik kurallarını uygulamak için birincil makamdır. Erişim kontrol kayıtlarından (ACE'ler) oluşan erişim kontrol listelerinin (ACL'ler) kullanılması yoluyla bir nesneye veya kaynağa erişilip erişilemeyeceğini belirler. ACE'ler, bir Güvenlik Tanımlayıcı'yı (SID) ve ACE'nin bir kaynak grubuna, bir kullanıcı hesabı, grup hesabı veya oturum açma oturumu izini (reddetme, reddetme veya denetleme) için seçilen bir grup mütevelli verdiği işlemleri içerir.

GDI - Grafik Aygıt Arabirimi çizgi ve eğrileri çizme, yazı tipleri oluşturma ve paletleri işleme gibi görevlerden sorumludur. Windows NT 3.x serisi sürümleri, GDI bileşenini kullanıcı modu İstemci / Sunucu Çalışma Zamanı Modülü alt sistemine yerleştirmişti, ancak bu grafik performansını artırmak için Windows NT 4.0 ile çekirdek moduna taşındı.

Çekirdek, HAL ve Yönetici arasında bulunur ve çok işlemcili senkronizasyon, iş parçacığı, kesme zamanlama ve gönderme, tuzak işleme ve istisna gönderme sağlar; ayrıca önyükleme sırasında işletim sistemini çalıştırmak için gerekli olan aygıt sürücülerini başlatmaktan sorumludur. Yani, çekirdek geleneksel bir mikro çekirdeğin hemen hemen tüm görevlerini yerine getirir; Yönetici ve çekirdek arasındaki kesin ayrım orijinal mikrokernel tasarımının en belirgin kalıntısıdır ve tarihsel tasarım dokümantasyonu sürekli olarak çekirdeği "mikrokernel" olarak ifade eder.

Çekirdek