Подсистемы окружения в Windows

Над executive надстраиваются процессы пользовательского режима, обеспечивающие исполнение программ, разработанных для других ОС.

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

Окружение MS-DOSобеспечивается приложением Win32, называемым Virtual Dos machine (VDM),процессом пользовательского уровня, для которого поддерживается страничная организация и диспетчеризация, как и для всех других потоков.

Окружение для 16-битовых Windowsобеспечивается VDM, которая содержит подсистему Windows on Windows. Последняя предоставляет процедуры ядра Windows 3.1 для менеджера окон и функций GDI.

Подсистема POSIXспроектирована для исполнения POSIX-приложений, следующих POSIX.1 – стандарту, который базируется на модели UNIX.

Подсистема OS/2выполняет OS/2 - приложения.

Подсистема входа и безопасностиаутентифицирует пользователей, входящих в систему Windows . Требуется, чтобы пользователи имели учетную запись с логином и пароль. Пакет аутентификации подсистемы безопасности аутентифицирует всех пользователей, которые пытаются осуществить доступ к какому-либо объекту системы. Windows использует Kerberosкак пакет аутентификации по умолчанию.

Ключевые термины

Plug-and-Play (PnP)– механизм автоматического распознавания изменений в конфигурации оборудования и адаптации к ним (установки соответствующих драйверов).

Virtual Dos Machine (VDM)- процесс пользовательского уровня, обеспечивающий совместимость с приложениями MS-DOS.

Блокировщик (spin lock, буквально – вертящийся замок )– системный механизм синхронизации, используемый для взаимного исключения процессов ядра Windows.

Исполнительная подсистема (executive) –основная часть ядра Windows, исполняемая в защищенном режиме, реализующая базовые системные сервисы.

Локальный вызов процедуры (LPC)– системный механизм вызова процедур Windows, передающий запросы и результаты между клиентским и серверным процессами на локальной машине; используется для запросов к сервисам различных подсистем ОС.

Объект-диспетчер- системный объект в Windows, управляющий диспетчеризацией и синхронизацией.

Объектная ссылка (object handle)- ссылка на системный объект ядра Windows.

Управляющий объект- системный объект Windows, управляющий асинхронным вызовом процедуры, обработкой прерывания, нотификацией об электропитании или профилированием.

Уровень абстрагирования от аппаратуры (hardware abstraction layer, HAL)– динамически линкуемая библиотека Windows, инкапсулирующая код, зависящий от конкретного процессора, - тем самым обеспечивающая независимость от аппаратуры всего остального кода Windows.

Краткие итоги

Windows / XP / 2003 / 2008 / 7 – новейшая линия в развитии ОС Windows, которой предшествовало более чем 20-летнее развитие Windows от графической оболочки в среде MS DOS до наиболее популярной в мире операционной системы. Windows – объектно-ориентированная ОС, основными целями разработки которой являются переносимость, безопасность, соответствие POSIX, поддержкамногопроцессорности, расширяемость, поддержка интернационализации, совместимость приложеннй с MS DOS и первыми версиями Windows. Использует архитектуру микроядра.

Первой ОС в новой линии развития Windows стала Windows NT, выпущенная в середине 1990-х гг. Windows NT, 2000 и более новые версии Windows имеют общую кодовую базу – ядро ОС.

Windows написана на C и C++. Код, зависящий от процессора, выделен в специальный APIhardware abstraction layer (HAL).

Архитектура Windows - многоуровневая. В защищенном режиме исполняется ядро, исполнительная подсистема ядра – executive, реализующая базовые системные сервисы, и HAL. Над этими компонентами надстраиваются подсистемы пользовательского режима, эмулирующие различные ОС и обеспечивающие реализацию безопасности.

Ядро Windows разработано в объектно-ориентированном стиле и использует два набора системных объектов – объекты-диспетчеры и управляющие объекты.

Ядро поддерживает процессы и потоки. Используется гибкая система приоритетов, включающая поддержку потоков реального времени и разделения времени. Процессы реального времени планируются как softreal-time (без обязательности выдерживания фиксированного интервала времени ответа).

Ядро обеспечивает обработку прерываний и системный механизм исключений. Для синхронизации процессов ядра используются блокировщики типа spin locks.

Менеджер системных объектов обеспечивает генерацию системных объектных ссылок (object handles) и выполнение базовых операций над объектами. Поддерживается именование объектов и объекты –символические ссылки. Каждый объект защищен списком управления доступом.

Для реализации виртуальной памяти используется двухуровневая таблица страниц с размером страницы 4 килобайта. Используются файлы откачки.

Для системных вызовов процедур используется механизм LPC (local procedure call), обеспечивающий передачу сообщений или ссылок на общие области памяти.

Менеджер ввода-вывода поддерживает синхронные и асинхронные операции, тайм-ауты для драйверов, кэширование ввода-вывода, использование файлов, отображаемых в память.

Монитор безопасности использует маркеры безопасности процессов и списки управления доступом к объектам для авторизации.

Менеджер PnP отслеживает изменения в конфигурации и установку соответствующих драйверов новых устройств.

Подсистемы окружения Windows: подсистема Win32; DOS Virtual Machine; подсистема Windows on Windows (исполнение 16-битовых приложений Windows); подсистема POSIX, подсистема OS/2; подсистема входа и безопасности (управляет учетными записями пользователей, используя Kerberos-аутентификацию по умолчанию).

Вопросы для самопроверки:

1. В каком качестве была реализована первая версия Windows и в какой среде она работала?

2. В чем принципиальная новизна подхода к реализации Windows NT?

3. Назовите все операционные системы, являющиеся развитием Windows NT.

4. В чем новизна и каковы основные преимущества ОС Windows 95 / 98?

5. Каковы основные цели разработки Windows ?

6. На каких языках написана Windows ?

7. Как называется исполнительная подсистема ядра Windows и какие основные сервисы она реализует?

8. Каким образом достигнута минимальная зависимость кода Windows от аппаратуры?

9. С программами для каких ОС и стандартов обеспечивается совместимость в системе Windows ?

10. Какие компоненты Windows исполняются в защищенном, а какие – в пользовательском режиме?

11. Что такое подсистема в ОС Windows? Назовите все подсистемы ОС Windows.

12. Какие виды системных объектов использует ядро Windows?

13. В каких состояниях может находиться поток в Windows?

14. Какие классы процессов и потоков выделяются при планировании в Windows?

15. Какие механизмы используются для обработки ошибок в Windows?

16. Какие средства используются для синхронизации системных процессов ядра Windows?

17. Какие функции выполняет менеджер объектов исполнительной подсистемы ядра Windows?

18. Каким образом защищены системные объекты ядра Windows?

19. Как организована система виртуальной памяти и таблицы страниц в Windows?

20. Какой процедурный механизм коммуникации используется для системных процессов?

21. Какие функции выполняет менеджер ввода-вывода?

22. Какие системные структуры используются подсистемой безопасности для авторизации процессов?

23. Какие функции выполняет менеджер Plug-and-Play?

24. Какие подсистемы окружения для совместимости с другими ОС имеются в Windows?

25. Какой вид аутентификации используется в Windows?

Упражнения

1. Инсталлируйте новую версию Windows, имеющуюся в Вашем распоряжении (Windows 7, Vista и др.) и проанализируйте ее основные возможности для пользователей.

2. Используйте открытое академическое ядро Windows (WRK) и изучите по исходным кодам и опишите основные компоненты ядра Windows (executive и др.).

3. Поэкспериментируйте с запуском в новой версии Windows приложений для других ОС – MS DOS, Windows 3.1 и др.