ntoskrnl.exe - ntoskrnl.exe

Bilgisayarda ntoskrnl.exe ( Windows NT işletim sistemi çekirdeği yürütülebilir dosyasının kısaltması ), çekirdek görüntüsü olarak da bilinir , Microsoft Windows NT çekirdek alanının çekirdek ve yönetici katmanlarını sağlar ve donanım soyutlama , işlem ve donanım gibi çeşitli sistem hizmetlerinden sorumludur. bellek yönetimi , böylece onu sistemin temel bir parçası haline getirir. İçerdiği önbellek yöneticisi, yönetici, çekirdek, güvenlik referans monitörü, bellek yöneticisi ve zamanlayıcı (Dispatcher).

genel bakış

Bu sistem ikili dosyası yerel bir uygulama değildir (buna karşı bağlantılı değildir ntdll.dll), bunun yerine kendi başına standart bir 'başlangıç' giriş noktası , mimariden bağımsız çekirdek başlatma işlevini çağıran bir işlev içerir . ntoskrnl.exe ile bağlantılı ntdll.dllolmasa da bootvid.dll, hal.dllve ile bağlantılıdır kdcom.dll. Bağlı olduğu C Runtime nesnelerinin statik bir kopyasını gerektirdiğinden, yürütülebilir dosyanın boyutu genellikle yaklaşık 2 MB'dir.

Genel olarak, her Windows revizyonu için dört çekirdek görüntü dosyası ve her Windows sistemi için iki çekirdek görüntü dosyası vardır. Çoklu işlemci veya tek işlemcili dosyaları zaman yüklemek de seçilir ve PAE veya PAE olmayan dosyaları göre, boot.ini veya BCD seçeneği ile seçilir işlemcisinin özellikleri .

Çekirdek görüntü dosya adları
Dosya adı Destekler
SMP
PAE'yi destekler
ntoskrnl.exe Numara Numara
ntkrnlmp.exe Evet Numara
ntkrnlpa.exe Numara Evet
ntkrpamp.exe Evet Evet

ntoskrnl'deki rutinler, ntoskrnl'nin hangi bileşeninde tanımlandıklarını belirtmek için adlarında önekler kullanır. Aşağıdaki tablo bunlardan bazılarını listeler.

NT işlev önekleri
Önek Anlam
bilgi Dosya sistemi önbelleği
Santimetre Configuration Manager, Windows Kayıt Defteri'nin çekirdek modu tarafı
Csr Win32 alt sistem süreci ile iletişim kurmak için kullanılan işlevler, csrss.exe (csrss, istemci/sunucu çalışma zamanı alt sistemi anlamına gelir)
Dbg yazılım kırılma noktası gibi hata ayıklama yardım işlevleri
Eski Windows yöneticisi, Ntoskrnl.exe'nin bir "dış katmanı"
Tecrübe Windows yönetici özel: Yönetici katmanındaki, yönetici dışında çağrı için dışa aktarılmayan rutinler (p = özel)
FsRtl dosya sistemi çalışma zamanı kitaplığı
Io G/Ç yöneticisi
Ke çekirdek çekirdek rutinleri
Ki çekirdeğin dışından çağrı için dışa aktarılmayan çekirdek rutinleri (i = dahili)
KS çekirdek akışı
Ldr PE dosya işleme için yükleyici işlevleri
lpc Yerel Prosedür Çağrısı , dahili, belgelenmemiş, süreçler arası veya kullanıcı/çekirdek mesajı geçirme mekanizması
Lsa Yerel Güvenlik Otoritesi
Mi bellek yöneticisi dışındaki çağrılar için dışa aktarılmayan bellek yönetimi rutinleri (i = dahili)
mm hafıza yönetimi
Nls Ana Dil Desteği için Nls (kod sayfalarına benzer).
Ob Nesne Yöneticisi
Pfx Önek işleme için Pfx.
po Tak ve çalıştır ve güç yönetimi
not Süreç ve iş parçacığı yönetimi
rtl Çalışma zamanı kitaplığı. Bu, yerel uygulamalar tarafından kullanılabilen, ancak doğrudan çekirdek desteğini içermeyen birçok yardımcı işlevi içerir.
rtlp Çekirdeğe aktarılmayan Çalışma Zamanı Kitaplığı dahili rutinleri.
Gör güvenlik
Vf Sürücü doğrulayıcı
VI Sürücü doğrulayıcı rutinleri, sürücü doğrulayıcı dışında çağrı için dışa aktarılmaz
Zw Nt veya Zw, ntdll.dll ve ntoskrnl.exe'de bildirilen sistem çağrılarıdır. Kullanıcı modunda ntdll.dll'den çağrıldığında bu gruplar hemen hemen aynıdır; çekirdek moduna girerler ve SSDT aracılığıyla ntoskrnl.exe'deki eşdeğer işlevi çağırırlar. Fonksiyonlar doğrudan ntoskrnl.exe'de çağrılırken (yalnızca çekirdek modunda mümkündür), Zw varyantları çekirdek modunu sağlarken Nt varyantları sağlamaz.

