Расставляем все главные точки над X

X Window System - это не Linux

 

 

Алексей Федорчук alv@newmail.ru

 

UPGRADE #31 (121) август 2003, стр. 32-35

 

 

В этой статье речь пойдет о том средстве, которое обеспечи­вает работу в графическом режи­ме в Linux и всех родственных ему операционках, - об оконной системе X. Казалось бы, на эту те­му писал не только ленивый, но и патологически ленивый. Однако ряд обстоятельств последнего времени вызвали и у меня жела­ние вернуться к ней. В оправдание скажу, что не буду повторять опи­сание того, как включить колесико скроллирующей мыши или уста­новить сверхъестественную часто­ту развертки монитора. Вместо этого мне хотелось бы обратить внимание на взаимоотношения X Window System и тех операцион­ных систем, с которыми она ра­ботает. И потому сначала...

 

 

Договоримся о терминах

В англоязычной литературе предмет заметки именуется X Window System, что по-русски передается очень по-разному (хотя и одинаково неуклюже; ка­юсь, многие из этих названий сам употреблял многократно) - и сис­тема X Window, и X Window про­сто, и оконная система X, а од­нажды мне попалось даже выра­жение "система X Window System". Хотя устоявшееся в народе имя ее просто и незамысловато - "Иксы".

Какой из этих переводов пра­вилен? Ответ на этот вопрос име­ет не только филологическое зна­чение, потому для начала рассмо­трим каждый из компонентов оригинального названия.

Русскоязычному пользовате­лю, на моральный облик которо­го оказала тлетворное влияние Windows, созвучное ему слово в названии предмета статьи кажет­ся главным и определяющим, а некая буковка X - только уточня­ющим элементом. Однако при этом, как сказал бы Гоблин, про­исходит типичная подмена поня­тий, когда теплое путается с мягким. Потому как дело обстоит с точностью до наоборот.

Ибо кажущееся зловещим сло­во Window с именем созвучной ОС никак не связано, а является только прилагательным для слова System и показывает, что ее раз­работчики создали графическую оконную систему, что и отличает ее от систем графических же, но полноэкранных. А нынешнему пользователю нелегко уже вспом­нить, что еще чуть более десятка лет назад последних было боль­шинство. Достаточно заметить, что чуть ли не каждая вторая DOS-программа считала своим долгом обзавестись со временем собственным графическим интер­фейсом, функционировавшим, как правило, именно в полноэк­ранном режиме. И весьма справно подчас функционировавшим: до сих пор не могу забыть изящества и быстроты графического интер­фейса электронной таблицы QuttroPro четвертой версии...

Да и ныне примеры полноэк­ранных графических систем встречаются - SVGALib, обеспе­чивающая, в частности, запуск под Linux культовой игры пред­шествующего поколения - DOOM. И сама по себе консоль в Linux, реализованная через так называе­мый Frame Buffer, - не что иное, как полноэкранная графическая система, поддерживаемая на уровне ядра системы. А, скажем, у Sparc вообще нет текстового ре­жима, и консоль в Solaris для Sparc всегда будет графической.

С окнами разобрались, слово System будем условно считать ин­туитивно ясным, остается загадоч­ный мистер X. Возникло эта буква оттого, что в момент создания си­стемы, - а был это 1984 год, - уже существовала графическая систе­ма, именовавшаяся W. Так что разработчики не мудрствовали лу­каво с названием своего произве­дения (английский алфавит мы еще помним, не так ли?). На поверку оказывается, что именно жаргонное словечко "Ик­сы", режущее слух ревнителям чистоты русского языка, весьма точно передает смысл английско­го названия. К тому же гораздо более компактно и литературно изящнее, чем неповоротливое "оконная система X".  И потому именно так мы и будем называть нашего героя - как коронованную особу, почтительно склоняясь к множественному числу.

За свою долгую жизнь "Иксы" сменили множество инкарнаций (пардон, версий), которые тоже нумеровались на манер королей, правда арабскими цифрами - Х1, Х2 и т. д. Они сменяли друг друга весьма быстро - версия Х10 дати­руется 1986 г. Но последней ин­карнации (версии Х11), суждено было практическое бессмертие в масштабах времени компьютер­ной индустрии: она существует с 1987 г. по сей день.

