20 окт. 2000 г.

Азы linux (для детей) урок 34

Графическая среда

Система X Window

X Window System представляет собой явно сетевое окно системы, которая работает на широком спектре вычислительных и графических машин. Серверы X Window System работают на компьютерах с растровыми дисплеями. X сервер распределяет пользовательский ввод и принимает запросы на вывод от нескольких клиентских программ через различные межпроцессорные каналы связи. Хотя самый распространенный случай – клиентские программы работают на той же машине, что и сервер, но клиенты могут также прозрачно работать от других машин (включая машины с различными архитектурами и операционными системами). Мы узнаем, как это делается в Главе 10, Сеть, в которой рассказывается о сетях и удаленных приложениях.
X поддерживает параллельные иерархические окна, текст и графические операции как на монохромных, так и цветных дисплеях. Число клиентских программ X, которые используют X-сервер достаточно велико. Некоторые программы, внедренные в ядро распределением X Consortium, включают:
  • xterm: эмулятор терминала
  • twm: минималистичный оконный менеджер
  • xdm: менеджер дисплеев
  • xconsole: программа перенаправления консоли
  • bitmap: растровый редактор
  • xauth, xhost и iceauth: программы контроля доступа
  • xset, xmodmap и многие другие: предпочитаемые пользователем настройки программ
  • xclock: часы
  • xlsfonts и другие: экранный шрифт, утилиты для просмотра информации о шрифтах, окна и отображения
  • xfs: сервер шрифтов
  • ...
Мы опять отсылаем к man-страницам этих команд за подробной информацией. Подробнее разъяснения доступных функций можно найти в руководстве Xlib - C language X Interface, которое поставляется с вашим X дистрибутивом, спецификацией X Window System Protocol, а также различные руководства и документация по X. Каталог /usr/share/doc содержит ссылки на эти и многие другие документы.
Многие другие утилиты, оконные менеджеры, игры, пособия и гаджеты включены распределением X Consortium как дополнительное пользовательское программное обеспечение, или доступны с помощью анонимного ftp по Интернету. Хорошими местами для начала являются http://www.x.org и http://www.xfree.org.
Кроме того, все ваши графические приложения, такие как браузер, программа для электронной почты, программа для просмотра изображений, инструменты для проигрывания звуков и так далее являются клиентами X сервера. Отметим, что в обычных условиях эксплуатации графического режима X клиенты и X сервер Linux работают на одной и той же машине.

Имена дисплеев

С точки зрения пользователя, у каждого X сервера есть отображаемое имя в такой форме:
hostname:displaynumber.screennumber
Эта информация используется приложением для определения того, как ему следует соединиться с X сервером и какой экран он должен использовать по умолчанию (на настольных компьютерах с несколькими мониторами):
  • hostname: Имя хоста указывает имени компьютера-клиента, какой дисплей физически подключен. Если имя хоста не задано, будет использоваться наиболее целесообразный способ общения к серверу на одной и той же машине.
  • displaynumber: Фраза "display", обычно используется для обозначения коллекции мониторов, которые разделяют общие клавиатуру и указатель (мышь, планшет, и т.д.). У большинства рабочих станций, как правило, только одна клавиатура, и, следовательно, только один дисплей. Большие многопользовательские системы, однако, часто имеют несколько дисплеев, так что группа людей сразу могут выполнять графическую работу. Чтобы избежать путаницы, каждому дисплею компьютера присваивается номер (начиная с 0), когда запускается X сервер для этого дисплея. Номер дисплея должен всегда быть приведен в отображаемом имени.
  • screen number: Некоторые дисплеи разделяют одну клавиатуру и указатель между двумя или более мониторами. Так как у каждого монитора есть собственный ряд окон, каждому экрану присваивается номер (начиная с 0), когда запускается X сервер для данного дисплея. Если номер экрана не указан, будет использоваться экран 0.
