Информационные технологииStfw.Ru 🔍

Рабочий стол на стероидах

Евгений Патий
🕛 12.09.2006, 10:30
Мы все - свидетели очередной, правда, вялотекущей революции. Стремление программистов сделать пользовательский интерфейс еще более дружелюбным, удобным и красивым вылилось в совершенно новую тенденцию - задействовать в этом процессе современную аппаратуру на все сто процентов.

Вспомним, как в DOS-эру верхом совершенства считался двухпанельный интерфейс легендарного Norton Commander и его клонов. И как резко изменилось восприятие интерфейса с появлением Windows - в основной своей массе отечественные пользователи впервые увидели 3.1 либо 3.11 «фор воркгрупс». Возможно, что и среди наших читателей кое-кто так и остался с DOS и Norton Commander и может несколько неадекватно воспринять все нижеследующее. Но будем категоричны: прогресс в области пользовательского интерфейса ушел вперед на световые годы, а командная строка (не обязательно в DOS) осталась служить либо закоренелым ортодоксам, либо тем, кому и так хорошо, либо на тот случай, когда без нее не обойтись, например, в силу решаемых задач.

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

Если взять два современных компьютера, но в первом установить какой-нибудь самый-самый Radeon или GeForce, а во втором древний S3 Virge и попросить пользователя составить впечатление от работы на том и другом (не давая при этом возможности запустить ничего, кроме Internet Explorer или Microsoft Excel) - он никогда в жизни не определит, где какой графический процессор. Это говорит не о том, что S3 Virge то же самое, что Radeon, это говорит о том, что процедуры отрисовки интерфейса популярных операционных систем застопорились в развитии лет восемь назад. А новомодные функции и вообще вся мощь современных графических адаптеров задействованы исключительно в играх, да еще - частично - в мультимедиаприложениях.

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

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

Разумеется, интерес к данной теме в немалой степени подстегивается анонсами и слухами вокруг грядущего выхода Windows Vista. До этого события еще примерно полгода, но что такое полгода в сравнении с пятью годами разработки? Капля в море. Даже самое поверхностное исследование вопроса показывает, что сегодня уже все семейства операционных систем уровня пользователя способны освоить возможности современных мощных видеоадаптеров.

Всего можно насчитать три наиболее популярных типа пользова- тельских операционных систем. Это, конечно, Microsoft Windows, Apple Mac OS X и Unix/Linux. Не будем забираться в методологические дебри, делить каждый из этих типов на виды и подвиды, а просто определим три наиболее крупных сектора рынка. И самое интересное, что и Mac OS X, и Unix/Linux уже достаточно давно и успешно предлагают технологии, позволяющие охватить вниманием львиную долю производительности графических чипсетов.

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

Примечательна одна существенная деталь. В наше «довистовое» время множество производителей интегрированных графических решений, применяемых в портативных или офисных машинах, веско доказывают, что в этих секторах рынка графические «сладости» ни к чему - для отрисовки интерфейса хватает и минимальных возможностей. Но можно биться об заклад, что через полгода-год (с выходом Vista) как из рога изобилия посыплются пресс-релизы о том, что «производитель Х выпустил офисный/мобильный ПК на базе платформы Y с поддержкой всех графических возможностей интерфейса операционной системы Z», при этом нынешние доводы прочно забудутся.

Что ж, спрос рождает предложение, и коль скоро он есть (вернее, ожидается), наша святая обязанность осветить ситуацию «предспросового» периода.

Современные графические процессоры нацелены на ускорение трехмерной графики. Если графический интерфейс пользователя не нуждается в ускорении трехмерной графики, нужно сделать так, чтобы нуждался. То есть он должен стать трехмерным - как минимум с точки зрения графического процессора, чтобы было что ускорять. Это и глазу пользователя приятней, и взбодрит продажи видеокарт (а значит, и настроение производителя, маркетолога, программиста и прочих).