Однако за столь долгое время существования Х11 не могла не модифицироваться. И модифика­ции эти, сиречь ревизии, также получали номера (последним на долгие годы стал X11R6). Правда, это было столь давно (около 10 лет назад), что все прочие реви­зии также потеряли практический смысл. Однако по историческим причинам в файловом древе лю­бой UNIX-системы, в которой "Иксы" установлены, существует каталог/usr/X11R6, в котором и концентрируются почти все фай­лы, имеющие к ним отношение.

И последнее замечание о тер­минологии. Пользователю Linux, пожелавшему благ графического режима, непременно придется столкнуться с заклинанием XFree86, употребляемым обычно как практически синоним системы X (хотя и не идентично этому тер­мину). Что это?

Дело в том, что собственно "Иксы" - это некий набор стандар­тов, а не конкретная программа для реализации графического ин­терфейса. Каковых, то есть реа­лизаций, существует изрядное ко­личество, и распространяются они на разных, в большинстве своем коммерческих, условиях. Так вот, XFree86 - это одна из таких реа­лизаций Х11R6, распространяемая свободно (отсюда - Free), на ус­ловиях собственной лицензии, весьма близкой к известной GPL. И, кроме того, предназначенная конкретно для платформ, базиру­ющихся на процессорах Intel x86 и совместимых, что и символизи­руют цифры в названии.

Скажу сразу: все, о чем будет говориться далее, основывается именно на XFree86, поскольку только с ней и сталкивается обычно пользователь свободных систем типа Linux на архитектуре i386. Так что термины "Иксы" и XFree86 действительно выступают как своего рода синонимы. Одна­ко всегда нужно держать в уме, что Х-мир не исчерпывается сво­бодной реализацией.

 

Кто вы, мистер "Икс"?

Прояснив вопрос, как следует называть "Иксы", попробуем ра­зобраться, что же это такое. И попутно - развеять еще один распространенный предрассу­док. Дело в том, что большинст­во начинающих пользователей Linux, особенно - пакетных его дистрибутивов, рассматривают "Иксы" как неотъемлемую со­ставную часть этой ОС. Что, как сказал бы Венечка Ерофеев, не менее позорно и преступно, чем помешивать "Слезу комсомолки" веточкой жимолости. Любому младенцу должно быть известно, что коктейль этот можно поме­шивать только веточкой повили­ки. Так и "Иксы": считать их час­тью Linux нельзя, ибо таковой они не являются. "Иксы" создавались для того, чтобы обеспечивать графический режим поверх любой операцион­ной системы и на любой аппара­туре, в принципе способной к воспроизведению графики.  Ипо­тому, скачав исходные тексты, скажем, XFree86 (а сделать это можно с серверов проекта, список которых имеется на сайте www. xfree86.org, всего-то мегабайт 60 для текущей версии 4.3), пользо­ватель может скомпилировать их и в любом дистрибутиве Linux, и во FreeBSD, и в любой UNIX-сис­теме вообще. И во всех этих слу­чаях это будет одна и та же XFree86 с практически одинако­вым (зависящим от версии) кру­гом поддерживаемой аппаратуры, настраиваемая абсолютно одина­ковыми методами.

Строго говоря, "Иксы" не име­ют отношения даже и к UNIX (или, говоря шире, к POSIX-совместимым системам). Потому что существует порт "Иксов", скажем, на OS/2, никак с UNIX не связан­ной. А некоторые отважные лю­ди, как гласят легенды, умудря­ются собирать "Иксы" даже и для Windows.

Так что понятие "Иксов", с од­ной стороны, выше любой ОС, на которой (то есть над ядром кото­рой) они работают, с другой же, -много шире, ибо, подобно коро­левской мантии, драпирует вели­кое множество операционок.

 

Сердце мистера "Икс"

Говоря иными словами, X -он, подобно тузу, и в Африке X. А потому часто возникающие в Linux-форумах вопросы, как, на­пример: "Могу ли я установить Linux на машину с видеокартой имярек?" или "Как мне настроить видеорежим в Mandrake?" по­ставлены не вполне корректно. Потому что самой ОС Linux (как, впрочем, и Free- или NetBSD), строго говоря, по барабану, какая в машине стоит видеокарта (лишь бы она была VESA-совместимая, но иных уже давно не осталось). А вот какой круг карт поддержи­вает Х-сервер конкретной версии XFree86 - это именно то, что сле­дует знать пользователю, если он решается на работу в графичес­ком режиме из любой из пере­численных операционок.

