Кіріспе
Windows NT ядросының бейнесі – Windows NT ядросының бір бөлігін қамтитын компьютерлік файл.
a computer file that contains a part of the Windows NT kernel
ntoskrnl. exe (short for Windows NT operating system kernel executable), also known as the kernel image, contains the kernel and executive layers of the Microsoft Windows NT kernel, and is responsible for hardware abstraction, process handling, and memory management. In addition to the kernel and executive layers, it contains the cache manager, security reference monitor, memory manager, scheduler (Dispatcher), and blue screen of death (the prose and portions of the code).
ntoskrnl.exe (Windows NT операциялық жүйесі ядросының атқарылатын файлының қысқартылған атауы), сондай-ақ ядролық бейне деп те аталады, Microsoft Windows NT ядросының ядролық және атқару қабаттарын қамтиды. Ол аппараттық абстракцияны, процестерді басқаруды және жадты басқаруды қамтамасыз етеді. Ядролық және атқару қабаттарынан басқа, ол кэш менеджерін, қауіпсіздік мониторын, жад менеджерін, жоспарлаушыны (диспетчерді) және «өлім экранының көгілдір түсін» (мәтін және кодтың бөліктері) қамтиды.
a computer file that contains a part of the Windows NT kernel
ntoskrnl. exe (short for Windows NT operating system kernel executable), also known as the kernel image, contains the kernel and executive layers of the Microsoft Windows NT kernel, and is responsible for hardware abstraction, process handling, and memory management. In addition to the kernel and executive layers, it contains the cache manager, security reference monitor, memory manager, scheduler (Dispatcher), and blue screen of death (the prose and portions of the code).
Шолу
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 нұсқалары жоқ.
Routines in ntoskrnl use prefixes on their names to indicate in which component of ntoskrnl they are defined. Since not all functions are being exported by the kernel, function prefixes ending in i or p (such as Mi, Obp, Iop) are internal and not supposed to be accessed by the user. These functions contain the core code and implements important checks, such as for vulnerabilities, missing arguments and exception handling. The following table lists some of them. + NT function prefixes Prefix Meaning Cc File system cache Cm Configuration Manager, the kernel mode side of Windows Registry Csr Functions used to communicate with the Win32 subsystem process, csrss. exe (csrss stands for client/server runtime sub system) Dbg Debugging aid functions, such as a software break point Ex Windows executive, an "outer layer" of Ntoskrnl. exe Exp Windows executive private (routines intended for the internal use of Windows Executive) FsRtl File system runtime library Io I/O managerIopInternal and base code for the I/O Manager Ke Core kernel routines Ki Internal core routines Kx Interrupt handling, semaphores, spinlocks, multithreading and context switching functionsKyInternal and stub functions that generate a trap frame and call Kx prefixed functions Ks Kernel streamingKxInternal functions for acquiring spinlock and semaphore implementations Ldr NT's PE Executables loaderLdrpInternal base code for the PE Loader, usually just PE relocate implementation. Lpc Local Procedure Call, an internal, undocumented, interprocess or user/kernel message passing mechanism Lsa Local Security Authority Mm Memory management Mi Memory management routines not exported for call outside the memory manager (i = internal) Nls Nls for Native Language Support (similar to code pages). Ob Object ManagerObpInternal base code for the Object Manager Pfx Prefix handling Po Plug and play and power management Ps Process and thread management (task management)PspInternal base code for the Task manager Rtl Runtime library, i. e., many utility functions that can be used by native applications, yet don't directly involve kernel support Rtlp Runtime library private (for internal use only) Se Security Manager, access token for the Win32 APISepInternal base code for the Security Manager Vf Driver Verifier Vi Driver Verifier routines not exported for call outside the driver verifier Zw Nt or Zw are system calls declared in ntdll. dll and ntoskrnl. exe. When called from ntdll. dll in user mode, these groups are almost exactly the same; they trap into kernel mode and call the equivalent function in ntoskrnl. exe via the SSDT. When calling the functions directly in ntoskrnl. exe (only possible in kernel mode), the Zw variants ensure kernel mode, whereas the Nt variants do not.
Бастапқылау
Кернел басқаруды алғанда, ол жүктеушіден struct түріндегі көрсеткішті алады. Бұл көрсеткіштің нұсқауында аппараттық жабдық туралы ақпарат, Windows тіркелгі файлына жол, кернелдің мінез-құлқына әсер ететін жегілу параметрлері немесе опциялар, сондай-ақ жүктеуші жүктеген файлдардың жолдары (SYSTEM Registry hive, nls символдар кодтау түрлендіруі және vga шрифті) болады. Бұл құрылымның анықтамасын кернел жөндеушісін пайдалану арқылы немесе Microsoft символдар базасынан жүктеу арқылы алуға болады. x86 архитектурасында кернел жүйені қорғалған режимде алады, GDT, IDT және TSS дайын күйде болады. Бірақ ол әрқайсысының мекенжайын білмейтіндіктен, PCR құрылымын толтыру үшін оларды біртіндеп жүктеуі керек. ntoskrnl.exe-нің негізгі кіру нүктесі жүйеге тәуелді инициализацияны орындайды, содан кейін жүйеге тәуелсіз инициализацияны шақырып, бос циклге кіреді.
Жүргізушілер
Дискіден жүктелетін драйверлер тізімі SYSTEM тіркелгісінің ағымдағы басқару жиынтығындағы Services кілтінен алынады. Бұл кілт құрылғы драйверлерін, ядро процестерін және пайдаланушы процестерін сақтайды. Олардың бәрі жиынтығында "қызметтер" деп аталады және бәрі бір орында араласып сақталады. Бастапқыда немесе драйверді жүктеу сұранысы кезінде ядро сол ағашты шарлап, ядролық қызметтер деп белгіленген қызметтерді іздейді.