Кіріспе

Windows NT ядросының бейнесі – Windows NT ядросының бір бөлігін қамтитын компьютерлік файл.

ntoskrnl.exe (Windows NT операциялық жүйесі ядросының атқарылатын файлының қысқартылған атауы), сондай-ақ ядролық бейне деп те аталады, Microsoft Windows NT ядросының ядролық және атқару қабаттарын қамтиды. Ол аппараттық абстракцияны, процестерді басқаруды және жадты басқаруды қамтамасыз етеді. Ядролық және атқару қабаттарынан басқа, ол кэш менеджерін, қауіпсіздік мониторын, жад менеджерін, жоспарлаушыны (диспетчерді) және «өлім экранының көгілдір түсін» (мәтін және кодтың бөліктері) қамтиды.

Шолу

x86 нұсқалары ntoskrnl.exe bootvid.dll, hal.dll және kdcom.dll-ге тәуелді (ntoskrnl.exe-нің x64 нұсқаларында осы dll-дер ядроға енгізілген, бұл өнімділікті жақсартады). Дегенмен, бұл туасты қосымша емес. Яғни, ntdll.dll-мен байланыстырылмаған. Оның орнына ntoskrnl.exe стандартты "бастау" кіру нүктесін қамтиды, ол архитектураға тәуелсіз ядроны инициализациялайтын функцияны шақырады. C орындалу уақыты объектілерінің статикалық көшірмесін қажет ететіндіктен, орындалатын файлдың көлемі әдетте 10 МБ шамасында болады. Windows XP және одан бұрынғы нұсқаларында Windows орнату көзі бір процессорлы жүйелерді, симметриялық мультипроцессорлы (SMP) жүйелерді, PAE бар және PAE жоқ процессорларды қолдау үшін төрт ядролық бейне файлын жібереді. Windows орнату жүйесі жүйенің бір процессорлы немесе көп процессорлы екенін анықтайды, содан кейін шешілген түр үшін ядролық бейненің PAE және PAE емес нұсқаларын орнатады. Көп процессорлы жүйеде орнату ntkrnlmp.exe және ntkrpamp.exe-ді орнатады, оларды тиісінше ntoskrnl.exe және ntkrnlpa.exe деп қайта атайды. Windows Vista-дан бастап Microsoft көп ядролы процессорлар нарыққа енгендіктен және PAE міндетті болғандықтан ядролық бейнелерді біріктіре бастады. + 32 биттік Windows ядролық файл атаулары Файл атауы SMP қолдайды PAE 32 биттік ядро ntoskrnl.exe ntkrnlmp.exe ✔ ntkrnlpa.exe ✔ ntkrpamp.exe ✔ ✔ 64 биттік ядро (x64 нұсқалары) Файл атауы SMP қолдайды 57 биттік VA ntkrnlmp.exe ✔ ntkrla57.exe ✔ ✔ ntoskrnl-дегі режімдер ntoskrnl-дің қай компонентінде анықталғанын көрсету үшін олардың атауларында префикстер қолданылады. Барлық функциялар ядродан экспортталмағандықтан, i немесе p әрпімен аяқталатын функция префикстері (мысалы, Mi, Obp, Iop) ішкі болып саналады және пайдаланушыларға қол жеткізуге болмайды. Бұл функциялар негізгі кодты қамтиды және осалдықтар, жоқ аргументтер және ерекше жағдайларды өңдеу сияқты маңызды тексерулерді жүзеге асырады. Төмендегі кестеде олардың кейбіреулері тізімделген. + NT функциясы префикстері Префикс Мағынасы Cc Файл жүйесі кэші Cm Конфигурация менеджері, Windows тіркелгісінің ядролық режим жағы Csr Win32 жүйелік процестерімен байланыс орнату үшін қолданылатын функциялар, csrss.exe (csrss – клиент/сервер орындалу уақытының ішкі жүйесі) Dbg Ақауларды жоюға көмектесетін функциялар, мысалы бағдарламалық үзіліс нүктесі Ex Windows executive, Ntoskrnl.exe-нің "сыртқы қабаты" Exp Windows executive жеке (Windows Executive-тің ішкі пайдалануына арналған режімдер) FsRtl Файл жүйесінің орындалу уақыты кітапханасы Io I/O менеджері Iop I/O менеджерінің ішкі және базалық коды Ke Негізгі ядролық режімдер Ki Ішкі ядролық режімдер Kx Тосқауылдарды басқару, семафорлар, спинлоктар, көп жіптілік және контексттік ауысу функциялары Ky Ішкі және тұспалдама функциялары, тұзақ кадрын жасайды және Kx префикстелген функцияларды шақырады Ks Kernel streaming Kx Сыртқы блок және семафор іске асыруларын алуға арналған ішкі функциялар Ldr NT-нің PE Executables жүктеуіші Ldrp PE жүктеуіші үшін ішкі базалық код, әдетте PE қайта орналастыру іске асыруы Lpc Жергілікті процедура шақыруы, ішкі, құжатталмаған, процестер аралық немесе пайдаланушы/ядролық хабарлама алмасу механизмі Lsa Жергілікті қауіпсіздік органы Mm Жад басқаруы Mi Жад басқару режімдері, жад менеджерінен тыс шақыру үшін экспортталмайды (i = ішкі) Nls Nls Native Language Support (код беттеріне ұқсас) Ob Объект менеджері Obp Объект менеджері үшін ішкі базалық код Pfx Префикс Po Жеңілдетілген қосылу және қуатты басқару Ps Процесс және жіп басқаруы (тапсырма басқаруы) Psp Тапсырма менеджері үшін ішкі базалық код Rtl Runtime кітапханасы, яғни, туасты қолданбалар пайдалана алатын көптеген қосымша функциялар, бірақ тікелей ядролық қолдауды қажет етпейді Rtlp Runtime кітапханасы жеке (тек ішкі пайдалану үшін) Se Қауіпсіздік менеджері, Win32 API-і үшін кіру белгісі Sep Қауіпсіздік менеджері үшін ішкі базалық код Vf Драйверді тексеруші Vi Драйверді тексеруші режімдері, драйверді тексерушіден тыс шақыру үшін экспортталмайды Zw Nt немесе Zw жүйелік шақырулар, ntdll.dll және ntoskrnl.exe-де жарияланған. ntdll.dll-ден пайдаланушы режимінде шақырғанда, бұл топтар шамамен бірдей болады; олар ядролық режимге кіріп, ntoskrnl.exe-дегі эквивалентті функцияны SSDT арқылы шақырады. Функцияларды ntoskrnl.exe-де тікелей шақырғанда (тек ядролық режимде ғана мүмкін), Zw нұсқалары ядролық режимді қамтамасыз етеді, ал Nt нұсқалары жоқ.