Потому что Х-сервер - это сердце "Иксов", непосредственно взаимодействующее с аппарату­рой, обеспечивающей ввод (то есть клавиатурой и мышью - в "Иксах" роль последнего устрой­ства невозможно переоценить) и вывод (то есть видеокартой и мо­нитором).

При слове "сервер" обычно возникают ассоциации с чем-то большим и многофункциональ­ным, обслуживающим большое количество пользователей / про­грамм / процессов и т. д. Однако Х-сервер - это совсем неболь­шая программа размером в пару-тройку мегабайт (согласитесь, по нынешним временам - просто смешно). И к тому же функции ее весьма ограничены - от нее тре­буется только обеспечить тот са­мый графический ввод и вывод, причем только на конкретной ма­шине данного пользователя. Но зато для любых запущенных им программ, которые и выступают в качестве клиентов этого сервера.

Можно условно сказать, что привычные понятия сервера и клиента в архитектуре "Иксов" не­которым образом перевернуты с ног на голову. Так, вполне реаль­на ситуация, когда Х-сервер за­пускается на хиленьком Х-терминале (клиентской машине локаль­ной сети), а пользовательское приложение - на могучем класте­ре. Причем почти никаких огра­ничений на их положение в про­странстве не накладывается -лишь бы коммуникации позволя­ли взаимодействие между ними. Это взаимодействие осуществля­ется по специальному сетевому протоколу, который называется (как бы вы думали?) Х-протоколом. То есть в любом случае (да­же на локальной машине) при исполнении в "Иксах" любой про­граммы (даже консольной) ими­тируется сетевое взаимодействие. Вот почему, в частности, при кон­фигурировании ядра Linux вклю­чение общей поддержки сети (и еще некоторых связанных опций) практически обязательно.

Однако вопросы протокола далеко выходят за рамки наших  сегодняшних задач, об "Иксовых" клиентах речь пойдет ниже, а пока вернемся к Х-серверу. Поскольку именно он всегда запускается на локальной машине, на него и воз­ложена критическая миссия взаи­модействия с железом. Правда, "главных" железных компонентов (таких, как процессор, память, диски) он не касается - это вахта ядра операционной системы, по­верх которой запущен Х-сервер. А вот то, что связано с вводом и выводом (мышь, клавиатура, ви­деокарта, монитор) - тут уж ему никто не в силах помочь.

Легко понять, что наиболее критичным является взаимодей­ствие с видеокартой: мыши и кла­виатуры достаточно стандартизи­рованы, любой монитор всегда можно заставить работать (пусть и не в идеальном режиме), а вот видеокарт наплодили столько, что и исчислить трудно. 1/1 каждую -опознай (хотя бы на уровне чипа), поддержи и добейся от нее наи­лучшей производительности.

Ранее, в версиях XFree86 (речь здесь идет конкретно о ней, как обстоит дело в других реализаци­ях "Иксов" - просто не знаю) ниже 4.0, эта задача решалась так, что для каждой модели карты (вер­нее, серии моделей на одинако­вом или родственном чипе) со­здавался свой Х-сервер, и некий джентльменский их набор (S3, Mach32, Масп64 и так далее) вхо­дил в штатную поставку "Иксов". Для чипов, не осчастливленных такой честью, был разработан от­дельный SVGA-сервер, теорети­чески поддерживавший расши­ренные возможности VESA-сов­местимых карт. И, наконец, в обя­зательном порядке наличествовал VGA-сервер, гарантирующий на (почти!) любых картах замеча­тельный видеорежим 640 х 480 @ 16 (замечу, что работать в "Иксах" при разрешении ниже 800 х 600 практически невозможно, а ком­фортный минимум - 1024 х 968).