başlatma

Çekirdek kontrolü aldığında, parametre olarak bir yapıya bir işaretçi alır. Bu yapı önyükleyici tarafından geçirilir ve donanım, kayıt defteri dosyasının yolu, önyükleme tercihlerini içeren çekirdek parametreleri veya çekirdeğin davranışını değiştiren seçenekler, önyükleyici tarafından yüklenen dosyaların yolu hakkında bilgiler içerir ( SYSTEM Registry hive , nls for karakter kodlama dönüştürme ve vga yazı tipi). Bu yapının tanımı, çekirdek hata ayıklayıcı kullanılarak veya Microsoft sembol veritabanından indirilerek alınabilir.

In x86 mimarisi , çekirdek ile, korumalı modda zaten sistemini alır GDT , IDT ve TSS hazır. Fakat her birinin adresini bilmediği için PCR yapısını doldurmak için tek tek yüklemesi gerekiyor .

ntoskrnl.exe'nin ana giriş noktası, sisteme bağlı bazı başlatma işlemlerini gerçekleştirir, ardından sistemden bağımsız bir başlatmayı çağırır ve ardından boş bir döngüye girer.

kesinti işleme

Modern işletim sistemleri, cihazlardan bilgi beklemek için G/Ç bağlantı noktası sorgulaması yerine kesmeler kullanır.

Olarak 86 mimarisi , kesmeler Kesme Sevk Tablo (IDT) tarafından gerçekleştirilmektedir. Bir cihaz, bir kesme tetikler ve kesme bayrağı da (IF) ' register FLAGS ayarlanır, bu da tercüme edilmiş olan için kesme numarasına karşılık gelen tablo girişi bir kesme işleyicisi için işlemcinin donanım bakır IRQ'ya tarafından PIC cips, veya daha modern donanımlarda APIC . Kesme işleyicileri, genellikle, işlemeden önce kayıt durumunun bazı alt kümelerini kaydeder ve bittiğinde bunları orijinal değerlerine geri yükler.

Kesinti tablosu, donanım kesintileri, yazılım kesintileri ve istisnalar için işleyiciler içerir. Bazı için IA-32 çekirdeğin alternatifler, işleyici (var olan birçok olan) kesme böyle bir yazılım bir örneği 2E onun IDT tablo girişi olan 16 ( onaltılı , 46 ondalık kullanılan) montaj dili olarak INT 2EHiçin sistem çağrıları . Gerçek uygulamada giriş , ( Microsoft tarafından yayınlanan sembol bilgilerine göre) adlı bir dahili alt yordama işaret eder . Yeni sürümler için yararlanarak farklı mekanizmalar talimat ve x86-64 talimat yerine kullanılmaktadır. KiSystemServiceSYSENTER SYSCALL

NT'nin kesme işlemesinin dikkate değer bir özelliği, kesmelerin, kesme bayrağı aracılığıyla tüm IRQ'ları devre dışı bırakmak yerine, önceliklerine ("IRQL" olarak adlandırılır) göre genellikle koşullu olarak maskelenmesidir. Bu, çeşitli çekirdek bileşenlerinin, çevre birimlerinin ve diğer aygıtların hizmetlerini zorunlu olarak engellemeden kritik işlemleri yürütmesine izin verir.