Бастапқылау

Кернел басқаруды алғанда, ол жүктеушіден struct түріндегі көрсеткішті алады. Бұл көрсеткіштің нұсқауында аппараттық жабдық туралы ақпарат, Windows тіркелгі файлына жол, кернелдің мінез-құлқына әсер ететін жегілу параметрлері немесе опциялар, сондай-ақ жүктеуші жүктеген файлдардың жолдары (SYSTEM Registry hive, nls символдар кодтау түрлендіруі және vga шрифті) болады. Бұл құрылымның анықтамасын кернел жөндеушісін пайдалану арқылы немесе Microsoft символдар базасынан жүктеу арқылы алуға болады. x86 архитектурасында кернел жүйені қорғалған режимде алады, GDT, IDT және TSS дайын күйде болады. Бірақ ол әрқайсысының мекенжайын білмейтіндіктен, PCR құрылымын толтыру үшін оларды біртіндеп жүктеуі керек. ntoskrnl.exe-нің негізгі кіру нүктесі жүйеге тәуелді инициализацияны орындайды, содан кейін жүйеге тәуелсіз инициализацияны шақырып, бос циклге кіреді.

Жүргізушілер

Дискіден жүктелетін драйверлер тізімі SYSTEM тіркелгісінің ағымдағы басқару жиынтығындағы Services кілтінен алынады. Бұл кілт құрылғы драйверлерін, ядро процестерін және пайдаланушы процестерін сақтайды. Олардың бәрі жиынтығында "қызметтер" деп аталады және бәрі бір орында араласып сақталады. Бастапқыда немесе драйверді жүктеу сұранысы кезінде ядро сол ағашты шарлап, ядролық қызметтер деп белгіленген қызметтерді іздейді.