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.dll
olmasa da bootvid.dll
, hal.dll
ve 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 .
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.
Ö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 2EH
iç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.
KiSystemService
SYSENTER
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.
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
, SYSTEM
kayı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.