Однако здесь важно не перегнуть палку: интерфейс должен сносно шевелиться при наличии графического процессора среднего ценового диапазона, иначе можно спровоцировать существенное недовольство в стане пользователей. Желательно, чтобы для отрисовки требовался совершенно средненький графический чипсет. Попытаемся рассмотреть, как с этим обстоит дело у всех трех перечисленных семейств операционных систем.
Apple Mac OS X
С точки зрения обертки, а точнее, пользовательского интерфейса под названием Aqua, Mac OS X бесконечно далека от того состояния, в котором ныне пребывают представители лагеря Unix/Linux.

Интерфейс всегда был сильной стороной Apple, и можно смело утверждать, что в этом вопросе она всегда была на шаг впереди конкурентов во главе с Microsoft. Mac OS X интересна и тем, что обеспечивает единый подход к формированию изображения на экране монитора и на принтере. Графическая система Mac OS X основана на трех графических технологиях, обеспечивающих работу с двух- и трехмерной графикой. Следует также отметить, что все описанные ниже графи- ческие технологии поддерживают так называемый Velocity Engine - модуль процессоров POWER, обеспечивающий аппаратную работу с векторной графикой Quartz. Этот компонент отвечает за вывод двухмерной графической информации.

С помощью Quartz осуществляется управление цветностью и разрешением (стандартными являются разрешение 1024×768 точек при глубине цветности 16 бит), а также сглаживание (anti-aliasing). Quartz обеспечивает такие графические механизмы, как 2D-ускорение и доступ к кадровому видеобуферу. В основе Quartz лежит технология PDF, разработанная и широко применяемая компанией Adobe Systems.

Но как быть с недавним шумным переводом компьютеров Apple на платформу Intel, в процессорах которой не было никаких Velocity Engine? Так-то оно так, скажете вы, зато у Intel есть целая колода расширенных наборов инструкций: MMX, SSE, SSE2, SSE3, а теперь уже и SSE4. Если даже SSE2 способен был с успехом заменить морально устаревший, но оставленный для совместимости модуль вычислений с плавающей точкой (FPU), то что ж говорить об обойме с SSE3 и SSE4. Стоит предположить, что инструкции семейства SSE справились с задачами, ранее возлагавшимися на Velocity Engine.

Двухуровневая архитектура типа «клиент - сервер», реализованная в Quartz, позволяет осуществлять гибкую и скоростную работу приложений с графикой. Низший уровень (базовые графические сервисы) обеспечивает серверные функции управления окнами, поддержки событий и пр. для приложений-клиентов, которые и занимаются непосредственно отображением графической информации. Помимо встроенного в Quartz клиента отображения, Mac OS X предоставляет в распоряжение приложений библиотеку двухмерной графики QuickDraw - OpenGL.

Основным клиентом отображения трехмерной графики в Mac OS X является библиотека OpenGL, модифицированная Apple для работы с Core Graphics Services (стандарт OpenGL был в свое время разработан компанией Silicon Graphics). Нет нужды представлять эту библиотеку, так как без нее не обходится сейчас практически ни одно приложение, особенно мультиплатформенное, работающее с трехмерной графикой.

Но где же здесь ускорение трехмерной графики? Дело в том, что до определенной версии Mac OS X вся обработка элементов интерфейса осуществлялась исключительно центральным процессором - при участии упоминавшегося Velocity Engine. В итоге интерфейс Aqua выглядел потрясающе красиво - например, с отбрасывающими тень полупрозрачными окнами на рабочем столе. Но временами заг рузка процессора наводила на мысль, что красота все-таки требует немалых жертв. Да, весь продвинутый интерфейс вполне можно нарисовать целиком программно.

