Пользовательские процессы

Операционная система W2K поддерживает четыре основных типа пользовательских процессов:

• Специальные процессы системной поддержки. К таким процессам относятся служебные программы, которые не вошли в операционную систему W2K, например процесс входа в систему и диспетчер сессий.

• Серверные процессы. Другие сервисы W2K, такие, как журнал регистрации событий.

• Подсистемы среды. Предоставляют приложениям пользователя сервисы W2K, обеспечивая таким образом среду операционной системы. Поддерживаются такие подсистемы, как Win32, POSIX и OS/2. В каждую подсистему среды входят динамически компонуемые библиотеки, преобразующие вызовы приложений пользователя в вызовы операционной системы W2K.

• Приложения пользователя. Могут быть одного из пяти типов: Win32, POSIX, OS/2, Windows 3.1 или MS-DOS.

Операционная система W2K поддерживает приложения, написанные для W2K, Windows 98 и нескольких других операционных систем. Эта поддержка обеспечивается с помощью единой и компактной исполнительной системы через защищенные подсистемы среды, к которым относятся части операционной системы W2K, взаимодействующие с конечным пользователем. Каждая из подсистем является отдельным процессом, а исполнительная система защищает адресное пространство этих подсистем от вмешательства других подсистем и приложений. Защищенная подсистема предоставляет пользователю графический интерфейс или интерфейс командной строки, который определяет внешний вид и наполнение операционной системы для конечного пользователя. Кроме того, каждая защищенная подсистема обеспечивает свой API для каждой из операционных сред. Это означает, что приложения, разработанные для определенной операционной среды, могут быть запущены W2K в неизменном виде, так как им будет предоставлен тот интерфейс операционной системы, для которого они были созданы. Так, 16-битовые приложения для операционной системы OS/2 можно запускать в операционной системе W2K без каких-либо изменений. Более того, поскольку W2K разработана независимой от платформы (что обеспечивается наличием уровня аппаратных абстракций), защищенные подсистемы и приложения, которые они поддерживают, должны сравнительно легко переноситься с одной аппаратной платформы на другую. Во многих случаях для этого нужна лишь обычная перекомпиляция.