Чтение онлайн

ЖАНРЫ

Полное руководство по Microsoft Windows XP

Мюллер Джон Поль

Шрифт:

Рисунок 16.2. Архитектура графической подсистемы Windows XP

подсистема WIN32 (WIN32 subsistem). Windows XP использует принцип клиент/сервер для обеспечения требуемых средств различным приложениям, которые она поддерживает. Это происходит через подсистему WIN32 на уровне буфера, переводящего запросы других операционных систем в код, который Windows XP может распознать;

виртуальная DOS-машина (Virtual DOS Machine – VDM). Windows XP размещает каждое приложение MS DOS на собственной VDM. Для достижения наивысшего уровня надежности системы, необходимого пользователям, Microsoft пришлось обеспечить каждое приложение собственной средой, полностью отделенной от среды какого-нибудь другого приложения. В отличие от Windows 9х, 16-разрядные приложения Windows XP используют индивидуальные VDM. Windows XP всегда запускает VDM, а потом в ней – копию 16-разрядной Windows, чтобы обеспечить поддержку 16-разрядного приложения. В результате в каждое взаимодействие добавляются два уровня: для VDM и для подсистемы WIN32. Применение отдельной VDM для каждого приложения означает также, что Windows XP может более точно определить, когда приложение MS DOS начнет управление экраном. Она уведомляет модуль User (который управляет вводом-выводом) и модуль захвата экрана, чтобы они могли сохранить информацию о состоянии графической системы. Как и все остальное, это дополнительное разбиение на уровни происходит незаметно для пользователя. Вы

продолжаете работать с тем же интерфейсом, что и раньше;

модуль захвата экрана (Screen Grabber). Я всегда представляю себе этот компонент в виде камеры, так как, по сути, он и есть камера. Модуль захвата экрана «фотографирует» экран и сохраняет его «снимок» для последующего использования. Это позволяет Windows восстанавливать экран в его первоначальном состоянии после завершения сеанса работы в MS DOS;

модуль User. Я уже объяснял назначение этого модуля в главе 11. Он отслеживает состояние всех элементов дисплея, таких как значки и диалоговые окна; кроме того, поддерживает отображение данных на экране. Поэтому модуль должен быть инициализирован прежде, чем сеанс MS DOS станет приоритетным (активизируется), чтобы сделать снимок текущего состояния компонентов. Диск имеет два варианта модуля User: 16– и 32-разрядный;

интерфейс графических устройств (GDI). Это другой модуль, объяснение которого приведено в главе 11. Подобно модулю User, интерфейс графических устройств GDI имеет два физических файла: один – для 16-разрядных и другой – для 32-разрядных нужд. Модуль GDI взаимодействует с драйвером дисплея и DIB-обработчиком для поддержки графических компонентов, которые отображает Windows. DIB-обработчик, который позволяет использовать растровые изображения, был отдельным компонентом подсистемы дисплея, но теперь он входит в состав GDI;

драйвер мини-порта дисплея (Display Miniport Driver). Каждый видеосигнал проходит через виртуальный драйвер дисплея (Virtual Display Driver – VDD). VDD обрабатывает сигнал и посылает его на видеоадаптер. Windows XP применяет комбинацию из драйвера мини-порта дисплея и обработчика DIB для видеоадаптеров, которые могут их поддерживать. Такое сочетание драйверов повышает скорость при использовании 32-разрядного кода. Называться этот файл может по-разному в зависимости от того, какого типа ваш дисплей. В моей системе он именуется ATIMPAE.SYS. В отличие от VDD, который осуществляет всю обработку видео, драйвер мини-порта дисплея обеспечивает только отдельные детали, определяемые конкретным устройством. DIB-обработчик отвечает за визуализацию графики. Драйвер мини-порта содержит гораздо меньше кода, чем основной VDD, уменьшая таким образом количество кодов, которые изготовитель должен написать;

драйвер видеоадаптера (Display Adapter Driver). Данный модуль поддерживает ряд специальных свойств визуализации, которые предоставляет ваш видеоадаптер. Имя файла, ассоциируемого с данным модулем, меняется в зависимости от видеоадаптера. На моей машине такие функции находятся в файле ATIDRAE.DLL;