В POSIX-системах имя дисплея по умолчанию хранится в переменной окружения DISPLAY. Эта переменная автоматически устанавливается эмулятором терминала xterm. Однако, когда вы по сети входите на другой компьютер, может потребоваться установить DISPLAY вручную, чтобы указать на ваш дисплей, смотрите Раздел "Telnet и X".
Более подробную информацию можно найти в man-страницах для X.

Менеджеры окон и рабочего стола

Расположение окон на экране находится под контролем специальных программ, которые называются оконными менеджерами. Хотя многие оконные менеджеры соблюдают предоставленные геометрические характеристики экрана, существуют такие, которые могут их игнорировать (требуя от пользователя точного указания области окна на экране с помощью указателя, например).
Поскольку оконные менеджеры обычные (хотя и сложные) клиентские программы, могут быть построены разнообразные пользовательские интерфейсы. От X Consortium предоставляется оконный менеджер под названием twm, но большинство пользователей предпочитают что-то более изощренное, когда позволяют ресурсы системы. Sawfish и Enlightenment являются популярными примерами, которые позволяют каждому пользователю иметь рабочий стол под соответствующее настроение и стиль.
Менеджер рабочего стола использует один или другой оконный менеджер для организации вашего графического экрана в удобном виде, с панелями, выпадающими меню, информационными сообщениями, часами, менеджерами программ, файловыми менеджерами и т.д. Среди наиболее популярных менеджеров рабочего стола выделяют Gnome и KDE, оба работают почти на любом дистрибутиве Linux и многих других UNIX-системах.
Приложения KDE в Gnome/приложений Gnome в KDE
Вам не обязательно запускать рабочий стол KDE для того, чтобы иметь возможность запускать приложения KDE. Если у вас установлены библиотеки KDE (пакет kdelibs), вы можете запустить эти приложения из меню Gnome или его терминала.
Запуск приложений Gnome в среде KDE немного сложнее, потому что нет единого набора базовых библиотек в Gnome. Однако при запуске или установке таких приложений станут ясны зависимости и, следовательно, дополнительные пакеты, которые вам, возможно, придется установить.

Конфигурация X сервера

Распределение X, которое поставляется с Linux, XFree86, использует конфигурационный файл XF86Config для ее начальной установки. Этот файл настраивает вашу видеокарту и может быть найден в ряде мест, хотя обычно это /etc/X11.
Если вы видите, что файл /etc/X11/XF86Config присутствует в вашей системе, полное описание можно найти в info- или man-страницах о XF86Config.
Из-за проблем с лицензированием XFree86, более новые системы обычно поставляются с вариантом X сервера и инструментов от X.Org. Главный конфигурационный файл здесь xorg.conf, обычно находится также в /etc/X11. Файл состоит из нескольких разделов, которые могут находиться в любом порядке. Разделы содержат информацию о вашем мониторе, видеоадаптере, конфигурации экрана, клавиатуры и т.д. В качестве пользователя, вам не надо слишком беспокоиться о том, что в этом файле, так как все обычно определяется на момент, когда система установлена.
Однако, если вам потребуется изменить настройки графического сервера, вы можете запустить инструменты для настройки или редактировать конфигурационный файл, которые обеспечивает инфраструктуру для использования сервера XFree86. Смотрите man-страницы для получения дополнительной информации; у вашего дистрибутива могут быть собственные инструменты. Поскольку неверная конфигурация может привести к нечитаемой чуши в графическом режиме, вам следует сделать резервную копию конфигурационного файла, чтобы обезопасить себя, прежде, чем приступать к его изменению.

Настройка клавиатуры

