4.3 Система X WindowСистема X Window является стандартным GUI (Графическим Интерфейсом Пользователя) для всех UNIX платформ, включая Linux. В отличие от Windows и MacOS, в Linux и Unix, GUI не имеет ничего общего с ядром операционной системы. Это независимые части. Это придаёт системе большую стабильность: если GUI зависает, это не приводит к зависанию всей системы. Единственная проблема с X, это то, что её достаточно трудно настроить. Тем не менее, в Slackware 7 представлена безнастроечная установка X, Которая использует framebuffer драйвер. А это означает, что вам не надо проходить через процедуру настройки описанную в подразделах xf86config и XF86Setup. framebuffer будет работать на всех VESA 2.0 - совместимых видео картах. Что в свою очередь означает, что все современные видео-карты будут работать в X. Но всё же, framebuffer работает значительно медленнее, чем правильно настроенный под вашу видео-карту X сервер. Если вы всё же решили использовать framebuffer сервер, то вам надо установить пакет xxfb.tgz из раздела программ X. Вам так же необходимо будет выбрать одно из разрешений консоли во время процесса настройки в программе установки. Тем не менее, для большинства пользователей мы всё же рекомендуем пройти через процедуру настройки X. Если вы решили настроить X в вашей системе, то вам надо следовать инструкциям из раздела 4.3.1 или из раздела 4.3.2. Первый из разделов описывает использование xf86config(1) - программу в стиле командной строки, для настройки X. Второй из разделов относится к программе XF86Setup(1) - графической версии программы настройки.
4.3.1 xf86configxf86config это одна из двух программ, для настройки X, доступных в вашей системе. Основная идея довольно проста. Вам следует ответить на серию вопросов с фиксированным числом ответов. Выбирайте ответы, наиболее подходящие вашей системе. После того, как вы пройдётесь через всю программу, она создаст файл /etc/XF86Config(5)23. И вы будете готовы к запуску X. Если вы ошиблись где-то, вам надо прервать выполнение программы при помощи control+c и начать всё с самого начала. Полезно собрать как можно больше информации о ваших видео карте и мониторе, до запуска xf86config. Вы можете получить информацию о видео карте при помощи программы SuperProbe:
Её запуск выдаст вам вначале предупреждение о возможном подвисании системы. Если это испугало вас, то выйдете при помощи control-c до того, как пяти секундный отсчёт не закончился. Если вы всё же продолжите,то вы получите некоторую информацию о вашей видео-карте:
Вот так выглядит информация для ATI Rage Pro видео-карты. Запишите информацию о вашей видео-карте или переключитесь на другой виртуальный терминал (используя комбинацию клавиш alt-Fx (функциональная клавиша), где x - число от 1 до 6) и запустите там xf86config. Информация о видео-карте понадобится вам позже. xf86config должна быть запущена пользователем root, так как она запишет фалы и создаст символические ссылки в местах, где только у root пользователя есть права на запись:
Сразу после запуска вы увидите полный экран текста, рассказывающего вам, что программа собирается делать. Помните, что вы не можете возвращаться к предыдущему экрану, если вы сделаете ошибку, так что отвечайте внимательно. Иначе вам придётся повториться несколько раз. Нажмите ввод, как программа вам и предложит.
В случае, если вы правильно ответили на все вопросы, и установили пакет X сервера, то теперь вы можете запустить X следующим образом:
Если вы установили KDE или GNOME, то один из них загрузится. Иначе вам надо запустить xwmconfig и выбрать, какой из оконных менеджеров (Window managers) вы хотите, чтобы запускался по умолчанию. Оконные менеджеры будут описаны позже в этой части. xwmconfig устанавливает оконный менеджер по умолчанию только для пользователя, который запускает программу. Если в вашей системе есть несколько пользователей, каждому из них будет необходимо запустить программу, чтобы выбрать себе оконный менеджер. Существует несколько комбинаций клавиш, которые весьма полезны при использовании X. Если вам надо выйти из X, и вы не можете сделать это правильно, воспользуйтесь комбинацией клавиш control-alt-backspace, которая ''убьёт'' X и выбросит вас в текстовый режим. Вы можете переключиться на терминалы командной строки, из X, нажав control-alt-функциональная кнопка. X запускается на 7-ом терминале, так что вы можете вернуться в X, нажав alf-F7. Ну и наконец, вы можете переключать видео режимы, находясь в X. control-alt-numeric keypad + переключит вас на следующее более высокое разрешение, в то время как control-alt-numeric keypad - переключит на следующее более низкое разрешение.
4.3.2 XF86SetupВторой способ настройки X - программа XF86Setup, графическая программа настройки, которая является частью пакета xset.tgz. Вам так же необходимо установить xvg16.tgz. Чтобы запустить XF86Setup, войдите в систему как root и выполните:
Если у вас уже есть /etc/XF86Config файл (если вы уже настраивали X), то вам будет задан вопрос, хотите ли вы использовать существующий файл. Иначе программа сразу перейдёт в графический режим.
XF86Setup по своей сути очень сходна с xf86config. Она задаст вам те же вопросы, так что обращайтесь к предыдущему разделу за разъяснениями. XF86Setup содержит много справочной информации сама по себе. Так что у вас не должно возникнуть существенных затруднений.
4.3.3 Сессионные файлы настроек
xinitrc и ~/.xinitrcxinit(1) - фактически является программой, запускающей X; она выполняется из startx(1), так что возможно, вы не заметили этого (и скорее всего это вам знать и не надо). Тем не менее, её конфигурационный файл определяет, какие программы (включая и оконный менеджер) запускать при загрузке X. xinit вначале проверяет, есть ли в вашем домашнем каталоге .xinitrc файл. Если она находит его, он выполняется, а иначе выполняется /var/X11R6/lib/xinit/xinitrc (системный файл по умолчанию). Вот пример простого xinitrc фала:
Все из этих ''if'' блоков используются для подключения разных конфигурационных фалов. Очень скоро мы вернёмся к .Xresources, а вот файл .Xmodmap мы оставим в покое. Наиболее интересная часть файла расположена в конце, это та часть, где запускаются различные программы. Эта X сессия начнётся с twm(1) оконным менеджером, с часами и с тремя терминалами. Обратите внимание на exec в строчке запуска последнего из терминалов. Эта команда говорит, что этот терминал (xterm(1)) заменит текущую оболочку (ту, которая запустила xinit сценарий). Когда пользователь выйдет из этого xterm, X сессия закончится. Если вы хотите, определить, какие из программ должны быть запущены в X сессии, скопируйте /var/X11R6/lib/xinit/xinitrc в ~/.xinitrc и отредактируйте его, разместив там строчки, запускающие те программы, которые вы пожелаете. Последние строчки моего выглядят вот так:
Обратите внимание, что есть несколько xinitrc.* файлов в каталоге /var/X11R6/lib/xinit, которые соответствуют разным оконным менеджерам и GUI-ам. Вы можете пользоваться тем из них, каким пожелаете.
.Xresources и .XdefaultsМногие из программ X, для получения различных предпочтений пользователя (цвета, шрифты, и т.д.), используют X Resource Database. Эта база данных обслуживается при помощи xrdb(1) программы, которую напрямую, скорее всего вы никогда не станете запускать. В Slackware она запускается автоматически из xinitrc. Файл из которого xinitrc указывает программе xrdb загружать предпочтения - /.Xresources. xrdb так же загрузит /.Xdefaults. Минимальный файл .Xresources выглядит следующим образом:
Эти четыре строчки определяют настройки для xterm программы. Xresource имеет следующую структуру:
Таким образом содержание .Xresources должно быть само-достаточно для понимания. Не пугайтесь строчки с шрифтами; шрифты для X всегда описываются таким способом.
Серверы и оконные менеджерыИзначально X Window система была разработана, для работы сквозь сеть. Один большой сервер выполняет X программы, а на экран они выводятся на других машинах-клиентах, где угодно в сети. Возможность удалённо выводить на экран программы может иметь много преимуществ. Главные недостатки этой концепции в том, что она менее безопасна, чем локально выполняемые программы, а так же она очень требовательна к сетевым ресурсам. Вы найдёте обсуждение этой концепции ниже в разделе 4.3.5. Даже если вы запускаете X на вашем собственном компьютере, вы имеете дело с клиент-сервер моделью. Сервер это часть, которая определяется видео-картой. Когда вы настроили X и сообщили ему, какая у вас видео-карта, вы определили, каким X сервером пользоваться. Клиентская часть - это все остальные программы, которые вы выполняете в X. Специфический клиент, называемый оконным менеджером, ответственен за внешний вид вашей специфической X сессии. Оконные менеджеры детально обсуждаются ниже. Работа оконного менеджера - обрабатывать рисование окон на экране, с программами внутри этих окон, а так же обрабатывать ввод с мыши и клавиатуры. Первые оконные менеджеры только это и делали. Сегодняшние оконные менеджеры - гораздо более сложные программы, и в них можно настроить практически всё, что вы пожелаете. В них есть все мыслимые опции, которые позволяют сделать ваш рабочий стол отличным от всех других. Большое количество оконных менеджеров действительно отличает Linux от Windows. В Windows, у вас есть одна основная оконная среда. В Linux вы можете пользоваться одним из многих оконных менеджеров, каждый с различным внешним видом и различными настройками. Некоторые люди назовут это недостатком, так как нет одного стандартного внешнего вида. Но большинство пользователей Linux назовут это достоинством, так как вы можете настроить вашу систему так, как пожелаете.
4.3.4 Выбор рабочего столаМногие годы Unix использовался исключительно как операционная система для серверов, за исключением мощных профессиональных рабочих станций. Только люди с техническими наклонностями пользовались Unix, как операционной системой, и интерфейс пользователя соответствовал этому факту. GUI были скелетами, разработанными для запуска нескольких необходимых приложений, вроде CAD программ и image render-ов. Управление файлами и системой производилось исключительно из командной строки. Различные производители (Sun Microsystems, Silicon Graphics, и т.д.) продавали рабочие станции с попытками предоставления ''look and feel'', но большое разнообразие сред разработки для GUI привело к исчезновению единого стандартного рабочего стола. Полоса прокрутки может выглядеть по разному в разных программах. Меню расположены в различных частях окна. В программах встречаются разные кнопки и переключатели. до тех пор, пока пользователями были лишь технические профессионалы, это было не очень важно. С появлением свободных Unix подобных ОС, и растущим числом различных графических приложений, X стал использоваться в качестве рабочего стола пользователями. Большинство, конечно очаровано внешним видом предлагаемым Microsoft-овским Windows и Apple-овским MacOS; недостаток такого разделения в направлениях X-ориентированных приложений, стал барьером к более широкому использованию программ. В ответ на это появились два проекта с открытым исходником: The K Desktop Environment или KDE, и GNU Network Object Model Environment, известная как GNOME. Каждая из которых имеет широкий спектр приложений, от панелей задач и менеджеров файлов, до игр и офисных пакетов, написанных с теми же GUI toolkit, и сильно внедрёнными, чтобы предоставить универсальный и завершённый рабочий стол. Различия между KDE и GNOME не очень велики. Они выглядят по разному, так как написаны с различными GUI toolkit. KDE основан на Qt библиотеке от Troll Tech AS, в то время, как GNOME основан на GTK, наборе инструментов, изначально разработанном для GNU Image Manipulation Program (или GIMP). Так как проекты независимы, то и разрабатываются они разными дизайнерами и программистами, с разными стилями разработки и с различной философией. Тем не менее, результат в обоих случаях, фундаментально идентичен: полная, тесно интегрированная рабочая среда и набор приложений. По функциональности и внешнему виду, обе среды предоставляют все те же функции, что и другие операционные системы. Преимущество в том, что эти десктопы бесплатны. Т.е. вы можете получить одну из них, или даже обе на одном и том же компьютере. Выбор за вами. В добавок к GNOME и KDE, в Slackware есть большая коллекция оконных менеджеров. Некоторые разработаны, как эмуляторы других ОС, некоторые для персональной настройки, другие для скорости. Выбор велик. Конечно, вы вольны установить столько, сколько пожелаете, поиграться с ними и выбрать какой же больше всех остальных вам больше нравится. Чтобы упростить выбор рабочего стола, Slackware включает в себя программу xwmconfig, которая позволяет вам выбрать, какой из десктопов или оконных менеджеров использовать. Итак:
Вы увидите список всех desktop и оконных менеджеров, установленных в вашей системе. Просто выберите один из них, какой захотите. Каждый пользователь в системе должен выполнить эту программу, так как разные пользователи могут использовать разные destop-ы. И возможно, не все захотят пользоваться тем, который установлен по умолчанию, в процессе установки. А потом просто запустите X:
4.3.5 Экспортирование экранаКак мы отметили выше, возможно запускать X программы на одном компьютере, а выводить их на экран на другом. Это невероятно требовательная к скорости сети процедура, так что вы наверное не захотите делать это через модемное соединение, или через большие расстояния. Так же есть проблема безопасности: экспортирование экрана небезопасно, так как вы позволите всей сети наблюдать за тем, что вы делаете. Всё же это может быть полезно в локальной сети. Здесь следует определить использование слов ''клиент'' и ''сервер''. Когда вы экспортируете экран, можно запутаться в том, кто есть клиент, а кто сервер. Машина, которая выполняет X программы и посылает изображение, будет называться сервером. Машину, на которой изображение будет выводиться на экран, назовём клиентом. Программу, показывающую вещи назовём ''сервер'', а работающую программу - ''сервер''. В этом примере мы будем использовать два компьютера: golf - довольно мощный сервер, расположенный под столом в другом конце забитого людьми и оборудованием кабинета. На нём есть очень много ОЗУ, мощный процессор. В добавок к этому, на нём установлено много X программ, но нет монитора. В другом конце комнаты расположен couch - старый компьютер, с небольшим объёмом ОЗУ и маленьким диском. На нём нет достаточно ресурсов для запуска программы вроде Netscape. couch имеет два существенных преимущества: монитор и он расположен прямо возле шикарного кресла. Вам даже не надо вставать, чтобы пользоваться компьютером. Было бы очень здорово, если бы вы могли запустить Netscape не вставая с кресла. Выход - экспортирование экрана. Войдите в систему на couch и запустите X. Запустите вашу любимую терминальную программу (xterm, rxvt, eterm, aterm, или любую другую). Первый шаг при настройке удалённого отображения X программ - настройка клиента так, чтобы другие компьютеры могли показывать вывод программ. Для этого используется программа xhost. Она контролирует доступ. Если вы в безопасной внутренней сети, вам наверное безразлично, если кто-то может наблюдать, что вы делаете. В этом случае вы просто разрешите всем в этой сети выводить эту информацию на экран:
С другой стороны, вы можете захотеть сделать это в небезопасной сети (Internet, сеть колледжа, или что то в этом роде). Вы определённо не хотите, чтобы все видели, что вы делаете. xhost позволяет вам выбрать тех, кто сможет смотреть, что вы делаете:
Теперь только golf.foc (сервер указанный ранее) может выводить информацию на экран компьютера couch. вы можете проверить, у кого есть доступ для вывода на экран информации, запустив xhost без аргументов:
Ну вот, клиент готов. Следующий шаг - настроить сервер, чтобы он знал, куда выводить изображение вместо монитора. Так как на сервере нет монитора (а значит на нём и X не выполняется), он должен знать, куда выводить изображение. Настройка сервера так же не сложна. После того, как вы соединились с сервером, вам надо изменить $DISPLAY переменную. По умолчанию, вероятно, она будет пуста. Вам надо присвоить переменной значение, равное удалённому хосту, плюс число, соответствующее тому, на какую X сессию выводить экран. Скорее всего у вас будет только одна X сессия, так что тут никаких проблем возникнуть не должно. Вот как надо установить $DISPLAY переменную в нашем примере (если на сервере используется Bash, в других случаях суть такая же, но синтаксис будет немного отличен):
Это всё, что необходимо сделать для настройки сервера. Теперь, не отсоединяясь, просто запустите X программы оттуда. Весь вывод программ будет послан через сеть на ваш экран.
Эта команда запустит netscape с сервера, но так как переменная DISPLAY указывает на couch, всё будет выводится туда. Вам даже не придётся вставать из-за вашего старого компьютера для того, чтобы запускать программы. Одно важное замечание, которое здесь необходимо сделать: на сервере должны быть установлены все X библиотеки, и другие файлы, необходимые для выполнения программы. В то же время, вам не понадобится /etc/XF86Config файл, так как ничего не выводится на экран сервера. После этого вы можете захотеть отключить экспортирование экрана, убрав сервер из списка доступа на вашем клиенте:
Вы видите, как здорово разделять ресурсы компьютеров. Но будьте осторожны, вы можете быть хостом многих X программ для многих удалённых компьютеров, и даже не знать этого.
4.3.6 ИтогВ этом разделе вы научились настраивать X Window систему при помощи xf86config и XF86Setup. Вы так же должны были разобраться в том, что такое окружение рабочего стола, и что такое оконный менеджер, и как выбрать, какой из них запускать. В добавок вы должны знать, как экспортировать экран. Теперь у вас должна быть запущенна работающая графическая среда.
File translated from TEX by TTH, version 2.89. On 24 Apr 2001, 16:43. |