Bellek yöneticisi

Microsoft Windows, sanal adres alanını iki bölgeye ayırır . Sıfırdan başlayan alt kısım, her işlem için ayrı ayrı başlatılır ve hem kullanıcı hem de çekirdek modundan erişilebilir. Uygulama programları, kullanıcı modunda çalışan süreçlerde ve tedarik kodunda çalışır. Üst kısma yalnızca çekirdek modundan erişilebilir ve bazı istisnalar dışında, sistem genelinde yalnızca bir kez başlatılır. Ntoskrnl.exe, diğer birkaç çekirdek modu bileşeni gibi bu bölgeye eşlenir. Bu bölge ayrıca, çekirdek modu yığınları ve dosya sistemi önbelleği gibi çekirdek modu kodu tarafından kullanılan verileri de içerir.

Erişim ayrıcalığına göre segmentlerin başlangıcı ve bitişi
Kemer MmEn YüksekKullanıcıAdresi MmSystemAralığıBaşlangıç
x86 0x7fffffff 0x80000000
KOL 0x7fffffff 0x80000000
x86-64 0x000007ff'ffffffff 0xffff8000'00000000

Tüm fiziksel bellek (RAM) adres aralığı birçok küçük (genellikle 4 KB) bloğa bölünmüştür. Her bloğun birkaç özelliği , işletim sistemi tarafından yönetilen ve işlemcinin donanımı tarafından erişilen, sayfa tablosu girişleri adı verilen yapılarda depolanır . Sayfa tabloları bir ağaç yapısında düzenlenir ve üst düzey tablonun fiziksel sayfa numarası kontrol kaydı 3'te (CR3) saklanır.

Kayıt

Windows Kayıt Defteri, işletim sistemi ve uygulamalar gibi diğer yazılımlar için yapılandırma ve ayar bilgileri için bir havuzdur. Küçük dosyalar için optimize edilmiş bir dosya sistemi olarak düşünülebilir. Ancak, dosya sistemi benzeri anlambilim yoluyla değil, çekirdek modunda uygulanan ve kullanıcı moduna maruz bırakılan özel bir API kümesi aracılığıyla erişilir.

Kayıt defteri, "kovan" adı verilen birkaç farklı dosya olarak diskte depolanır. Biri, Sistem kovanı, önyükleme sırasında erken yüklenir ve o sırada gereken yapılandırma bilgilerini sağlar. Yazılıma özel ve kullanıcıya özel veriler sağlayan ek kayıt defteri kovanları, sırasıyla sistem başlatmanın sonraki aşamalarında ve kullanıcı oturum açma sırasında yüklenir.

Sürücüler

Diskten yüklenecek sürücülerin listesi Services, SYSTEMkayıt defteri kovanındaki geçerli kontrol kümesinin anahtarının anahtarından alınır . Bu anahtar, aygıt sürücülerini, çekirdek işlemlerini ve kullanıcı işlemlerini depolar. Hepsi topluca "hizmetler" olarak adlandırılır ve hepsi aynı yerde karışık olarak depolanır.

Başlatma sırasında veya sürücü yükleme talebi üzerine, çekirdek, çekirdek hizmetleri olarak etiketlenen hizmetleri arayan bu ağaçtan geçer.

Ayrıca bakınız

Notlar

Referanslar

daha fazla okuma

  • Tanenbaum, Andrew S. (2008). Modern İşletim Sistemleri (3. baskı). Upper Saddle River, NJ: Pearson Prentice Hall . P. 829. ISBN 978-0136006633.
  • Bruce Dang; Alexandre Gazete; Elias Bachaalany (2014). Pratik Tersine Mühendislik: x86, x64, ARM, Windows Çekirdeği, Tersine Çevirme Araçları ve Gizleme . Wiley . P. 384. ISBN'si 978-1118787311.

Dış bağlantılar