драйвер видеопорта (Video Port Driver). Microsoft продвигает систему универсальных драйверов. Этот драйвер, в частности, включает функции, которые позволяют модулям User и GDI выполнять обычные задачи универсального графического адаптера, такие как перемещение данных из одной области адресного пространство в другую. Имеются и функции состояния, наподобие той, что проверяет адаптер VGA при его инсталляции, а также других, которые работают с установками AGP-порта. Основные программные компоненты, поддерживающие функции данного модуля, обычно расположены в файле VIDEOPRT.SYS;

цветовой профиль (Color profile). Этот файл данных включает цветовые возможности вашего устройства вывода. Не имеет значения, принтер это или видеоадаптер: тип информации одинаковый. Цель цветового профиля – обеспечить систему управления цветом ICM (Image Color Matcher) информацией, необходимой для синхронизации монитора и других устройств поддержки цвета. Таким образом, когда вы выбираете на экране темно-красный цвет, вы получаете такой же темно-красный цвет при печати. Я описал некоторые проблемы соответствия цветов в разделе «Вкладка Управление цветом» главы 14, так что не буду снова говорить о них. Все файлы цветового профиля (с расширением. icm) можно найти в папке COLOR, расположенной в папке SYSTEM. Диалоговое окно свойств, ассоциируемое с каждым из них, сообщит вам гораздо больше технических деталей о текущем профиле;

система управления цветом (Image Color Matcher – ICM). Весь процесс управления выводом данных на принтер, результат которого вы наблюдаете на экране монитора, слишком сложен, чтобы изложить его здесь. Ранее в этой главе я описал проблему совместимости цветов. ICM – это модуль, который на самом деле выполняет такую работу. Он незаметно изменяет выходные данные принтера и дисплея так, чтобы они соответствовали друг другу. GDI, мини-драйвер дисплея и ICM работают совместно, чтобы сравнить текущий набор цветов и преобразовать его в то цветовое представление, которое будет одинаковым на обоих устройствах (принтере и мониторе). Это не самый лучший выход, но он действует в большинстве случаев. В результате получается практически тот же цвет изображения, но с некоторым отличием. Пользователи не заметят никакой разницы, но профессиональные художники замечают. Конечно, такое решение не может учитывать множество деталей, которые имеют значение для специалистов, например температуру, влажность и другие характеристики среды, которыми Windows не управляет. Файлы, поддерживающие работу системы управления цветом ICM, которая является API-интерфейсом, включают библиотечные файлы ICM32.DLL и ICMUI.DLL из папки SYSTEM;

виртуальный драйвер дисплея (Virtual Display Driver – VDD). Старые 16-разрядные приложения применяют этот модуль в качестве единственного источника связи с видеоадаптером. Windows XP предоставляет его в целях совместимости и для приложений MS DOS. В большинстве случаев имя такого файла содержит часть названия фирмы-изготовителя адаптера дисплея. Вы найдете его в папке SYSTEM. Этот драйвер преобразует команды рисования в сигналы, которые адаптер может задействовать. Он также управляет видеоадаптером и выполняет ряд других задач, касающихся совместного использования графического адаптера всеми программами, установленными на вашем компьютере. По сути, это 16-разрядная версия комбинации мини-драйвера дисплея и обработчика DIB;

уровень абстрагирования от оборудования (Hardware Abstraction Layer). Это другой концептуальный тип элемента в Windows XP. Когда-то вы могли запускать Windows NT на разных платформах, как, например, процессоры MIPS и Alpha. Теперь это не так. Хотя корпорация Microsoft сохраняет способность запуска Windows XP на других платформах, HAL отделяет зависящие от конкретного оборудования элементы от остальной части системы. Если специалисты Microsoft пожелают переместить Windows XP на другую платформу, понадобится только переписать HAL, чтобы адаптировать программное обеспечение;

видеоадаптер (Display Adapter). Это физическое устройство на вашем компьютере;

видеопамять и экран (Video Memory and Screen). Видеопамять – это та память, которая хранит изображение в электронной форме. Хотя у видеоадаптера имеется собственная встроенная память, которая находится на его плате, здесь мы говорим не о ней. Windows XP создает область виртуальной памяти для каждого приложения, чтобы приложения при использовании ресурсов компьютера не конфликтовали. Система комбинирует содержимое всех областей виртуальной памяти и отправляет его в реальную память адаптера дисплея;

