Контактная информация

По всем интересующим вас вопросам связывайтесь при помощи контактной информации приведенной на этой странице!

skype: metsof
email: accusser@gmail.com

В социальных сетях...

Форма обратной связи

Авторизация

Статьи об операционной системе Linux

Сайдбар

Основы Система X

31 янв. 2014

Система X Window (коротко — X) представляет собой собрание функций и протоколов, с помощью которых на монитор выводится графическая информация и происходит управление мышью и клавиатурой. Эти функции доступны и при работе в сети. Первая свободная реализация системы X Window появилась в рамках проекта XFree86. После того как у разработчиков XFree86 возникли разногласия, а также после изменений в версии 4.4., сделавших систему несовместимой с лицензией GPL, возник альтернативный проект X.org.

В настоящее время все распространенные дистрибутивы Linux используют сервер X.org. В этой статье будут рассмотрены версии X.org 7.4 и 7.5, а также версия сервера X.org 1.6. Здесь будут описаны различные аспекты конфигурации Х-сервера, в том числе интеграция двоичных драйверов для ATI/AMD и NVIDIA.

Основы



Система X Window. Система включает, по существу, лишь базовые функции для рисования точек, прямоугольников ит.д. X также содержит сетевой протокол, позволяющий выполнять программу для X на компьютере А, а результаты передавать по сети и отображать на компьютере В. Версия X.org 7.5, новейшая по состоянию на 2009 год, основана на X11R7.5. Разработка системы X Window была начата в Массачусетском технологическом институте (Massachusetts Institute of Technology — MIT).

На основе X построен графический пользовательский интерфейс для Linux. Однако сама X не предоставляет никакого пользовательского интерфейса! «Внешний вид» программ для X и способы работы с ними зависят от того, какие библиотеки использовались при программировании (например, GTK у программ Gnome, QT — у программ KDE), а также от того, какой диспетчер окон активен.

Х-сервер


Х-сервер представляет собой интерфейс между системой X Window и оборудованием (графической картой, мышью). Сервер имеет модульную организацию: это означает, что к серверу добавляются модули, обеспечивающие выполнение специфических функций для каждой графической карты.

Дополнительные модули X



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

Диспетчер окон

Это программа для X, отвечающая за управление окнами. С помощью диспетчера окон вы можете запускать новые программы, переходить между окнами, перемещать и закрывать окна и т. д., то есть выполнять достаточно тривиальные задачи. И все же не забывайте, что эти задачи выполняет именно диспетчер окон, а не сама система X. В KDE и Gnome используются собственные диспетчеры окон.

Дилемма с драйверами



Подавляющее большинство всех современных ПК и ноутбуков использует графические чипы трех следующих фирм (по алфавиту): ATI/AMD, Intel и NVIDIA, причем графические чипы Intel доступны только в виде полноценных чипсетов (но не в виде отдельных графических карт). Следует также упомянуть о все более широком применении графических решений VIA — прежде всего на недорогих материнских платах в составе набора микросхем.

Сначала хорошая новость: свободные графические драйверы, содержащиеся в X, совместимы с большинством распространенных графических карт. А теперь плохая новость: скорость работы с такими драйверами пока достаточно низкая, к тому же нельзя пользоваться многими дополнительными функциями графических карт. Сюда относятся, в частности, функции 3D, целенаправленное управление несколькими выходами и т. д.

Решить проблему помогут двоичные драйверы, бесплатно предоставляемые ATI/AMD или NVIDIA. Правда, эти драйверы построены не на открытом коде, из-за чего возникает множество проблем, которые я опишу далее. Ниже мы рассмотрим, как в настоящее время обстоят дела с драйверами, разделив все вопросы на несколько частей, в соответствии с производителями графических карт.

ATI/AMD



Для графических карт ATI/AMD существуют как свободные драйверы (radeon, radeonhd), так и некоторые двоичные драйверы ATI/AMD (fglrx). Хорошего во всех отношениях драйвера пока, к сожалению, нет: в свободно распространяемых драйверах для современных графических микросхем отсутствует поддержка 3D (в частности, для чипсетов R600 и R700). А двоичные драйверы, в свою очередь, поддерживают только современные модели (но не рассчитаны на работу с сериями Rrxx-R500, включающими марки Radeon 9000, XI и Х2); кроме того, версии X.org на несколько месяцев опережают актуальные версии двоичных драйверов, то есть в некоторых ситуациях вам не удастся воспользоваться новейшей версией X.org.

Однако есть на что надеяться: с осени 2007 года компания ATI/AMD сотрудничает с разработчиками свободного ПО и опубликовала значительную часть спецификации микросхем. Пусть свободные драйверы разрабатываются несколько медленнее, чем ожидалось, но появление хорошего свободно распространяемого драйвера, который мог бы работать с современными графическими картами ATI/ ADM, — всего лишь вопрос времени.

