Архитектура ОС WINDOWS NT/2000/XP
Уровень HAL. Работа уровня HAL заключается в том, чтобы предоставить всей остальной операционной системе абстрактное аппаратное устройство, свободное от своих отличительных способностей. Эти устройства предоставляются в виде машинно-независимых служб, которые могут использоваться остальной ОС. Данный уровень создан, чтобы скрывать различия между различными устройствами. К службам уровня HAL относятся:
доступ к регистрам устройств;
адресация устройств;
обработка прерываний;
операции DMA;
управление таймерами и часами реального времени;
интерфейс SBIOS;
Уровень ядра ОС. Назначение ядра заключается в том, чтобы сделать систему ещё более независимым. Ядро построено на низкоуровневых службах слоя HAL. Программа планирования находится также в ядре. Данный уровень предоставляет абстракции более высокого уровня чем HAL. Кроме того, ядро поддерживает работу двух низкоуровневых объектов: управляющие объекты и объекты диспетчеризации (на основе этих объектов строятся все пользовательские объекты). Управляющие объекты — объекты, управляющие с-истемой, примитивные объекты процессов, объекты прерываний. Объекты диспетчеризации — семафоры, мьютексы, события, таймеры и другие объкты изменения состояния, которых могут ждать потоки.
Исполняющие системы. Исполняющая система на языке Си может быть легко перенесена на другую архитектуру, поскольку от неё не зависит. Исполняющая система состоит из 10 компонентов (цифра чисто условная), каждый из которых представляет собой набор процедур, работающих вместе для выполнения некоторых задач; между компонентами нет жёстких границ; компоненты могут вызывать друг друга:
Менеджер ввода\вывода: формирует общую систему для управления системами ввода\вывода;
Менеджер памяти: реализует архитектуру виртуальной памяти со страничной подкачкой по требованию;
Менеджер безопасности: реализует определённую политику безопасности удовлетворяющий требованиям;
Менеджер процесса: данный менеджер занимается поддержкой работы процессов, их созданием и уничтожением, но не планированием;
Менеджер объектов: отвечает за создание, управление, уничтожение объектов, реализует пространство имён объектов и управляет им;
Менеджер кэша: данный менеджер занимается кэшированием сохранённых блоков, к которым недавно было обращение;
Менеджер Plug and Play: определение и подключение новых устройств; существуе 2 режима работы данного менеджера: определение устройств на этапе загрузки системы, определение новых устройств здесь и сейчас;
Менеджер энергопотребления: управление энергопотреблением компьютера, в частности отключение монитора, жёстких дисков при продолжительном отсутствии взаимодействия с системой;
Менеджер конфигурации: управление реестром;
Менеджер локального вызова процедуры: данный менеджер предназначен для более эффективной работы системы во время переключений между режимом пользователя и режимом ядра.
Win32 GDI. Данный интерфейс предназначен для обеспечения работы пользовательского графического интерфейса.
Системные службы. Системные службы предоставляет интерфейс для работы с исполняющей системой. Системные службы представляет из себя набор служб, обеспечивающих взаимодействием между программами и ОС. Данный уровень принимает настоящие системные вызовы.
Драйвера устройств. Каждый драйвер может управлять одним или несколькими устройствами ввода\вывода. Существуют драйверы как для реально видимых устройств (клавиатура, мышь), так и для многих внутренних устройств.
Интерфейс Ntdll.dll. Данный интерфейс отвечает за переключение между режимом пользователя и режимом ядра.
Подсистемы программирования. Представляет собой набор API32 (API64). Список системных вызовов никогда не публикуется и меняется с каждым новым выпуском системы. Вместо этого опубликованы и полностью документированы функциональные вызовы WinAPI. Они представляют собой библиотечные процедуры, которые либо обращаются к системным вызовам, чтобы выполнить требуемую работу, либо, в некоторых случаях, выполняют работу прямо в пространстве пользователя. Вызовы Win32 не изменяются от версии к версии, однако добавляются новые. Философия WinAPI отлична от философии Unix. Философия WinAPI заключается в предоставлении всеобъемлющего интерфейса с возможностью выполнить одно и тоже действие несколькими способами (в Unix присутствует минимальный набор вызовов).
В задачи интерфейса WinAPI включается:
создание/управление/уничтожение процессами и потоками;
межпроцессное взаимодействие;
управление семафорами, мьютексами и событиями;
управление файлами (открытие/закрытие/чтение, файловый ввод/вывод);
вызовы безопастности;
и так далее (Большинство выводов WinAPI относятся к графическим функциям).