Так продолжалось до версии XFree86 3.3.6, доставляя немало неприятностей пользователям, и не обязательно начинающим. По­тому что если видеокарта пред­ставляла собой объективную ре­альность, данную ощущением се­мейного бюджета, и не входила в сакральный список отдельных X-серверов да еще и не поддержи­валась толком SVGA-сервером, то, будь ты хоть трижды UNIXгу­ру, оставался только несчастный VGA-режим. А некоторые карты и в нем отказывались работать, и тогда "Иксы" просто не запуска­лись. Правда, пользователи с минимальным опытом просто избе­гали "неподходящих" видеокарт. Так у меня с тех времен осталось стойкое неприятие продукции ATI, хотя ныне, говорят, с ними все не хуже, чем с прочими.

Два события поспособствовали изменению ситуации в лучшую сторону: выход XFree86 версии 4.x и особенно резкое сокращение числа производителей видеочипов (смайлик - по желанию). В ре­зультате ныне в составе "Иксов" имеется только один Х-сервер, то самый, что ранее именовался SVGA. На который и возложена поддержка как старого карточного расклада, так и всего, что нам ны­не сдают банкометы. И, надо ска­зать, новосданные карты покры­ваются им очень оперативно - в стопке взятых все распространен­ные чипы от NVIDIA, ATI, Matrox (правда, относительно карт, появ­ляющихся из рукава, типа Xabre у меня уверенности нет).

 

Поступившись принципами

Так что ныне нет больших ос­нований для беспокойства и гада­ния на ромашке - установятся "Иксы" или не установятся. Доста­точно сказать, что список стан­дартно поддерживаемых текущим Х-сервером видеокарт превышает полтысячи. Осталось только ре­шить, как из этого многообразия выбрать подходящую.

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

Пользователь пакетных дис­трибутивов Linux обычно получает "Иксы" готовыми, в момент пер­вичной установки по умолчанию (не в этом ли первопричина пред­ставления об их неразрывном единстве?). А конфигурирование при этом выполняется штатным установщиком этого дистрибутива путем очевидных ответов на ряд вопросов. В дальнейшем пользо­ватель такого дистрибутива может изменить глубину цвета, разреше­ние и тому подобные параметры, пользуясь штатными утилитами настройки данного дистрибутива. В которых подстройка "Иксов" ча­сто идет (Mandrake тут - яркий пример) в одном ряду с измене­нием загрузчика по умолчанию и множеством других вещей, к "Ик­сам" никакого отношения не име­ющих (не тут ли корень иллюзии о единстве "Иксов" и конкретного Linux-дистрибутива?). Однако, как я уже отмечал ра­нее, X - он и в Африке X, и "Иксы" от Mandrake по определению не могут отличаться от "Иксов" от FreeBSD. Конечно, многие разра­ботчики дистрибутивов наклады­вают на первичный код "Иксов' какие-либо патчи, как предпола­гается, способствующие их улуч­шению. А при сборке делят их на многочисленные пакеты, что поз­воляет при необходимости не ус­танавливать систему целиком (первозданные "Иксы" с www х(тее86 oig до недавнего времени распространялись в виде трех, ныне же - семи tgz-архивов). Ну и снабжают их дополнительно ба­зами данных априори известного оборудования типа мониторов, доверяться которым, впрочем, подчас рискованно.

Однако сути дела это не меня­ет, и "Иксы" остаются системной целостностью, никак не связанные с, если так можно выразиться, хост-ОС. И имеют собственные штатные средства конфигуриро­вания, идентичные средствам операционок диапазона от NetBSD до самого user-friendly дистрибу­тива Linux. Средств этих в теку­щей версии три - графическая утилита xf86cfg, текстовая про­грамма xf86config и... любой текс­товый редактор.

О первой распространяться не буду: до недавнего времени назы­вать ее рабочей было бы опро­метчиво. И даже ныне, когда она не всегда подвешивает машину до "ресета", никаких особых досто­инств в ней я не обнаружил.

Другое дело xf86contig - она, несмотря на свое очевидное не­удобство, верой и правдой про­служила поколениям пользовате­лей "Иксов". Работа с ней сводится к ответу на серию пулеметных очередей из вопросов, одни из которых требуют отрицания или подтверждения, другие же - вы­бора из списка, подчас (как в от­ношении видеокарт) занимающе­го многие экраны. В современной версии XFree86 с помощью этой утилиты при аккуратном обраще­нии и некоторой минимальной подготовке (в частности, понима­нии разницы между протоколом мыши и ее портом) можно в пер­вом приближении настроить "Ик­сы" вполне корректно, вплоть до обеспечения клавиатурного ввода кириллицы.