Но при этом и возможностей для маневра останется крайне мало, разве что открыть пару-тройку приложений и восхищаться вкусом дизайнеров. Видимо, примерно в том же направлении мыслили и инженеры Apple, ведь впоследствии в Mac OS X появилась новинка - графический движок Quartz 2D Extreme. Quartz 2D Extreme уже не расходует попусту вычислительную мощность процессора, направляя ее в более приемлемое русло: рендеринг интернет-страницы или оцифровку фильма с видеокамеры. Элементы интерфейса теперь обрабатываются при помощи графического процессора с использованием OpenGL. Весь «экран» режется на отдельные элементы, которые впоследствии представляются как AGP-текстуры и попадают в мясорубку графического чипа. А уж там фантазия практически не знает границ: наложение других текстур, тени, прозрачность, повороты и искажения - все это детские игрушки для процессора, скажем, уровня Radeon 9600. В итоге Aqua выглядит не только красиво, но и сам интерфейс стал совсем воздушным, точнее, «жидким», как вода. И видеокарта при деле.

Нет сомнений, Microsoft извлекла из опыта Apple правильные выводы, и это будет не Microsoft, если интерфейс у Vista не обойдет Aqua.

Однако посмотрим, чем тем временем могут порадовать пользователя ближайшие родственники Mac OS X, в частности Linux.
Unix/Linux
У подавляющего большинства систем из этого уважаемого академического клана есть одно великое достоинство - они, как правило, бесплатны. Это достоинство, однако, нередко оборачивается и недостатком, ведь огромное количество программного обеспечения разрабатывается на голом энтузиазме и не предполагает какой-либо ответственности перед пользователями. Казалось бы, перспективный проект может быть заброшен и забыт лишь потому, что у его автора в этот момент устраивается личная жизнь и ему не до программирования. Но, как говорил кузнец из «Формулы любви», «ежели один человек построил, другой завсегда разобрать может», то есть в случае если проект действительно стоящий, скорее всего его подхватят другие разработчики и сделают еще лучше.

Некоторые фундаментальные вещи имеют историю в десятки лет - в частности, это относится и к основополагающему понятию в сфере пользовательского интерфейса - X-серверу. Вспомним эпохальное событие 1984 года - анонс графической подсистемы X Window System (Project Athena), родившейся в недрах MTI (Массачусетского технологического института), - с тех пор X Window System является основной графической системой для ОС семейства Unix.

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

На сегодня X Window system имеет версию 11. Версии 1-6 были монохромными и работали на дисплеях DEC VS100, подключенных к рабочим станциям VAXen и VAXstation 1 и 2. Версии 8-10 уже подразумевали расширение цветовой палитры и работали на VAXstation II/GPX - но с замечательной возможностью выполнения на аппаратуре и других производителей. Актуальная версия 11 имеет полностью пересмотренную архитектуру на предмет увеличения производительности, расширяемости и качества работы с графикой.

Но с точки зрения однопользовательской работы, X - это настоящий мастодонт, обремененный множеством ненужных в данном случае функций и не отвечающий насущным требованиям. Будем справедливы, на «X Window System» свет клином не сошелся, существуют прекрасные коммерческие разработки Accelerated X или MetroX, в полной мере задействующие возможности аппаратуры и предоставляющие необходимый функционал. Но ключевое слово здесь - «коммерческие», что подразумевает покупку за деньги, а это в мире открытого/свободного программного обеспечения выглядит совсем неспортивно.

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

Как заведено в клане Unix/Linux, помощь сообществу приходит от серьезных игроков. На этот раз благотворительностью блеснула компания Novell, которая «подобрала» зачахший было проект Xgl и вдохнула в него новую жизнь. Разработка Xgl была начата еще в 2004 году, но над ней трудилось лишь небольшое сообщество программистов.

Теперь Novell решила вплотную заняться перспективной технологией и включить Xgl в свой дистрибутив. Полной благотворительностью это явление назвать нельзя - пожалуй, Novell с удовольствием взяла бы и сделала Xgl закрытым, чтобы охотней покупали ее дистрибутив SuSe, - но лицензия Xgl завещала «делиться».

Xgl открывает разработчикам возможности создания прозрачных объектов, трехмерных эффектов и масштабирования окон. Другое направление - ускорение работы интерфейсов, например, вывода текста. Оба подхода как нельзя лучше вписываются в свободную нишу X-сервера, и теперь графический интерфейс в Linux может выглядеть роскошно. На одном из своих мероприятий Novell показывала Xgl «живьем» - тем, кому не удалось увидеть это своими глазами, советую найти в Сети видеоролики, зрелище однозначно стоит того.

