Interested Article - Архитектура Windows NT
- 2020-09-03
- 1
Архитектура Windows NT присуща семейству операционных систем (ОС) на ядре Windows NT . Это следующие ОС: Windows NT 3.1 , Windows NT 3.5 , Windows NT 3.51 , Windows NT 4.0 , Windows 2000 , Windows XP , Windows Server 2003 , Windows Vista , Windows Server 2008 , Windows 7 , Windows 8 , Windows 10 и Windows 11 .
Все они являются операционными системами с вытесняющей многозадачностью , разработаны для работы как с однопроцессорными, так и с симметричными мультипроцессорными компьютерами . Для обработки запросов ввода-вывода используется пакетноуправляемый ввод-вывод, который применяет пакеты запросов ввода\вывода (IRP) и асинхронный ввод-вывод.
Архитектура Windows NT имеет модульную структуру и состоит из двух основных уровней — компоненты, работающие в режиме пользователя, и компоненты режима ядра. Программы и подсистемы, работающие в режиме пользователя, имеют ограничения на доступ к системным ресурсам. Режим ядра имеет неограниченный доступ к системной памяти и внешним устройствам. Ядро системы NT называют гибридным ядром или макроядром. Архитектура включает в себя само ядро, уровень аппаратных абстракций (HAL), драйверы и ряд служб (Executives), которые работают в режиме ядра (Kernel-mode drivers) или в пользовательском режиме (User-mode drivers) .
Пользовательский режим Windows NT состоит из подсистем, передающих запросы ввода-вывода соответствующему драйверу режима ядра посредством менеджера ввода-вывода. Есть две подсистемы на уровне пользователя: подсистема окружения (запускает приложения, написанные для разных операционных систем) и интегрированная подсистема (управляет особыми системными функциями от имени подсистемы окружения). Режим ядра имеет полный доступ к аппаратной части и системным ресурсам компьютера.
Режим пользователя
Режим пользователя состоит из подсистем, которые передают запросы ввода-вывода соответствующему драйверу режима ядра посредством менеджера ввода-вывода. Уровень пользователя состоит из двух подсистем — подсистемы окружения (Environment) и интегральной подсистемы (Integral).
Подсистема окружения разработана для запуска приложений, написанных для разных типов операционных систем. Ни одна из подсистем окружения не имеет прямого доступа к аппаратной части компьютера. Доступ к ресурсам памяти происходит посредством Менеджера виртуальной памяти, который работает в режиме ядра. Также приложения запускаются с меньшим приоритетом, чем процессы режима ядра.
Подсистема окружения состоит из следующих подсистем — подсистема Win32, подсистема OS/2 и подсистема POSIX . Подсистема окружения Win32 запускает 32-разрядные Windows-приложения. Она содержит консоль и поддержку текстового окна, обработку ошибок для всех других подсистем окружения. Поддерживает VDM (Virtual DOS Machine), которая позволяет запускать 16-разрядные DOS и Windows- (Win16) приложения. VDM запускается в своем собственном адресном пространстве и эмулирует систему MS-DOS, запущенную на компьютере с процессором Intel 80486. Программы Win16 запускаются в режиме Win16 VDM. Каждая программа запускается в одном процессе с использованием одного адресного пространства, но для каждой программы используется свой отдельный поток. Однако Windows NT позволяет запускать Win16-программы в отдельных Win16 VDM-процессах, реализуя вытесняющую многозадачность. Процесс подсистемы окружения Win32 — csrss.exe также включает в себя функциональность менеджера окон, то есть обрабатывает входящие события, такие, как нажатие клавиш клавиатуры и мыши, и передает их на обработку соответствующим приложениям. Каждое приложение само производит перерисовку окон в ответ на эти сообщения.
Подсистема окружения OS/2 поддерживает неграфические 16-разрядные приложения операционной системы OS/2 и эмулирует систему OS/2 2.1.x.
Подсистема окружения POSIX поддерживает приложения, написанные в соответствии со стандартом POSIX.1.
Интегрированная подсистема (Integral subsystem) следит за некоторыми функциями операционной системы от имени подсистемы окружения. Состоит из подсистемы безопасности, службы рабочей станции и службы сервера. Служба безопасности обращается с маркерами доступа , разрешает или запрещает доступ к учётной записи пользователя, обрабатывает запросы авторизации и инициирует процесс входа пользователя в систему. Служба Рабочая станция обеспечивает доступ компьютера к сети — является API для сетевого редиректора (ПО, эмулирующее доступ к удаленной файловой системе как к локальной). Служба Сервер позволяет компьютеру предоставлять сетевые сервисы.
Режим ядра
Режим ядра Windows NT имеет полный доступ к аппаратной части компьютера и системным ресурсам. Работает в защищенной области памяти. Управляет памятью и взаимодействием с аппаратной частью. Предотвращает доступ к критическим областям памяти со стороны приложений и служб пользовательского режима. Для выполнения подобных операций процесс пользовательского режима должен попросить режим ядра выполнить её от своего имени.
Архитектура x86 поддерживает 4 уровня привилегий — от 0 до 3, но используются только 0-й и 3-й уровень. Режим пользователя использует уровень 3, а режим ядра — 0. Это было сделано для возможности переноса на платформу RISC , которая использует только два уровня привилегий. Режим ядра состоит из исполнительных служб, которые представляют собой различные модули, выполняющие определённые задачи, драйвера ядра, само ядро и уровень аппаратных абстракций HAL.
Исполнительная подсистема
Работает с вводом-выводом, менеджером объектов, управлением над процессами и безопасностью. Неофициально делится на несколько подсистем — менеджер кэша, менеджер конфигурации, менеджер ввода/вывода, вызов локальных процедур, менеджер памяти, монитор безопасности. Системные службы, то есть системные вызовы, реализованы на этом уровне, за исключением нескольких вызовов, которые вызывают непосредственно ядро для большей производительности. В данном контексте термин «служба» относится к вызываемым подпрограммам, или набору вызываемых подпрограмм. Они отличаются от служб, выполняемых в режиме пользователя, которые в какой-то мере являются аналогом демонов в UNIX-подобных системах.
Менеджер объектов
Это исполнительная подсистема, к которой обращаются все остальные модули исполнительной подсистемы, в частности, системные вызовы, когда им необходимо получить доступ к ресурсам Windows NT. Менеджер объектов служит для уменьшения дублирования объектов, что может привести к ошибкам в работе системы. Для менеджера объектов каждый ресурс системы является объектом — будь то физический ресурс типа периферийного устройства, файловой системы или логический ресурс — файл и др. Каждый объект имеет свою структуру, или тип объекта.
Создание объекта делится на две стадии — создание и вставка. Создание — создается пустой объект и резервируются необходимые ресурсы, например, имя в пространстве имен. Если создание пустого объекта произошло успешно, то подсистема, ответственная за создание объекта, заполняет его. Если инициализация успешна, то подсистема заставляет менеджер объектов произвести вставку объекта — то есть сделать его доступным по своему имени или дескриптору.
Примечания
- . Дата обращения: 20 августа 2009. 4 мая 2009 года.
- 2020-09-03
- 1