Intel



Графические чипы Intel в настоящее время характеризуются, пожалуй, наилучшей поддержкой со стороны свободного ПО. Причина этого состоит в том, что Intel прекрасно наладила сотрудничество с сообществом разработчиков свободных программ. Поэтому драйверы intel, разработанные Intel, стали неотъемлемой частью семейства драйверов X.org.


Обратите внимание, что чипсеты GN40 и GMA500, также известные под названием Poulsbo и иногда применяемые в нетбуках, в настоящее время поддерживаются в ограниченном объеме или не поддерживаются. Компания Intel применила в этих чипсетах стороннюю, купленную технологию, осложняющую работу с драйверами.

NVIDIA



Компания NVIDIA до сих пор придерживается мнения, что лицензионные соглашения с другими компаниями и патенты исключают возможность разработки свободно распространяемых драйверов и не позволяют опубликовать техническую документацию о внутренних интерфейсах. По этой причине она предоставляет бесплатный двоичный драйвер nvidia. Еще недавно этот драйвер был получше качеством, чем аналоги ATI/AMD, но и для него характерны те же недостатки, что и для других драйверов, не распространяемых свободно. Имеющиеся свободно распространяемые драйверы для карт NVIDIA поддерживают функции 2D (nv, nouveau), причем на экспериментальном уровне драйвер nouveau поддерживает и некоторые функции 3D.

VIA



Совсем иначе обстоит ситуация с VIA: свободно распространяемый драйвер, интегрированный в X, к сожалению, можно использовать только со старыми моделями VIA. Что касается более новых моделей, вам придется выбирать из трех (плохих) вариантов: медленный драйвер VESA, свободно распространяемый драйвер фирмы VIA, репутация которого, однако, не на высшем уровне, почему он и не интегрирован в X, и еще один свободно распространяемый драйвер проекта openChrome, который еще немного не доработан.

Что купить



Если вы хотите купить компьютер или графическую карту с хорошей поддержкой функций 3D, обеспечиваемой свободным ПО, вам придется выбирать между компьютером с материнской платой, содержащей графический чипсет от Intel и устаревшей картой ATI.

Для того чтобы пользоваться ЗО-функциями, имея современную карту ATI или NVIDIA, придется обязательно установить драйвер от производителя. Если вас это устраивает, то лучше остановиться на карте NVIDIA. Двоичные драйверы этой компании поддерживаются более качественно. В долгосрочной перспективе могут взять верх разработки ATI/AMD: свободно распространяемый драйвер для графических карт ATI постоянно улучшается, хотя разработка идет не слишком быстро.

Проблемы, связанные с «несвободными» драйверами


Возможно, вы считаете, что различие между «настоящими» свободно распространяемыми драйверами и бесплатными драйверами от производителя (двоичные драйверы, также нередко именуемые проприетарными драйверами) — из области буквоедства, главное, чтобы все работало. Однако есть аргументы в пользу свободных драйверов инев пользу двоичных.

— В недавнем прошлом стабильность драйверов от производителя оставляла желать лучшего. Хотя в самое последнее время ситуация, к счастью, и улучшилась, нет гарантии, что в будущем она не усугубится.

— Графические драйверы должны подходить к версии X. Пользователи Fedora, в дистрибутиве которых часто содержится новейшая версия X, любят приговаривать, что раньше приходилось по нескольку месяцев ждать, пока производитель сможет предоставить совместимый с ней драйвер.
— Для того чтобы графические драйверы работали эффективно, необходимо тесное сцепление с ядром Linux. Для этого между самим драйвером (закрытый код) и ядром (GPL) должен находиться маленький модуль ядра, функционирующий только в качестве интерфейса — код этого модуля должен быть доступен.

Многие разработчики Linux сомневаются в том, что такой метод соответствует лицензии GPL, и терпят его лишь скрепя сердце. Разработчики ядра считают ядро «запятнанным» (дословно tainted), если в нем содержится драйвер, не соответствующий GPL, и отказываются от какой-либо поддержки, если возникают проблемы со стабильностью такой системы.

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

— Из-за вышеупомянутых конфликтов с GPL передавать двоичные драйверы сложно — возникают проблемы с лицензией. Во многих дистрибутивах нужно дополнительно скачивать и инсталлировать драйверы после установки дистрибутива. Сложность этого процесса варьируется от дистрибутива к дистрибутиву: в некоторых из них выше ценится удобство для пользователей, в других — идеалы «свободного ПО».
— Поскольку код графических драйверов не разглашается за пределами конкретных фирм, любой контроль их надежности «снаружи» представляется невозможным. Если с драйвером возникает проблема, связанная с безопасностью (в прошлом такие случаи уже бывали), то пользователям Linux остается только надеяться, что фирма-производитель в кратчайшие сроки выпустит исправное обновление (если обнаружится ошибка в открытом коде, то сообщество разработчиков исправит ее собственными силами — как правило, это происходит гораздо быстрее).

