Расставляем все главные точки над 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 датируется
Однако за столь долгое время существования Х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-серверу и многое другое.