- Подписка на печатную версию:
- Подписка на электронную версию:
- Подшивки старых номеров журнала (печатные версии)
LXF80:Что такое Xgl
Материал из Linuxformat.
Что такое... XGL?
Рабочий стол похож на кремовый тортик? Именно этого и хочет Пол Хадсон…
>> ОК, я знаю, что такое X и догадываюсь, что ‘gl’ – от OpenGL…
Эй, не делайте за меня мою работу! Да, Xgl – это X Window System, работающая поверх OpenGL, графическая система с аппаратным 3D-акселератором.
>> И что в ней хорошего?
Большую часть времени крутая графическая карта от Nvidia/ATI в вашем компьютере простаивает: с прорисовкой вашего 2D рабочего стола она справляется одной левой. Но она способна на большее, что мы и наблюдаем в Mac OS X: аппаратная прорисовка экрана создает феерические эффекты на рабочем столе.
>> Похоже, что решение само ищет себе задачу.
Согласен, яркие эффекты уже утратили новизну, но вы должны признать, что это быстрейший способ произвести впечатление на пользователей систем помельче. Кроме того, Xgl имеет и другие преимущества. Во-первых, Xgl формирует изображение «за кадром», а затем в один ход отображает его на экране, без всяких мерцаний и разрывов синхронизации при перетаскивании окон по экрану. Кроме того, вы получаете правильную обработку теней, так как Xgl поддерживает настоящее наслаивание окон.
>> Смахивает на расширение Composite, выпущенное давно, но нигде по-настоящему не заработавшее.
Вот именно, Composite это самое и делало. И ничего больше; а Xgl содержит всю функциональность Composite, плюс еще многое другое. Опять же, Вы правы: Composite так и не достиг 100% стабильности, и, насколько мы знаем, не включен по умолчанию ни в одном дистрибутиве. Проблема в том, что изменения от Composite были скорее внешними для X, а не происходили в ядре, а значит, Xgl им не догнать.
>> Что еще умеет Xgl?
В Xgl ваш рабочий стол проецируется на грань куба, то есть вы можете переключаться с одного виртуального стола на другой, просто вращая куб вокруг оси. Для больших эстетов, Xgl позволит масштабировать экран, чтобы поближе разглядеть его элементы; окна у него колеблются при перемещении; имеется даже функция Expose в стиле OS X – уменьшить ваши окна так, чтобы все они поместились на экран и легко было выбрать то, с которым нужно работать.
>> Вращающиеся кубы…колеблющиеся окна… падающие тени… зачем? Перевод ресурсов!
Оказывается, заставив видеокарту взять на себя всю эту работу, мы получаем ускорение, потому что она освобождает ваш CPU от каждодневного тяжкого труда по прорисовке GUI. Легко доказать, что эти возможности действительно приносят реальную пользу: некоторым пользователям трудно разобраться в виртуальных рабочих столах, и представление их как граней куба поможет облегчить понимание.
Аналогично, функция Expose поможет людям найти нужное приложение, а масштабирование – удобное решение для программ или web-страниц, использующих мелкие шрифты. Только эффект медузоподобного колебания окон лишен практического смысла, но вы должны признать, что он добавляет шарма рабочему столу Linux. Есть еще одна по-настоящему полезная возможность, о который мы не упомянули: комбинация Alt+Tab отображает экранный снимок каждого приложения, а не просто его иконку, и гораздо легче найти искомое.
>> Раз X-сервер занимается подобной магией, он явно идет вразрез с основной философией Unix? Ну, что каждое приложение делает свою работу и делает ее хорошо…
Не будем упрощать. Xgl – это X на OpenGL, но на этом участие X и кончается. Поверх Xgl находится оконный менеджеркомпоновщик под названием Compiz, вот он-то и создает все эффекты. В сущности, Compiz играет роль KWin и Metacity, и хорошо играет. Более того, Compiz позволит вам выбрать, какие эффекты вы хотите включить, то есть вы можете отказаться от колебания окон и использовать только те эффекты, которые вам полезны. Также он предоставляет гибкую настройку – если хотите додекаэдр вместо куба для виртуальных столов, просто поменяйте параметры!
>> Какие дистрибутивы могут работать с Xgl?
Xgl пока что новая технология, поэтому имеет слабую поддержку в дистрибутивах. Прямо сейчас вы можете использовать Xgl в Ubuntu Dapper Drake, SUSE 10.1 и SUSE Linux Desktop 10. Мы ожидаем, что поддержка Xgl будет нарастать, в первую очередь благодаря желанию пользователей видеть красивые эффекты в своем дистрибутиве.
Поддержка в Debian ожидается не позднее 2010 года.
>> А если я просто хочу попробовать Xgl ?
Некоторые добрые люди уже выпустили Live CD с Xgl в дистрибутиве Kororaa (см. Distrowatch, LXF79). Он базируется на Gentoo, но загружается в полноценный Xgl с полной поддержкой карт Nvidia и ATI. Вы можете установить Kororaa с Live CD, но дистрибутив еще не вышел из бета-статуса, поэтому мы рекомендуем пока воздержаться от этого. Мы ожидаем, что Ubuntu Dapper Drake Live CD до известной степени поддержит Xgl, но, вероятно, без предустановленных драйверов видеокарт, и Xgl станет тормозить.
>> Чудеса! Я тут подумал, что… постойте…SUSE, Ubuntu… а как насчет Fedora?
Ах да, Fedora. Разработчикам Fedora не сильно понравился Xgl. В частности, они столкнулись с тремя проблемами: вопервых, последние месяцы разработки Xgl проходили внутри Novell, без какой-либо поддержки со стороны сообщества. Во-вторых, Xgl не просто изменяет несколько строк в X, а вносит значительные изменения. И, наконец, Xgl в качестве оконного менеджера использует Compiz, а не KWin и Metacity.
Поэтому разработчики Fedora создали альтернативу Xgl и назвали ее AIGLX, и это значительный шаг на пути эволюции к X на базе OpenGL – она оставляет нетронутой архитектуру драйверов, позволяя вам переключаться между GL- и не-GL-режимами.
>> Неужто произошло ветвление X на OpenGL?
Это возможно, но маловероятно. Команды разработчиков Xgl и AIGLX вместе работают во многих областях, а также обмениваются кодами. Есть надежда, что скоро они так сблизятся, что останется потребность только в одном из них, и произойдет слияние проектов.
Однако сейчас это определенно два разных проекта. Фирма Nvidia заняла странную позицию: она активно препятствует принятию Xgl, аргументируя, что все 3D-эффекты, осуществляемые с помощью Xgl, можно достичь с помощью эволюционного пути, выбранного разработчиками AIGLX.
Так или иначе, все разработчики Xgl и AIGLX и Nvidia работают в одном направлении: все они хотят ускорить прорисовку X, переложив работу на оборудование, и в конечном счете Linux от этого выиграет. То есть в любом случае мы гарантированно получим превосходное 3D-решение.
>> Значит, Fedora включит AIGLX в очередной дистрибутив?
Он уже здесь! Fedora Core 5 поставляется с готовым к использованию AIGLX, и если у вас есть DVD этого номера журнала, вы можете попробовать его в действии хоть сейчас. FC5 сумела опередить выпуск SUSE 10.1 больше чем на месяц, и вы, наверно, обнаружите, что AIGLX уже завоевывает сообщество.
>> Версия Fedora с такими же 3D-эффектами?
AIGLX работает поверх существующей инфраструктуры, поэтому, в отличие от Xgl, Compiz не вмешивается в работу системы. Однако новый код Metacity содержит кое-какие базовые эффекты, а так как архитектура X не поменялась, то дело за тем, чтобы добавить в Metacity новые. Некоторые хакеры уже ухитрились посадить Compiz поверх AIGLX, и он неплохо работает.
>> Можно ли сравнить Xgl/ AIGLX с OS X и Windows Vista?
Ну, Windows Vista еще не вышла (и не будет доступна до 2007 года), поэтому в плане доступности X на OpenGL безоговорочно побеждает! В плане графических возможностей, X на OpenGL тоже опережает других кандидатов. Рабочий стол в виде куба – оригинальная идея, и даже OS X Expose не так красиво выглядит, как ее Xgl-реализация. Значит, у Linux появилась еще одна привлекательная черта, и она привлечет тех пользователей, которые любят работать в приятной обстановке.
Куда же мы движемся?
Будущее зависит от разработчиков, которые хотят сделать надстройку над архитектурой X – 3D-эффекты, которые они готовят для Compiz, определят, действительно ли получится ускорение в работе или это не более чем красивости.
Однако разработчикам X остается еще много работы, в особенности в области улучшения совместимости с видеокартами. Кроме поддержки старых карт, мы хотели бы видеть появление, например, пиксельных шейдеров – если вам случалось перетаскивать виджет Dashboard на рабочем столе OS X, вы поймете, почему! А может, мы дождемся двусторонних окон, чтобы на обратной стороне чтонибудь прятать – лично мы хотели бы, чтобы туда убирались диалоги Свойства всех приложений. Короче, будущее определенно за 3D: Xgl и AIGLX уже здесь, хотя об окончательном стандарте можно лишь гадать.