— Не имея кода, невозможно адаптировать драйвер для работы с другой операционной системой или для процессора с иной архитектурой. Фирмы-производители сами решают, какие системы будут поддерживаться (например, долгое время не существовало драйверов для 64-битных процессоров или для систем BSD).

— Поддержка графики в Linux зависит от предпочтений всего нескольких фирм. Устаревшие версии графических карт обычно не поддерживаются, поэтому приходится применять новые версии X или покупать новейшее оборудование. Еще недавно «дилемма драйверов» решалась следующим суждением: для поддержки функций 2D хватает и свободно распространяемых драйверов, а ЗО-функции в Linux так или иначе не очень важны. Однако этот аргумент уже неактуален: во-первых, трехмерный рабочий стол становится стандартом. Во-вторых, некоторые новые графические чипы уже не поддерживают и 20-функций без фирменных драйверов.

В долгосрочной перспективе Linux может остаться системой, использующей только свободное ПО, лишь в том случае, если все важнейшие компоненты будут доступны в виде открытого кода. Графические драйверы же, несомненно, относятся к числу таких компонентов. При выборе нового компьютера или новой графической карты обязательно проверяйте, есть ли к нему (к ней) свободные драйверы!

Личная рекомендация



Если вам предстоит купить компьютер и вы не предъявляете никаких экстраординарных требований к ЗО-системе, вам подойдет ноутбук или материнская плата

с интегрированным графическим чипсетом Intel (но не GN40 или GMA500!). Так вы сэкономите массу времени и сил, которые пришлось бы потратить на установку и конфигурацию графических драйверов.

Если вам нужна «настоящая» графическая карта, то я рекомендую вам NVIDIA. Очень досадно, что NVIDIA — одна из последних крупных компьютерных фирм, которая делает разработку свободных драйверов практически невозможной. При этом необходимо отметить, что техническая поддержка двоичных драйверов NVIDIA в течение многих лет характеризуется значительно лучшим качеством, нежели поддержка аналогичных драйверов ATI/AMD, и что при конфигурации и эксплуатации оборудования вас ожидает гораздо меньше проблем, чем при работе с ATI/AMD (об этом свидетельствует мой горький опыт).

Глоссарий



Мир X полон сокращений и непонятных терминов. В этом разделе я приведу ориентировочную информацию, которая пригодится вам на первом этапе (термины даются в алфавитном порядке). К сожалению, X пока напоминает огромную стройплощадку — в каждой последующей версии появляются новые компоненты, а старые компоненты (в зависимости от драйвера) постепенно упраздняются. Даже профессионалам Linux часто бывает сложно держать ситуацию под контролем.

AIGLX


Accelerated Indirect GL X, коротко — AIGLX, позволяет использовать функции GLX на уровне Х-сервера. AIGLX необходим для обеспечения трехмерных эффектов, предоставляемых на локальном компьютере программой Compiz или современными диспетчерами окон.

DRI и DRM


Интерфейс непосредственного вывода (DRI) позволяет использовать ЗО-функции графической карты, если у вас есть подходящий DRI-драйвер для данной карты. В настоящее время актуальна версия DRI2, представляющая собой усовершенствованный вариант первоначального функционала DRI. Кроме того, двоичные драйверы ATI/AMD приспособлены к совместной работе с DRI-модулем системы X. Напротив, в драйвере NVIDIA функции DRI реализованы по-своему.

Часть DRI необходимо подключать в ядре (а не с компонентами графической карты). Эта часть называется DRM (диспетчер непосредственного вывода).

ЕХА


Это библиотека, предназначенная для ускорения 20-операций (в частности, перетаскивания элементов рабочего стола) средствами графического аппаратного обеспечения. ЕХА и ее вариант UXA пришли на смену ХАА, но и сами, предположительно, являются всего лишь переходными этапами: в долгосрочной перспективе для комплексного ускорения графических операций будет использоваться Open GL, этот же механизм позволит работать с ЗО-функциями графической карты. Понятие ЕХА хорошо определено в глоссарии Xorg — это архитектура для акселерации, сокращенное название которой плохо расшифровывается.

GEM