драйвер загрузки графического адаптера VGA (VGA Boot Driver) [39] . Драйвер обычно применяется только в безопасном режиме (Safe Mode), когда основная система графики по какой-то причине разрушилась. Это универсальный 32-разрядный драйвер, который любой видеоадаптер, дружественный Windows, может использовать для отображения информации на низком уровне разрешения 640x480. Обратите внимание, драйвер больше не ограничен режимом 256 цветов; вы можете выбрать вместо него 16– или 24-разрядный цвет изображения. Система включает этот драйвер перед идентификацией адаптера дисплея на компьютере во время инсталляции. Windows XP использует его только для инсталляции и решения проблем, и обычно он остается на заднем плане, поэтому я не стал включать его в рисунок. Данный драйвер хранится

в файле BOOTVID.DLL.

Имейте в виду, это был краткий обзор видеоподсистем. В действительности внутренняя деятельность описанной части Windows XP более сложная. Чтобы лучше понять, как все работает, представьте, что Windows XP имеет три видеопути (если, конечно, не вдаваться в подробности):

• 16-разрядная MS DOS;

• 16-разрядная Windows;

• 32-разрядная Windows.

Путь, который выбирает Windows XP, зависит от используемого приложения, типа видеоадаптера и настроек отображения видео, которые вы указываете в диалоговом окне Свойства: Экран (Display Properties). 16-разрядный путь MS DOS состоит из VDD, адаптера дисплея и видеопамяти. 16-разрядная Windows добавляет WINOLDAP.MOD, модуль захвата экрана, модули User и GDI. 32-разрядный путь содержит модули User и GDI, адаптер мини-порта дисплея, драйвер адаптера дисплея, драйвер видеопорта, обработчик DIB и видеопамять. Оба пути Windows могут включать систему управления цветом ICM и ассоциированные цветовые профили. От вашей установки зависит, какие драйверы Microsoft инсталлирует в конечном счете, и технические возможности имеющихся устройств.

Видеоплаты

Пока я сфокусировал ваше внимание на сложностях видеоподсистем, взгляните на видеоплаты. Одним из наиболее важных современных устройств, от которых зависит быстродействие, является видеопамять. Windows XP больше не поддерживает низкоскоростные режимы предыдущих версий ОС, то есть теперь нельзя повышать быстродействие, прибегая к режиму 640x480 точек и 256-цветовой палитре. Ваш видеоадаптер должен обеспечивать более высокое разрешение и качество цветопередачи.

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

Второе преимущество заключается в том, что большой видеобуфер повышает скорость воспроизведения анимации, так как Windows XP может перемещать изображение на монитор постранично, а не маленькими порциями. Независимо от того, какой режим вы используете при просмотре изображений, большее количество цветов и высокое разрешение увеличивают быстродействие. С такими современными свойствами видеоускорения, как набор API-интерфейсов DirectX версии 8 и AGP, вы наверняка заметите улучшение. AGP-слот (Accelerated Graphics Port) – это тот стандарт, который увеличивает пропускную способность шины PCI.

Уровень базовых компонентов DirectX (DirectX Foundation) определяет возможности аппаратного обеспечения компьютера и затем проверяет корректность работы приложений. Таким образом, разные приложения могут полностью эксплуатировать любые высокопроизводительные аппаратные средства, которые у вас есть, например чипы ускорения трехмерной графики (см. раздел «Установка и конфигурирование набора интерфейсов прикладного программирования DirectX» главы 10).

...

Примечание

Применение технологии DirectX версии 8 улучшает мультимедийные свойства вашей системы, в частности свойства видео. Производители оптимизируют драйверы видеокарт для трехмерной анимации и высокого разрешения цвета. Microsoft создала технологию DirectX, используя несколько API (Application Programming Interface – интерфейс прикладного программирования). С этими API-интерфейсами программы могут обращаться напрямую ко многим устройствам на компьютере.

Несмотря на все улучшения видеостандартов, никто не в силах отменить законы физики, в частности время, которое занимает перемещение видеоокна. Каждый уровень управления, который вы добавляете в видеоподсистему, «обдумывает» циклы процессора. Как избежать таких проблем? Воспользуйтесь следующими советами:

• DDR SDRAM или VRAM. Многие видеоадаптеры обладают высокоскоростной памятью, а некоторые – нет. DDR SDRAM (Double Data Rate Synchronous Dynamic Access Memory) – новшество в области высокоскоростной памяти. По существу, это высокоскоростная версия обычной DRAM. Преимущество DDR SDRAM заключается в ее дешевизне по сравнению с другими решениями, например VRAM. Именно поэтому сегодня данный вид памяти устанавливается во многих видеоадаптерах. Здесь я не буду обсуждать внутреннее действие DDR SDRAM, но вы можете прочитать о ней на сайте http://www6.tomshardware.com/mainboard/00q4/001030/;