Отмеченное выше неудобство утилиты xf86config состоит в ее диалоговой природе. То есть при ошибочном ответе на любой, хоть предпоследний, вопрос вы­полнение ее приходится обрывать и начинать все сначала. Главное же - полученный с ее помощью результат можно при­знать удовлетворительным толь­ко в первом приближении. В ча­стности, довести до ума (то есть экранного вывода) русификацию с ее помощью не удастся. И тут на помощь приходит текстовый редактор.

Работа любой утилиты кон­фигурирования "Иксов" (штатной ли, из комплекта, или дистрибу­тив-специфичной) сводится к ге­нерации главного конфигураци­онного файла "Иксов" - /etc/X11/ XF86Config, в который и заносят­ся все выбранные настроечные параметры. Собственно, это и есть их главное предназначение - создавать этот файл с нуля было бы весьма обременительно. А вот править уже сгенерированное - самое милое дело. Именно таким образом можно не только завер­шить русификацию системы, но и установить идеальные видео­режимы... впрочем, вот об этом я клятвенно обещал не писать.

 

Х-клиенты

От самого по себе Х-сервера, даже идеально настроенного, пользователю радости мало. В этом легко убедиться, запустив его в "чистом" виде, что в общем случае делается из консоли ко­мандой х (это символическая ссылка на файл конкретного X-сервера, в нашем случае -/usr/X11 R6/bin/XFree86). После чего мы увидим топорно сбитый мышиный курсор на фоне серой ряби рыбьей чешуи и... более ни­чего. Никаких действий предпри­нять не удастся, только если вер­нуться в текстовый режим комби­нацией клавиш Alt+Ctrl+Backspace.

Вот тут-то самое время вспом­нить о программах-клиентах, вскользь упомянутых выше. И на­ипервейшими из таких клиентов для нас будут оконные менедже­ры. Только они помогут исполь­зовать мощь Х-сервера в мирных целях. А заодно и развеять еще одно расхожее мнение, будто бы "Иксы" имеют какой-то пользова­тельский интерфейс (приходилось слышать даже, что Windows-по­добный).

Нет, как мы только что убеди­лись, ни малейшего интерфейса "Иксы" сами по себе не образуют (если не считать таковым те са­мые три клавиши). Ибо обеспе­чение интерфейса - задача окон­ных менеджеров. Именно окон­ный менеджер отвечает за вывод окон на экран (еще бы!), их внешний вид, управляющие кнопочки и рюшечки, а также пове­дение в ответ на действия поль­зователя (максимизацию, мини­мизацию, масштабирование, пе­ретаскивание и т. д.).

Собственно, по закону на этом обязанности оконного менеджера заканчиваются. И некоторые из менеджеров ничего более и не делают. Впрочем, таких весьма мало; большинство же поступает по понятиям, добровольно воз­лагая на себя дополнительные обязанности.

Первейшей из таких обязан­ностей является обеспечение за­пуска приложений. Делается это самыми разными способами -посредством контекстных меню, как Blackbox и прочие представи­тели славного "боксового" семей­ства, кнопок-пиктограмм, как WindowMaker, инструментальной панели с сакраментальной стар­товой кнопкой, как IceWM, впро­чем, большинство менеджеров допускает комбинацию разных способов.

Дальше - больше. В оконных менеджерах появляются встроен­ные средства самоконфигуриро­вания (а то и конфигурирования вообще). Затем они обрастают мелкими утилитками типа часов, мониторов системных ресурсов и тому подобных фенечек. А там недалеко уже до файловых мене­джеров, текстовых редакторов и других всамделишных пользова­тельских приложений. И в ре­зультате скромный оконный ме­неджер превращается в интегри­рованную рабочую среду или, по-простому, десктоп.

Правда, рассматривать деск­топы как выросшие над собой файловые менеджеры было бы неправильно. Собственно, только один XFce мог бы выступать в этом качестве. Прочие же - KDE и GNOME - изначально задумы­вались как программные ком­плексы, предоставляющие (по идее) пользователю все возмож­ности для управления системой и работы в ней.

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

