Въпрос 2 Интерфейсна библиотека
Ntdll.dll е специална библиотека за поддръжка на системата, необходима при използване на DLL на подсистема. Съдържа функции от два вида:
■ изпращания на системни услуги до изпълнителни системни услуги на Windows.
■ функции за вътрешна поддръжка, използвани от подсистемите, DLL на подсистемите и други компоненти на операционната система.
Първата група функции осигурява интерфейс към услугите за изпълнение на Windows, които могат да бъдат извикани от потребителски режим. Има повече от 200 такива функции, например NtCreateFile и др. Повечето от тях са достъпни чрез Windows API (някои от тях обаче са предназначени само за използване в самата операционна система).
За всяка от тези функции има входна точка в Ntdll със същото име. Кодът във функцията съдържа специфична команда за хардуерна архитектура за превключване в режим на ядрото за извикване на системния мениджър на услуги, който след проверка на някои параметри извиква реалната услуга за режим на ядро от Ntoskrnl.exe.
Ntdll включва много функции за поддръжка, като например функции за взаимодействие с процеса на подсистемата на Windows (функции, които започват с Csr). Има и диспечер на APC в потребителски режим (извикване на асинхронна процедура) и диспечер на изключения.
Подсистеми на околната среда
Подсистема на Windows
Тази подсистема се състои от следните основни елементи.
■ Процесът на подсистемата за околната среда (Csrss.exe), осигуряващ:
■ поддръжка за конзолни (текстови) прозорци;
■ поддръжка за създаване и премахване на процеси и нишки;
■ частична поддръжка за 16-битови виртуални DOS процесигуми (VDM);
■ много други функции като GetTempFile, DefineDosDevice, както и няколко функции за поддържане на естествен език.
■ Драйвер в режим на ядро (Win32k.sys), който включва:
■ мениджърът на прозорци, който контролира изобразяването и показването на прозорци на екрана, приема входни данни от клавиатурата, мишката и други устройства и предава потребителски съобщения на приложения.
■ Интерфейс на графичното устройство (GDI) - е библиотекаku функции за графични изходни устройства. GDI включва функции за манипулиране на графики и изчертаване на линии, текст и форми.
■ DLL-модули на подсистеми (Kernel32.dll, Advapi32.dll, User32.dll и Gdi32.dll), които превръщат повикванията на документирани функции на Windows API в извиквания на съответните (и най-вече без документи)н) услуги в режим на ядро от Ntoskrnl.exe и Win32k.sys.
Преди Windows NT 4, мениджърът на прозорци и графичните услуги бяха част от процеса на подсистема Windows в потребителския режим. В Windows NT 4 по-голямата част от кода, отговорен за работа с прозорци и графики, се пренася.сено от контекста на процес на подсистема на Windows в набор от извикващи се сървъриВиза, изпълнена в режим на ядро (във файла Win32k.sys). Този трансфер е направен главно за подобряване на цялостната производителност на системата.ние Отделен сървърен процес, съдържащ графичната подсистема, изискваше множество превключватели на контекст на нишки и процеси, които отнеха голям брой процесорни цикли и значителниресурси на паметта, въпреки че архитектурата на източника е силно оптимизиранаобиколки на тази подсистема.
Например всяка клиентска нишка се обслужва от сдвоена сървърна нишка в процес на подсистема на Windows в очакване на заявки от клиентанебесен поток. За прехвърляне на съобщения между нишки, специалниСпециален механизъм за взаимодействие между процесите, така нареченият бърз LPC (fast LPC). За разлика от нормалното превключване на контекста на нишка, прехвърлянето на данни между сдвоени потоци чрез бърз LPC не предизвиква пренасрочване на събития в ядрото, което позволява на сървърния софтуертокът се изпълнява по време на оставащия отрязък от време на клиентската нишка (извън опашката, дефинирана от планировчика). Освен това, за бързо neПри изпращане на големи структури от данни като растерни изображения се използват буфери за споделена памет и клиентите имат директен (само за четене) достъп до ключовите структури от данни на сървъра, свеждайки до минимум необходимостта от чести превключвания на контекст между клиенти и сървъри.вяра Windows.