Графический менеджер GEM (Graphics Execution Manager) — это библиотека, находящаяся в ядре Linux версий 2.6.28 и выше и предназначенная для управления памятью для графических драйверов. В настоящее время GEM используется только актуальными графическими драйверами Intel. Предполагается, что GEM — промежуточный этап, она будет использоваться, пока не будет готова GEM-совместимая версия библиотеки ТТМ.

GLX и libGL


В системе X функции Open GL используются с применением библиотеки GLX. Эта библиотека помогает установить соединение между системой X Window и Open GL. Например, GLX гарантирует, что вывод информации Open GL производится в видимой части окна и не происходит конфликтов с другими окнами. GLX интегрируется вХс помощью специального модуля.

Библиотека libGL обеспечивает связь между модулем GLX и программой OpenGL. Библиотека должна подходить к используемому вами варианту Open GL (DRI или NVIDIA). Поэтому ссылки из каталога /usr/lib/libGL.* указывают на файлы библиотек.

KMS


При использовании технологии поддержки переключения видеорежимов на уровне ядра (Kernel Mode Setting) графический режим настраивается ядром Linux, а не системой X. KMS уже поддерживается драйверами Intel и Radeon, другие драйверы должны последовать их примеру. KMS позволяет настраивать нужную разрешающую способность графического устройства сразу же после запуска компьютера. В таком случае должно исчезнуть «дрожание», с которым в настоящее время запускается система X. Fedora, использующая в процессе загрузки интегрированную программу Plymouth, доказала, что такой метод работает как минимум с некоторыми графическими картами Intel и ATI.

Open GL


Open GL (коротко — просто GL) — это разработанная SGI библиотека, предназначенная для отображения трехмерной графики. Такая библиотека имеется практически на всех компьютерах UNIX/Linux. Таким образом, Open GL можно считать аналогом библиотеки Microsoft DirectX.

Поскольку первоначально кода Open GL не было в свободном доступе (сейчас ситуация изменилась), появилась совместимая с ней свободная библиотека Mesa. Сначала Mesa была только программным решением, но потом стала использовать ЗО-функции графической карты, реализуемые через модуль DRI.

RandR

Расширение RandR (Resize and Rotate) позволяет изменять некоторые настройки X прямо в ходе эксплуатации системы. Среди этих настроек можно назвать разрешение, кадровую частоту и вращение изображения. С помощью RandR также можно активизировать второй монитор.

ТТМ


Карты таблиц преобразования (ТТМ) — это библиотека управления памятью для графических драйверов, подобная GEM. ТТМ не так сильно завязана на Intel, как GEM, и с ней проще организовать взаимодействие с другими драйверами (например, от карт AMD/ATI). Возможно, разработчики решат заменить библиотеку GEM новой версией ТТМ, способной выполнять многие функции GEM, и тогда новая библиотека сможет войти в состав официального ядра Linux.

UXA


Архитектура акселерации UMA (UXA) — это характерный для Intel вариант библиотеки ЕХА, то есть она занимается обработкой 20-графики. Важное отличие от ЕХА заключается в том, что UXA использует функции управления памятью из GEM (например, для сохранения растровой графики в памяти графической карты).

ХАА


Архитектура акселерации X (ХАА) ускоряет обработку 20-графики. Такой способ аппаратного ускорения появился раньше, чем ЗО-функции, и уже давно по умолчанию поддерживается в системе X. К сожалению, взаимодействие между ХАА и Open GL, а также с ЗЭ-функциями вообще пока проблематично. По этой причине многие графические драйверы уже перешли от использования ХАА к ЕХА и UXA.

Xgl


Это устаревший вариант AIGLX, удаленный из системы X в середине 2008 года. Xgl был разработан Novell и в течение нескольких лет применялся в дистрибутивах SUSE для реализации ЗЭ-эффектов. При этом сначала запускался обычный Х-сервер, который использовался для отображения всего одного окна без обрамления. Это окно требовалось для работы с ЗЭ-функциями библиотеки Open GL. За содержимое этого окна отвечает сервер Xgl, который показывает в нем рабочий стол.

X Render


Расширение рендеринга для X (коротко — X Render) — это библиотека для создания эффектов прозрачности и наложения (альфа-смешивание). Она используется и для отображения текста. Для ускорения работы X Render реализует ЗЭ-функции с помощью аппаратного обеспечения.
Читайте так же:
Запуск и завершение работы системы X вручную






Подпишитесь на рассылку! Никакого спама, только обновления!!!

Комментарии (0)


    Услуги по MODX Revolution

    Посмотреть все услуги

    Техническая оптимизация сайта

    Подробнее & Заказать

    Создание сайта на MODX Revolution

    Подробнее & Заказать

    Перенос сайта на MODX Revolution

    Подробнее & Заказать

    Продвижение сайта на MODX

    Подробнее & Заказать