Подчеркну, что ни оконные менеджеры, ни тем более десктопы не являются составной частью "Иксов". Правда, в комплект стан­дартной поставки последних вхо­дит один - twm, весьма удручаю­щий своим внешним видом. Од­нако роль его - быть той самой рыбой на безрыбье. Все же про­чие должны устанавливаться и за­пускаться, как любые другие пользовательские программы.

С установкой все ясно: плавали - знаем. А вот как быть с запус­ком? Ведь мы уже видели, что из самих "Иксов" запустить ничего нельзя. Конечно, ничто не мешает из командной строки вместе с X-сервером запустить и оконный менеджер, однако этого обычно никто не делает, потому что на штатную должность стартера "Ик­сов" разработчики назначили /usr/X11 R6/bin/startx - простой сценарий оболочки, в обязанности которого входит, помимо собст­венно вызова Х-сервера, еще и обработка главного конфигураци­онного файла "Иксов" - /etc/X11/ xinit/xinitrc. А вот уж в нем, среди всего прочего, и прописывается оконный менеджер по умолча­нию. Им же, как мы помним, в свежесобранных "Иксах" выступа­ет twm. Чего бы с ним сделать, чтобы не выступал? Править сис­темный xinitrc не рекомендуется, да в этом и нет необходимости. Потому что можно просто создать в своем пользовательском ката­логе аналогичный - $HOME/.xini-trc (обращаем внимание на точку в имени), в который для наших целей достаточно внести одну-единственную строчку вроде exec имя_файла, которая отвечает за запуск нашего любимого файло­вого менеджера, - и дело в шля­пе. В ответ на команду startx мы получим строгий Blackbox, сюр­реалистический Enligthenment, всеинтегрирующий KDE - словом, все, чего только душа пожелает.

Остается определить: чего она, наша душа, именно желает такого эдакого. Для этого волей-неволей придется перепробовать пяток-другой различных менед­жеров и десктопов, благо, что выбор тут есть более чем бога­тый. На описания их полагаться трудно, нет ничего более субъек­тивного, чем отношение к рабо­чей среде графического режима. Есть немало программ выбора среды обитания при старте в "Ик­сах". Однако можно поступить проще - создать несколько стро­чек   

 

#exec  имя_файла

 

(по числу претендентов на наш Рабочий стол) и по очереди снимать с них комментарии, пока не будет най­ден идеал или оптимум.

 

 

 

 

 

 

 

(Врезки к статье)

 

Что у него за пазухой?

Кроме инструментов, под­держивающих работоспо­собность системы, в состав "Иксов" штатно входит и кое-какой пользователь­ский инвентарь. Это всякого рода часы и календарики, лупы и калькуляторы, сред­ства настройки (в частности утилита выбора шрифтов -xfontsel). Есть даже тексто­вый редактор - xedit, прав­да пользоваться им можно только от полной безысход­ности - чего-чего, а редак­торов в каждом дистрибу­тиве хватает - можно и по­лучше подобрать. Очень важная утилита - xkill - аналог созвучной кон­сольной команды. Подчас только с ее помощью мож­но закрыть безнадежно за­висшее приложение. Если вызвать ее средствами оконного менеджера, на­пример, из контекстного меню, то курсор приобрета­ет форму черепа с костями или в зависимости от фан­тазии разработчика дескто­па иные, столь же зловещие очертания. Теперь достаточ­но щелкнуть мышью в лю­бом месте окна с зависшей программой - и она исчез­нет вместе со своим окном. Только следует соблюдать аккуратность и случайно не зацепить другое окно, в ко­тором открыт важный не со­храненный документ, пото­му что никаких подтверж­дений на закрытие, предло­жений сохранить файл и то­му подобную мягкотелость xkill не признает, что вооб­ще является характерным для UNIX-программ.

 

Что у него в карманах?

Разумеется, Х-сервером "Ик­сы" не исчерпываются, иначе откуда взялись бы те 60 с лишним мегабайт дистрибу­тива. И потому другой наи­главнейший их компонент -библиотека базовых функ­ций, именуемая Xlib. Далее - шрифты. В базовом комплекте их изрядное ко­личество - растровые, для разных экранных разреше­ний, и векторные, масшта­бируемые. Среди последних традиционно первенствова­ли шрифты ATM, но в по­следнее время и TTF-шрифты не чужеродны для "Ик­сов". Что приятно, в стан­дартный комплект чуть ли не исконно входят кирилличес­кие шрифты (правда, только растровые и только в коди­ровке KOI8, но и это лучше, чем ничего).