Настройка раскладки клавиатуры для текстовых консолей производится с помощью команды loadkeys. Используйте ваши локальные инструменты конфигурации X или изменяйте раздел Keyboard в XF86Config вручную, чтобы настроить раскладку для графического режима. XkbdLayout является тем, что вам требуется установить:
XkbLayout       "us"
Это по умолчанию. Измените на ваши локальные настройки путем замены значения в кавычках на любые имена, перечисленные в подкаталогах папки keymaps. Если вы не можете найти keymaps, попробуйте отобразить их местонахождение в вашей системе с помощью команды
locate keymaps
Можно комбинировать настройки раскладки, как показано в этом примере:
Xkblayout      "us,ru"
Сделайте резервную копию файла /etc/X11/XF86Config перед его редактированием! Чтобы сделать это, вам придется использовать аккаунт суперпользователя.
Выйдите и снова войдите в систему, чтобы перезагрузить настройки X.
Апплет клавиатуры Gnome позволяет в режиме реального времени переключаться между раскладками, для использования этой программы специальных разрешений не требуется. KDE также имеет подобный инструмент для переключения между раскладками клавиатуры.

Шрифты

Используйте инструмент setfont для загрузки шрифтов в текстовом режиме. Большинство систем поставляются со стандартным файлом inputrc, который позволяет сочетание символов, таких как французский "é" (метасимволы). Для этого системный администратор должен добавить строку
export INPUTRC="/etc/inputrc"
к файлу /etc/bashrc.

Зона даты и времени

Настройка информации о времени обычно происходит во время установки. После этого, она постоянно соответствует текущей дате за счет использования клиента NTP (Network Time Protocol). Большинство Linux системы запускают ntpd по умолчанию:
debby:~> ps -ef | grep ntpd
ntp      24678     1  0  2002 ?        00:00:33 ntpd -U ntp
Вы можете запустить ntpdate вручную, чтобы установить время, при условии, что можете подсоединиться к серверу времени. Демон ntpd не должен быть запущен, когда вы устанавливаете время с использованием ntpdate. Используйте сервер времени в качестве аргумента для команды:
root@box:~# ntpdate 10.2.5.200
26 Oct 14:35:42 ntpdate[20364]: adjust time server 10.2.5.200 offset
 -0.008049 sec
Смотрите ваши системные руководства и документацию, которые поставляются с пакетом NTP. Большинство менеджеров рабочего стола включают инструменты для установки системного времени при условии, что у вас есть доступ к учетной записи системного администратора.
Для установки правильного часового пояса, вы можете использовать команды tzconfig или timezone. Обычно информация о часовом поясе задается во время установки вашей операционной системы. Многие системы имеют специфичные для дистрибутива инструменты для настройки; обратитесь к документации по системе.

Язык

Если вы предпочитаете получать сообщения от системы на голландском или французском языке, то можете установить переменные окружения LANG и LANGUAGE, что позволит поддерживать нужный язык и, в конечном итоге, шрифты, связанные с символами на этом языке.
В большинстве графических систем входа, таких как gdm или kdm, у вас есть возможность настроить параметры языка до входа в учетную запись.
Обратите внимание, сейчас на большинстве систем по умолчанию имеется тенденция к использованию en_US.UTF-8. Это не проблема, потому что системы, где такое существует по умолчанию, будут также поставляться со всеми программами, поддерживающими эту кодировку. Таким образом, vi может редактировать все файлы на вашей системе, а cat не будет вести себя странно и т.п.
Проблема начинается тогда, когда вы подключаетесь к более старой системе, не поддерживающей эту кодировку шрифта, или при открытии файла, закодированного с помощью UTF-8, на системе, поддерживающей шрифты, у которых символы кодируются 1 байтом. Может пригодиться утилита recode для конвертирования файлов из одного ряда символов в другой. Читайте man-страницы для обзора возможностей и их использования. Другим решением может быть временная работа в другой кодировке, настроив для этого переменную окружения LANG:
debby:~> acroread /var/tmp/51434s.pdf
Warning: charset "UTF-8" not supported, using "ISO8859-1".
Aborted

debby:~> set | grep UTF
LANG=en_US.UTF-8

debby:~> export LANG=en_US

debby:~> acroread /var/tmp/51434s.pdf
<--new window opens-->