MyTetra Share
Делитесь знаниями!
Подсистема Windows
Время создания: 06.01.2018 08:24
Раздел: Знания - Компьютер - OS - Windows
Запись: DuwazSandbox/mytetra/master/base/1515216240ptmm60ma3m/text.html на raw.githubusercontent.com

При наличии в каждой подсистеме всего кода для организации многооконного интерфейса и отображения ввода-вывод может привести к большому количеству (дублированных) системных функций, что негативно скажется на размере и производительности сисемы. Поскольку Windows была первичной подсистемой, разработчики поместили базовые функции в неё. И заставлять другие подсистемы (например, для отображения ввода-вывода) вызывать службы в подсистеме Windows.


Подсистема Windows состоит из след. основных компонентов:

1) Для каждого сеанса экземпляр процесса подсистемы среды (Csrss.exe) загружает три DLL-библиотеки (Basesrv.dll, Winsrv.dll, Csrsrv.dll), содержащие поддержку:

* создание и удаление процессов и потоков

* частей, поддерживающих процессы 16-разрядной виртуальной DOS-машины (VDM) (только для 32-разрядной версии Windows);

* Side-by-Side (SxS) сборок (Fusion) и манифестов;

* других разнообразных функций, например GetTempFile, DefineDosDevice, ExitWindowsEx и нескольких естественных функций поддержки языка.


2) Драйвер устройства режима ядра (Win32k.sys), включающий в себя:

* диспетчер окон, который управляет выводом окон, осуществляет экранный вывод, получает ввод с клавиатуры, мыши и других устройств и передает приложениям пользовательские сообщения;

* интерфейс графических устройств — Graphics Device Interface (GDI), представляющий собой библиотеку функций для устройств графического вывода. Он включает функции для рисования прямых линий, текста и фигур и для манипулирования графическими объектами;

* оболочки для поддержки набора DirectX, реализуемого в другом драйвере ядра (Dxgkrnl.sys).


3) Хост-процесс консоли — console host process (Conhost.exe), — предоставляющий поддержку для консольных (символьных) приложений.


4) DLL-библиотеки подсистем (например, Kernel32.dll, Advapi32.dll, User32.dll и Gdi32.dll), которые превращают документированные функции Windows API в соответствующие и большей частью недокументированные вызовы системных служб режима ядра в Ntoskrnl.exe и Win32k.sys.


5) Драйверы графических устройств для аппаратно-зависимых драйверов графических дисплеев, драйверов принтеров и драйверов видеомини-портов.


 
MyTetra Share v.0.59
Яндекс индекс цитирования