• VRAM (Dual-ported Video RAM – видеопамять с произвольным доступом) – это нововведение компании Texas Instruments. Впервые компания предложила ее со своей серией TMS340х0 процессоров. VRAM пользуется двумя портами и, таким образом, может одновременно посылать и получать информацию. Последовательный буфер позволяет дисплею считывать содержимое видеопамяти, а параллельный – одновременно писать в видеопамять. Двухпортовая память избавляет от одного из ограничений, с которым приложение сталкивалось во время взаимодействия с видеоадаптером: вы могли писать в видеопамять в течение только части цикла формирования изображения (более подробную информацию, связанную с VRAM, вы найдете далее в разделе «Принцип Питера Нортона»);

...

Примечание

Технические возможности вашей графической карты могут быть довольно скромными, если вы используете компьютер для стандартных офисных приложений. Работа с текстом, к примеру, не оправдывает дополнительную стоимость замены старой карты на новую, содержащую высокоскоростную VRAM-память. Для многих офисных приложений подойдут обыкновенные видеоплаты старого образца с меньшей памятью, например EDO DRAM (Dynamic RAM – память с расширенным выводом данных). Но если вы планируете использовать графику или вам нужно отображать мультимедиа, установить какую-либо игру или посещать множество мультимедийных Internet-страниц, выберите VRAM-память.

память. Сегодня видеопамять дешевле, чем несколько лет назад. Некоторые современные видеоадаптеры содержат 32 или 64 Мб видеопамяти; кроме того, обсуждается вопрос создания видеоадаптеров с большим объемом памяти;

графический сопроцессор. Довольно мало видеоадаптеров поставляются также с графическим процессором. Windows XP имеет встроенную поддержку графического процессора. Она разгружает обработку изображения настолько, насколько возможно для графического процессора, вместо обработчика DIB. Это ускоряет работу, так как разгруженная часть, ответственная за графику, освобождает циклы процессора, что повышает скорость системы. Кроме того, процессор дисплея является машиной особого рода, функционирование которой основано на теории конечных автоматов (Special-Purpose State Machine). Он обслуживает графические команды гораздо быстрее, чем обработчик DIB;

AGP-видеоадаптер. Порт графического ускорения (Accelerated Graphics Port, AGP) помогает видеоадаптеру быстрее перемещать информацию. Графические программы обрабатывают множество данных. Чтобы отобразить какой-нибудь рисунок, нужно переместить информацию, а на это требуется время. Тем не менее можно сократить время с помощью более информативного канала с увеличенной пропускной способностью. Некоторые видеоадаптеры поставляются с 64– или 128-разрядным внутренним информационным каналом. AGP также повышает скорость информационной шины. Стандартная шина PCI передает информацию со скоростью 133 Мб/с, а даже медленная шина AGP – со скоростью 266 Мб/с (более подробное описание вы найдете в разделе «Порт AGP» данной главы);

DirectX для игр. Некоторые производители продолжают выпускать игры под Windows, которые не поддерживают технологию DirectX. С такими играми возникает множество трудностей. С одной стороны, они могут не запускаться из-за проблем с совместимостью. Применение DirectX также повышает скорость игр, открывая им прямой доступ к устройствам;

Открытая графическая библиотека для CAD (OpenGL, Open Graphics Library for CAD). Данный API, изначально разработанный Silicon Graphics (SGI), позволяет рабочей станции Windows XP использовать все возможности для поддержки высокоскоростного режима обработки изображений, как и специализированная графическая рабочая станция при запуске бизнес-приложений. Ряд производителей, создающих новые модели систем автоматизированного проектирования (Computer-Aided Drafting – CAD), трехмерную графику, анимацию, мультимедиа и другие нужные приложения, написали собственное программное обеспечение для OpenGL. OpenGL де-факто стала графическим API по двум причинам: для нее относительно просто писать драйверы аппаратного обеспечения, и она обладает определенной гибкостью – вы можете увидеть ее в самых быстрых, лучших, ориентированных на графику рабочих станциях, а также на скромных, неускоренных PC-картах (с неускоренным видеоадаптером она отображает анимацию в лучшем случае неустойчиво).

Поделиться с друзьями: