- •Режимы ядра и пользователя Windows
- •Процесс, контекст процесса и потоки
- •Архитектура Windows nt
- •Уровень аппаратных абстракций
- •Диспетчер объектов
- •2. Монитор ссылок безопасности
- •3. Диспетчер процессов
- •4. Подсистема Plug and Play
- •6. Диспетчер виртуальной памяти
- •7. Диспетчер кэша
- •5. Диспетчер энергопитания
- •1. Программный интерфейс приложений ввода-вывода (I/o api)
- •2. Диспетчер ввода-вывода (I/o Manager)
- •3. Драйверы файловых систем
- •Графическая подсистема
- •Пользовательский режим
Архитектура Windows nt
Операционная система Windows NT проектировалась как модульная, многоуровневая архитектура, поддерживающая расширения за счет добавлениеновых функций. Архитектура позволяет добавлять поддержку новых устройств и новых возможностей, например шифрующей файловой системы(EFS). Архитектура системы позволяет добавлять поддержку приложений, которые Основаны на других операционных системах, например OS/2 или P0SIX.
На рис. 1 показана высокоуровневая архитектура Windows NT.
рис 1. Архитектура системы Windows NT
Режим ядра содержит все привилегированные процессы, которые выполняются на уровне 0 архитектуры Intel x86. Режим ядра Windows NT состоит из трех основных подсистем.
Уровень аппаратных абстракций.
Ядро Windows NT.
Выполняемый модуль Windows NT.
Уровень аппаратных абстракций
Уровень аппаратных абстракций (Hardware Abstraction Layer — HAL) обеспечивает защиту данных за счет управления доступом к аппаратным ресурсам. Это единственный модуль операционной системы Windows NT, который содержит код, зависящий от аппаратного обеспечения (или от архитектуры процессора).
Ядро Windows NT
Ядро Windows NT представляет собой следующий уровень после уровня аппаратных абстракций, который обеспечивает работу выполняемого модуля Windows NT
Ядро системы выполняет следующие основные функции:
помощь в синхронизации данных;
планирование выполнения потоков и процессов;
управление прерываниями и исключениями;
восстановление системы после аварийных ситуаций, например после отказа питания.
Данные ядра всегда находятся в оперативной памяти и никогда не выгружаются на диск, как это происходит с пользовательскими приложениями. Данные ядра не могут быть вытеснены другими данными.
Это значит, что выполнение кода ядра не может быть прервано ради другого кода, если только ядро не выполняет это самостоятельно. Ядро представляет собой объектно-ориентированную систему, в которой используется два класса объектов.
1. Объекты-диспетчеры, которые позволяют управлять потоками и процессами и применяются для
синхронизации различных потоков/процессов.
2. Объекты управления, например асинхронные вызовы процедур (asynchronous procedure calls — АРС) и процедуры обслуживания прерываний (interrupt service routines — ISR)
Выполняемый модуль Windows NT
Выполняемый модуль (Windows NT Executive) обеспечивает работу ключевых функций, включая программные интерфейсы приложений (API), которые позволяют потокам из пользовательского режима в Windows NT взаимодействовать с ядром Windows NT для запроса на предоставление услуг. Как и ядро Windows NT, выполняемый модуль не может быть выгружен из памяти.
Модуль управляет несколькими операциями, включая ввод-вывод данных, поддержку работы системы безопасности, межпроцессное взаимодействие, управление памятью и процессами, поддержку интерфейса Plug and Play, управление питанием, файловыми системами, объектами и графическими устройствами. Весь выполняемый модуль Windows NT размещен в одном файле — ntoskrnl.exe.
Для выполнения задач модуля создается лишь несколько потоков. Обычно системный процесс из пользовательского режима запрашивает запуск службы, и модуль будет выполняться в контексте запросившего процесса. Примером потока, который создается выполняемым модулем, может служить поток сброса страниц на диск.
Выполняемый модуль Windows NT, в свою очередь, содержит следующие компоненты:
диспетчер объектов;
монитор ссылок безопасности;
диспетчер процессов;
подсистема Plug and Play;
диспетчер энергопитания;
диспетчер виртуальной памяти;
диспетчер' кэша.
