Полное руководство по Microsoft Windows XP
Шрифт:
На определенном этапе Windows XP завершает процедуру загрузки драйверов и приступает к загрузке служб. На экране появляется экран для регистрации пользователя при входе в систему, характерный при инициализации операционной системой функций графического пользовательского интерфейса (Graphical User Interface – GUI), в частности программы Проводник. Вы можете зарегистрироваться в системе и продолжить работу.
Компоненты Windows XP
Как отмечалось выше, Windows XP относится к числу модульных операционных систем. В предшествующих разделах уже обсуждалось несколько файлов (в том числе те, которые обычно помещаются на жесткий диск), которые, в общем случае, подразделяются на несколько типов и подсистем. Ниже приводится описание различных подсистем Windows XP в объеме, достаточном для понимания их роли и взаимосвязей. Однако такое описание не более чем обзор и не претендует на анализ различных нюансов архитектуры Windows XP.
Новое ядро системы
Архитектура Windows XP состоит из нескольких основных компонентов (рис. 11.4), причем каждый компонент отвечает за определенный раздел среды операционной системы. Например, уровень API создает возможность для взаимодействия приложений с Windows XP, в частности с системой управления файлами. На практике подготовка приложения Windows XP невозможна без привлечения уровня API.
Рисунок 11.4. Операционная
Другими словами, специалисты Microsoft создали Windows XP в виде многоуровневой структуры, уровни которой представлены системными службами. Каждый уровень обеспечивает собственный тип поддержки и добавляет свои функции и возможности к общей совокупности функций. Организация взаимодействия между уровнями оказывается весьма важным вопросом, поскольку она определяет возможности системы в целом. Работа с уровнями в определенном смысле напоминает систему заказа по фирменному каталогу, когда человек заказывает из дома (пользовательский режим системы) те или иные продукты. Для заказа ему приходится направлять запрос по телефону, а центр поддержки каталога (обслуживание в базовом режиме ядра) отвечает на этот запрос. Пользователь должен подготавливать свой запрос весьма тщательно, поскольку в противном случае он рискует получить не тот продукт или не получить ничего. Каталог представляет собой набор инструкций для заказа и содержит коды, цвета, размеры и другие атрибуты продуктов, которые следует точно указать. Центр поддержки каталога также должен обеспечить правильные прием и передачу данных компаниям, осуществляющим выпуск и доставку продуктов, чтобы выполнить заказ пользователя. Именно на этом принципе основано взаимодействие между различными системными уровнями. Каталог, используемый Windows XP, обычно называют каталогом API (Win32 API). В приводящихся ниже разделах дается описание основных компонентов операционной системы (см. рис. 11.4).
Системная виртуальная машина
Системная виртуальная машина (System Virtual Machine – System VM) – компонент Windows XP, состоящий из трех основных элементов: 32-разрядных приложений Windows, оболочки и 16-разрядных приложений Windows. На практике компонент System VM обеспечивает исполнение большей части функций, инициируемых пользователями Windows XP. В его отсутствие приложения просто не будут работать. (Я в данном случае не имею в виду приложения MS DOS.) Причина состоит в том, что Windows XP использует совершенно иной набор функций для исполнения этих приложений. Более того, они обычно запускаются в другом режиме работы процессора.
Когда речь заходит о поддержке 16-разрядных приложений, различия между Windows XP и Windows 9х становятся весьма заметными. Так, Windows 9х все еще предусматривает применение большого числа 16-разрядных приложений, а Windows XP предпочитает работу с 32-разрядными кодовыми последовательностями. Если Windows 9х допускает совместное использование области памяти 16-разрядными приложениями, то Windows XP исполняет каждое 16-разрядное приложение в виде независимого процесса. Следовательно, в случае отказа одного из приложений другие приложения, активизированные той же компьютерной системой, скорее всего, не пострадают.
Подобные предосторожности приводят к тому, что Windows XP обеспечивает более эффективный режим защиты для 16-разрядных приложений. На практике нечасто приходится сталкиваться с отказами приложений, но даже при возникновении подобных отказов весьма маловероятно, что они окажут катастрофическое воздействие на систему. Один из негативных моментов, являющихся следствием такого рода защиты, связан с ограничением возможностей применения 16-разрядных приложений в Windows XP. Особенно это касается тех программ, которые не стопроцентно совместимы с другими приложениями операционной системы.
Теоретически компонент System VM призван поддерживать другие компоненты уровня Windows API. Однако, поскольку они связаны с использованием иных служб, я расскажу о них в другом разделе. (Нет необходимости повторять, что различия между клиентом или системной виртуальной машиной и сервером или компонентами на уровне Windows API архитектуры Windows XP в данном случае более заметны, чем в Windows 9х.) Даже если приложения используют интерфейс API, а вы взаимодействуете с ними, вам не нужно задумываться об интерфейсе API до тех пор, пока не потребуется создать приложение. Я всегда рассматриваю интерфейс API в качестве специальной программной службы, а не в качестве объекта, о котором приходится постоянно волноваться. Ниже приводится более детальный перечень составляющих компонента System VM:
• 32-разрядные приложения операционной системы Windows. Windows XP имеет возможность использовать разнообразные 32-разрядные программные приложения, часть из которых не работает в Windows 9х, поскольку они опираются на применение каталога Win32 (являющегося разделом интерфейса Windows API). 32-разрядные приложения обычно характеризуются более гибким поведением в многозадачной среде, чем их 16-разрядные аналоги. Кроме того, 32-разрядные приложения поддерживают новые функции Windows XP, например длинные имена файлов, чего 16-разрядные приложения в большинстве случаев не допускают. 32-разрядные приложения также обеспечивают поддержку двух весьма важных функций. Первая использует режим вытесняющей многозадачности. В частности, она позволяет переключаться между задачами более естественно и использовать интервалы ожидания для корректной инициализации. Вторая функция предполагает активное применение плоского адресного пространства памяти, что позволяет более гибко выделять приложениям необходимые объемы памяти, улучшая результаты выполнения приложений. Кроме того, те приложения, которые ориентируются на работу с подобным адресным пространством, характеризуются более высокими показателями быстродействия, поскольку они практически не тратят время на взаимодействие с сегментированным адресным пространством, использовавшимся ранее специалистами фирмы Intel;
• оболочка (Shell). В отличие от предшествующих версий ОС Windows, Windows XP поставляется только с одной пользовательской оболочкой, роль которой играет программа Проводник. Эта программа обеспечивает возможность работы с 32-разрядными кодовыми последовательностями и взаимодействие с новым интерфейсом (конечно, при необходимости легко перейти к применению интерфейса Windows 2000);
• 16-разрядные приложения операционной системы Windows. Специалисты Microsoft провели в рамках Windows XP многочисленные изменения 16-разрядных приложений и средств их поддержки. В результате эти приложения теперь почти не создают проблем, поскольку исполняются независимым образом (фактически в ходе отдельного сеанса работы). Кроме того, режим совместимостиПримечание
Одной из важнейших черт Windows XP является возможность использования режима совместимости (см. раздел «Режим совместимости» главы 10). Разделение сеансов работы для 16-разрядных приложений означает, что Windows XP способна изменять вид рабочей среды с целью повышения ее эффективности. Например, если приложение не поддерживает 16-разрядную палитру цветов, режим совместимости позволит перейти к применению 256 цветов. Это придает Windows XP существенно большую функциональную гибкость по сравнению с Windows 2000, но сопровождается изменением самих режимов управления приложениями.
Уровень Windows API
Windows XP располагает двумя интерфейсами Windows API, причем первый интерфейс API практически полностью соответствует тому интерфейсу API, который имелся в Windows 3.1. Первый интерфейс API обеспечивает взаимодействие с 16-разрядными кодовыми последовательностями, на основе которых раньше создавались 16-разрядные приложения Windows. Другой интерфейс представляет собой 32-разрядный интерфейс Windows API и предназначен для взаимодействия с новыми, 32-разрядными, приложениями Windows XP. Он обладает целым рядом новых возможностей и, в частности, характеризуется лучшими показателями надежности.
Если обратиться к нужному разделу Windows XP, можно поближе познакомиться с обоими интерфейсами API. Они опираются на использование независимых файлов, располагающихся соответственно в папках SYSTEM (16-разрядный вариант) и SYSTEM32 (32-разрядный вариант). В частности, эти интерфейсы применяют целый ряд однотипных диалоговых окон, предназначенных для открытия файлов и поиска текстовой информации в документах, – эти окна поддерживаются с помощью двух файлов: COMMDLG.DLL (16-разрядный вариант) и COMDLG32.DLL (32-разрядный вариант). Число 32, присутствующее в именах файлов, обычно указывает на 32-разрядный вариант программы. Совместная работа диалоговых окон придает приложениям более систематизированный вид, чего, собственно, и ожидают пользователи. Познакомиться с другими разделами интерфейса API можно в папке SYSTEM. Специалисты Microsoft собрали различные запросы API и поместили их в независимые файлы этой папки, что, по их мнению, упростит модификацию операционной системы в будущем. Применение независимых файлов также облегчает инсталляцию модифицированных программных продуктов и уменьшает объемы памяти жесткого диска, отвлекаемые на хранение невостребованных функций.
Следует сказать несколько слов о том подуровне, который имеет место между двумя интерфейсами API. Windows XP непосредственно не поддерживает 16-разрядные кодовые последовательности, то есть не обеспечивает исполнение 16-разрядных приложений в системе. Кроме того, 16-разрядные запросы и данные несовместимы с 32-разрядными запросами и данными. В результате операционной системе приходится преобразовывать 16-разрядные запросы и данные в 32-разрядные. Файлы 16-разрядных данных интерфейса API содержат коды, необходимые для преобразования и формирования 32-разрядных запросов. При формировании ответов 32-разрядным интерфейсом соответствующие данные передаются 16-разрядному интерфейсу API, который выполняет преобразования и направляет 16-разрядные данные на устройства клиентов.
Базовая система Windows XP
Компонент Базовая система (Base System) Windows XP содержит все внутренние службы системы, или, как их еще иногда называют, специальные службы низкого уровня. В некоторых книгах этот раздел именуется ядром операционной системы (Operating System Kernel). Вы никогда не вступите во взаимодействие с компонентом Базовая система: этот компонент настолько хорошо скрыт внутри системы, что даже опытные программисты редко до него добираются. Ниже приводится подробное описание элементов, входящих в состав компонента:
• подсистема управления файлами (File Management Subsystem). Данный элемент образует своего рода интерфейс для взаимодействия со всеми присутствующими в компьютерной системе устройствами, например жесткими дисками, компакт-дисками, дисками DVD и дискетами. При этом весьма важно, каким образом формируется то или иное соединение (физически или с помощью сети). В результате компьютер может весьма оперативно взаимодействовать с различными устройствами;
• подсистема сетевого взаимодействия (Network Subsystem). ОС Windows for Workgroups стала в свое время первой версией Windows, которая учитывала потребности сетевого взаимодействия пользователей. Она даже включала в себя целый набор сетевых функций, являвшихся разделом самой операционной системы, а не программным продуктом третьей стороны. Windows XP продолжает эту традицию. Здесь предоставляется поддержка не только одноранговых сетей Microsoft, но и большей части программных продуктов для локальных сетей (LAN) с помощью специальных процедур – программных ловушек в защищенном режиме (protected-mode hooks). На практике вы можете одновременно взаимодействовать с несколькими сетями. Кроме того, модульный характер элемента Network Subsystem позволяет другим фирмам-поставщикам наращивать возможности Windows XP. В контексте рассмотренных элементов операционные системы Windows 9х и Windows XP демонстрируют приблизительно одинаковые характеристики, хотя последняя ОС все-таки обладает лучшими показателями безопасности. Обе версии основываются на ядре операционных систем NT/2000/ХР. Корпорация Microsoft распространила версию Windows и на рабочие станции. С другой стороны специалисты Microsoft создали вариант сервера Windows, который действует в качестве файлового сервера. Этот сервер в большей степени напоминает архитектуру клиент/сервер, которая применяется в сети Novell NetWare (см. часть VII);
• службы операционной системы (Operating System Services). Этот элемент Windows XP реализует такие функции, как задание конфигурации аппаратных средств. Он также привлекается для выполнения вспомогательных запросов пользователей и операционной системы. Например, каждый раз, когда вы запрашиваете у Windows XP время суток, она обращается за помощью к одной из служб. В отличие от Windows NT, Windows 2000/ХР поддерживает пользовательские службы Windows 9х. Кроме того, Windows XP предоставляет полную поддержку функции Plug and Play, чем отличается в лучшую сторону от Windows NT. (Windows 2000 также частично поддерживает указанную функцию, однако в прошлом опытные пользователи сталкивались с рядом проблем при работе с этой операционной системой.) Windows XP обеспечивает надежное задание конфигурации аппаратных средств (по сравнению с Windows 9х), что позволяет легко изменять конфигурацию и улучшать эффективность системы в целом. Если не учитывать достаточно жесткие требования к аппаратным средствам со стороны этой операционной системы, можно утверждать, что она одинаково хорошо конфигурирует как настольные, так и мобильные компьютеры;