Внутреннее устройство Linux
Шрифт:
Что касается файлов запуска оболочки, избегайте больших файлов запуска для редактора по умолчанию. Небольшая команда set showmatch в файле запуска .exrc еще никому не повредила: она избавляет редактор от всего, что существенно меняет его поведение или внешний вид (например, функция showmode, автоматическая расстановка отступов и перенос текста на следующую строку).
13.5.3. Переменная PAGER
Абсолютно разумно указать для переменной окружения PAGER значение по умолчанию less.
13.6. Подводные камни в файлах
Придерживайтесь следующих правил в файлах запуска.
• Не помещайте никаких графических команд в файл запуска оболочки.
• Не определяйте переменную окружения DISPLAY в файле запуска оболочки.
• Не определяйте тип терминала в файле запуска оболочки.
• Не скупитесь на подробные комментарии в файлах запуска по умолчанию.
• Не запускайте в файле запуска команды, которые выполняют печать в стандартный вывод.
• Никогда не определяйте переменную LD_LIBRARY_PATH в файле запуска оболочки (см. подраздел 15.1.4).
13.7. Дальнейшие вопросы, связанные с запуском
Поскольку в этой книге рассматриваются только уровни, лежащие в основе Linux, я не буду рассказывать о файлах запуска оконной среды. Это действительно объемная тема, поскольку менеджер дисплея, который выполняет ваш вход в современной системе Linux, обладает собственным набором файлов запуска, таких как .xsession, .xinitrc, а также бесконечным набором комбинаций из элементов, относящихся к средам GNOME и KDE.
Варианты работы с окнами могут показаться сбивающими с толку, поскольку не существует общего способа запустить оконную среду в Linux. В следующей главе описаны некоторые из множества возможностей. Тем не менее, когда вы определяете, что должна делать ваша система, вас могут немного увести в сторону файлы, относящиеся к графическому окружению. Это нормально, но не взваливайте эту работу на новых пользователей. Принцип, согласно которому файлы запуска оболочки следует делать как можно проще, творит также чудеса и для файлов запуска графического интерфейса пользователя. На самом деле вам, наверное, вовсе не требуется изменять эти файлы запуска.
14. Краткий обзор рабочего стола Linux
Эта глава является кратким описанием компонентов, которые расположены на рабочем столе типичной системы Linux. Среди различных типов программного обеспечения, которое можно найти в Linux, область рабочего стола является одной из самых необузданных и красочных, поскольку для выбора существует очень много сред и приложений, и в большинстве версий ОС сравнительно легко их опробовать.
В отличие от других частей системы Linux, таких как хранилища и сеть, при создании структуры рабочего стола не сильно задействована иерархия слоев. Вместо этого каждый компонент выполняет определенную задачу, взаимодействуя по мере необходимости с другими компонентами. Некоторые компоненты все же используют совместно общие строительные блоки (в частности, библиотеки для графического инструментария), которые можно представлять себе как простые уровни абстракции, но не более того.
В этой главе в общих чертах затронуты высокоуровневые компоненты рабочего стола, однако мы более подробно рассмотрим два из них: систему X Window, являющуюся основной инфраструктурой для большинства рабочих столов, и шину D-Bus, службу межпроцессного взаимодействия, которая использована
во многих частях системы. Мы сведем практические вопросы и примеры к рассмотрению нескольких диагностических утилит, которые, хоть и не слишком полезны в повседневной работе (чтобы взаимодействовать с большинством графических интерфейсов пользователя, нет необходимости вводить команды оболочки), но помогут вам понять лежащие в их основе механизмы системы и, возможно, попутно немного развлекут вас. Мы также вкратце рассмотрим печать.14.1. Компоненты рабочего стола
Конфигурация рабочего стола Linux является очень гибкой. Большая часть того, с чем приходится иметь дело пользователю Linux («впечатления и ощущения» от использования рабочего стола), исходит от приложений или их строительных блоков. Если вам не нравится какое-либо приложение, то, как правило, можно найти ему замену. Если то, что вы ищете, пока еще не существует, вы можете создать это самостоятельно. Разработчики Linux стремятся к тому, чтобы у рабочего стола было большое разнообразие возможных вариантов настройки, это приводит к большему выбору.
Для совместной работы всем приложениям необходимо иметь что-либо общее, и в сердцевине почти всего в большинстве рабочих столов Linux находится X-сервер (сервер системы X Window). Рассматривайте его как своего рода «ядро» рабочего стола, которое управляет всем, начиная с рендеринга окон и конфигурирования дисплеев и завершая обработкой ввода от таких устройств, как клавиатура и мышь. X-сервер является также тем компонентом, которому вы с трудом сможете подыскать замену (см. раздел 14.4).
X-сервер — это всего лишь сервер, и он не навязывает способ действия или отображения чего-либо. Вместо него с пользовательским интерфейсом работают команды X-клиента. Базовые приложения X-клиента, например окна терминала и браузеры, подключаются к X-серверу и просят его нарисовать окна. В ответ на это X-сервер выясняет, где разместить эти окна, и выполняет рендеринг. Когда требуется, X-сервер отправляет также ввод обратно клиенту.
14.1.1. Менеджеры окон
X-клиенты не должны действовать подобно приложениям, реализованным с помощью окон; они могут действовать как службы для других клиентов или обеспечивать другие функции интерфейса. Менеджер окна является, вероятно, самым важным приложением службы клиента, поскольку он вычисляет, как организовать окна на экране, и снабжает их интерактивными «украшениями» вроде заголовочной строки, которая позволяет пользователю перемещать и минимизировать окна. Эти возможности являются центральными для работы пользователя.
Существует масса реализаций менеджера окон. Такие варианты, как Mutter/GNOME Shell и Compiz, предназначены для автономной работы, в то время как другие являются встроенными в среду, например Xfce. Многие из менеджеров окон, входящие в стандартные версии Linux, стремятся предоставить пользователю максимальное удобство работы, но некоторые снабжены специфичными визуальными эффектами или используют минималистский подход. Вряд ли когда-либо появится стандартный менеджер окон Linux, поскольку вкусы и потребности пользователей различны и постоянно изменяются, в результате чего все время появляются новые менеджеры окон.