На фоне Xgl возможности Mac OS X выглядят уже не так убедительно - оказывается, окна могут попросту «оживать», как будто нарисованы не в виде строгого прямоугольни- ка, а отлиты из желе. При помощи Xgl можно, к примеру, представить виртуальные рабочие столы в виде граней куба и при переключении между ними наблюдать впечатляющий эффект вращения.

Внутри - все как обычно. Xgl использует OpenGL-акселерацию, что и неудивительно - другого пути попросту нет, ведь DirectX доступен только для ОС семейства Windows. Подключение ресурсов OpenGL к отрисовке рабочего стола важно также для повсеместной реализации векторной графики. Работы над этим ведутся, в частности, авторами оконного менеджера Gnome

в рамках проекта Cairo. Novell планирует и дальше способствовать развитию Xgl и создавать дополнительные компоненты (здесь применяется еще одна разработка компании - Compiz).

Фактор, способный помешать глобальному распространению продвинутой графики на рабочих столах Unix/Linux-систем, - отсутствие полноценных открытых драйверов оборудования. Основные поставщики графических процессоров - ATI и NVidia вовсе не торопятся открывать исходные коды своих драйверов, а имеющиеся свободные решения неспособны достичь качества фирменных, «родных».
Windows Vista
Достойный ответ от Microsoft пока не прозвучал окончательно, но можно не сомневаться, что миллионы-миллиарды долларов на разработку интерфейса Aero потрачены не напрасно. Пока не вышел релиз операционной системы Vista, мы не вправе что-либо категорично заявлять, но кое-какие выводы сделать можно уже сейчас - на основе публичных бета-версий. Так, более-менее уверенно можно говорить о системных требованиях новой графической подсистемы Windows. На сегодня они таковы: 256/512 Мбайт видеопамяти для разрешения 1920×1080 пикселей, Windows Display Driver Model (WDDM), интерфейс AGP 8X или PCI Express x16, совместимость с DirectX 9.0c, Pixel Shader 2.0. А это очень и очень немало, особенно если иметь в виду, что вся описанная выше мощь требуется для отрисовки иконок и окошек.

Если Apple назвал свой интерфейс Aqua («вода»), то Microsoft назвала свою разработку Aero («воздух»). Не все современные видеокарты способны работать с Aero, но те, что достаточно мощны, обеспечивают фантастические эффекты.

В дополнение к прозрачным рамкам окон Aero также включает Flip 3D (WinKey+tab) - это замена современному механизму переключения окон по Alt+Tab с миниатюрами запущенных приложений, а также различные привлекательные эффекты анимации.

Подытоживая сказанное, замечу: относительно спокойная наша с вами жизнь кончилась. Теперь компьютер будет вовсю шевелить прозрачными окнами, переливаться рабочими столами, а видеокарта - отрабатывать каждый вложенный доллар в течение всего своего рабочего дня, от включения до выключения системного блока. И если сегодня упомянутую в самом начале революцию я назвал вялотекущей, то с момента официального выхода Vista она станет совершенно явной. Конечно, вольному воля, и никто насильно не заставит пользователей работать с резко продвинувшимися в плане красоты операционными системами. Но рано или поздно это случится само собой, подобно плавной замене черно-белых телевизоров цветными (тогда ведь тоже никто никого не заставлял их менять, просто черно-белые перестали выпускать). Так что в свое время и «двумерный» рабочий стол, подчинившись эволюции, отомрет как вид и займет свое почетное место в ряду пользовательских интерфейсов - в промежутке после командной строки, но перед трехмерными и какими-нибудь еще более прогрессивными собратьями, которые будут, например, источать аромат или позволят трогать себя рукой…

IT News

Программное обеспечение   Теги:

Читать IT-новости в Telegram
Информационные технологии
Мы в соцсетях ✉