Шрифтовым хозяйством нужно как-то управлять. В принципе, с этим справляет­ся сам Х-сервер, однако в последнее время в моду во­шел собственный сервер шрифтов - xfs. Главное, что он дает, - это возможность использования шрифтов с удаленного компьютера, на­пример сетевого сервера. Согласитесь, не самая акту­альная возможность для до­машней машины, к тому же, как я недавно узнал, еще и способствует падению про­изводительности. Так что можно обойтись без него: вопреки распространенному предрассудку и без xfs вполне можно работать с TTF-шрифтами. Затем идет очень важный компонент - подсистема рас­ширенного управления кла­виатурой - ХКВ. Это весьма сложный комплекс управле­ния клавиатурой, без кото­рого тоже, в принципе, мож­но было бы обойтись. Одна­ко в данном случае это не оправданно. В частности, корректная русификация всех современных программ выполняется именно в пред­положении, что подсистема ХКВ задействована. В про­тивном случае приходилось бы прибегать к различным (к тому же не универсальным) ухищрениям.

 

Без окон, но с дверьми

А можно ли обойтись без оконного менеджера? В принципе, можно (многие, кстати, так и поступают). Ибо любую программу для "Иксов" можно запустить просто из командной стро­ки, правда не консоли (в этом случае последует сооб­щение об ошибке соедине­ния с Х-сервером - еще бы, ведь он не запущен). А из строки все того же эмулято­ра терминала - xterm (или любого другого, например rxvt, только его придется ус­тановить отдельно). Однако перед этим следует обеспечить запуск самого xterm вместе с Х-сервером. Делается это редактирова­нием все того же файлика $HOME/.xinitrc. И очень просто: достаточно внести в него единственную строку -xterm. И тогда в ответ на ко­манду startx мы получим терминальное окошко на сером фоне обнаженного мистера "Икс". Из командной строки тер­минала можно запустить любое приложение - хоть GIMP, хоть OpenOffice. Можно даже воспользо­ваться прелестями многоза­дачности, запуская про­граммы в фоновом режиме, то есть получить в "Иксах" нечто вроде эмулятора текс­товой консоли. Правда, без возможности переключения между ними, ведь каждая программа графического режима запускается в своем окне, а менеджера окон-то у нас и нет!

Зачем может понадобиться такое извращение? Ну хотя бы для запуска тяжелого графического приложения при явном дефиците ресур­сов. Хотя чаще всего такой метод используется при до­ступе на удаленную машину с X-терминала. Впрочем, в старые времена, когда StarOffice имел собствен­ный интегрированный десктоп, запустив оный из терминального окна, мож­но было вести почти полно­ценную работу. Разумеется, если все потребные задачи решались исключительно средствами StarOffice.

 

Главная утилита "Иксов"

Безусловно, важнейшая из всех прикладных утилит в "Иксах" - штатный эмулятор терминала - xterm. При его вызове на экране появляет­ся окно с командной стро­кой оболочки - той, кото­рая прописана как login shell для данного пользова­теля. А уж в этой команд­ной строке можно вытво­рять все то же самое, что и в консоли. С той только разницей, что при этом есть возможность щелчком мыши переключаться в другие окна, переходить на другие виртуальные рабо­чие столы, а главное - об­мениваться данными с программами графическо­го режима.

Простой пример: вы в брау зере обнаруживаете файл, который необходимо ска­чать, копируете его URL, пе­реключаетесь в терминаль­ное окно, вызываете кон­сольного FTP-клиента (на­пример, wget) и щелчком средней клавиши мыши вставляете в командную строку адрес того самого файла. Поверьте, очень удобно, особенно в тех оконных менеджерах, где фокус окну можно переда­вать без клика, просто по перемещению курсора. Одако, не рискуя погре­шить против правды, заме­чу, что чаще всего терми­нал используют для того, чтобы запустить в нем один из лучших (если не луч­ший) файловых менедже­ров Midnight Commander, при помощи которого мож­но проделывать почти все операции, которые могут понадобиться в процессе работы - копировать фай­лы, просматривать и редак­тировать их содержимое, коннектиться к ftp-серверу и многое другое.

Hosted by uCoz