Виртуальные консоли и графические среды

Каждый компьютер, на котором работает UNIX-система, предоставляет возможность зарегистрироваться и получить доступ к системе нескольким пользователям одновременно. Даже если в распоряжении всех пользователей есть только один монитор и одна системная клавиатура, эта возможность небесполезна: одновременная регистрация в системе нескольких пользователей позволяет работать по очереди без необходимости каждый раз завершать все начатые задачи (закрывать все окна, прерывать исполнение всех программ) и затем возобновлять их. Более того, ничто не препятствует зарегистрироваться в системе несколько раз под одним и тем же входным именем. Таким образом, можно получить доступ к одним и тем же ресурсам (своим файлам) и организовать параллельную работу над несколькими задачами.

Характерный для UNIX способ организации параллельной работы пользователей - виртуальные консоли (или терминалы).

Можно переключаться между виртуальными консолями так, как если бы вы переходили от одного монитора с клавиатурой к другому, подавая время от времени команды и следя за выполняющимися программами. По умолчанию в Linux доступно не менее шести виртуальных консолей, переключаться между которыми можно при помощи сочетания клавиши Alt с одной из функциональных клавиш (F1–F6). С каждым сочетанием связана соответствующая по номеру виртуальная консоль. Виртуальные консоли обозначаются "ttyN", где "N" – номер виртуальной консоли.

Виртуальные консоли – это несколько параллельно выполняемых операционной системой программ, предоставляющих пользователю возможность зарегистрироваться в системе в текстовом режимеи получить доступ к командной строке.

Кроме консолей, работающих в терминальном режиме, для работы в системе может использоваться графическая среда (если запущен система XWindow, например командой startx). Переход из консольного режима в графический выполняется после нажатия комбинации клавиш Alt+F7 (обратный переход комбинацией Ctrl+Alt+F1…F6). Процедура регистрации в графическом режиме будет аналогична регистрации в текстовом режиме. С той лишь разницей, что после идентификации пользователя(правильно введенного имени пользователяипароля) на экране появится не приглашение командной строки, а графическая рабочая среда. Как именно она будет выглядеть – зависит от того, какая система используется и как она настроена.

Программа, которая отвечает за работу с устройствами графического ввода и вывода и обеспечивает при этом логику оконной системы, называется X-сервером (X Server, то есть сервер системы "Икс"). В рамках XWindow SystemX-сервер – это ядро. Подобно ядру, он выполняет низкоуровневые операции и взаимодействует с аппаратурой, ничего самостоятельно не предпринимая. Подобно ядру, он предоставляет задачам унифицированный интерфейс к этим низкоуровневым функциям, а также занимается разделением доступа (окноифокус) к графическим ресурсам.

X-сервер принимает запросы на выполнение графических действий и передает по назначению вводимые данные. Жизнеобеспечение процессов и даже способ передачи X-запросов – дело исключительно операционной системы, по отношению к которой и сам X-сервер – задача.

Задачи, которые обращаются к X-серверу с запросами, называются X-клиентами. Обычно X-клиент сначала регистрирует окно (можно несколько), которое и будет служить ему полем ввода-вывода. Потом он сможет рисовать в этом окне и обрабатывать происходящие с окном события: активность устройств ввода и изменение свойств самого окна (размер, перемещение, превращение в иконку, закрытие и т. п.). X-клиент – это процесс, запускаемый обычно в фоновом режиме (не связанный по вводу с терминальной линией).

Клиент передает серверу X-запросы любым доступным ему способом. Во многих случаях запросы передаются по сети; при этом неважно, какой именно транспортный уровень будет использован для соединения клиента с сервером (в современных системах это, чаще всего, сеть TCP/IP и протокол TCP). Главное, чтобы клиент посылал стандартные запросы, соответствующие определенному протоколу обмена данными. Следует сказать, что другое имя X Window System– X11 (или X11R6) – это просто номер версииX-протокола, стандартизующего X-запросы, при этом "R6" обозначает номер подверсии (revision).

Наиболее распространенная версия реализации X11R6 называется XFree86. Эта графическая подсистема изначально проектировалась как реализация X11R5 для машин архитектуры i386 – самых распространенных на сегодня персональных компьютеров. Главная особенность этой архитектуры – бесчисленное многообразие устройств графического вывода (видеокарт) и непрестанное нарушение их разработчиками всех мыслимых стандартов. Поэтому главной задачей создателей XFree86 было устроить гибкую структуру компоновки и настройки X-сервера в соответствии с подвернувшимся под руку устройством графического вывода, а заодно и ввода, потому что клавиатур, мышей и подобных устройств на свете тоже немало. Сегодня XFree86 существует для многих архитектур и многих операционных систем.

В последние годы параллельно с XFree86 развивается основанная на тех же исходных текстах XWindow System графическая подсистема XOrg. До недавнего времени по спектру поддерживаемого оборудования, архитектур и функциональности XOrg мало чем отличалась от XFree86, и сейчас они примерно эквивалентны с точки зрения пользователя. Однако направления развития этих двух проектов, состав их разработчиков и лицензионная политика несхожи. В ближайшем будущем вполне вероятно, что Xorg обгонит XFree86 и по возможностям, и по частоте использования.

Чтобы приспособить графическую подсистему (в любой реализации) к имеющемуся оборудованию, требуется организовать соответствующий профиль. Профильграфической подсистемы находится в каталоге /etc/X11, основной конфигурационный файл XFree86 называется XF86Config-4 – именно его считывает при запуске X-сервер. Конфигурационный файл XOrg называется xorg.conf, а при его отсутствии используется файл XF86Config. Во многих дистрибутивах имеются собственные полуавтоматические утилиты настройки X11. С их помощью можно создать более или менее подходящий профиль, не вникая в тонкости, нередко – непосредственно при установке системы.

Требование гибкости привело к тому, что в реализации XFree86 графическая подсистема стала совсем уже похожа на операционную систему. Сам X-сервер играет роль ядра. Запускаясь, сервер подгружает драйверы – специальные компоненты, работающие с выбранной видеокартой, и модули – компоненты, расширяющие функциональные возможности сервера (в конфигурационном файле XF86Config необходимые модули перечисляются в разделе Modules).

Благодаря стандартному протоколу X11 появилось множество диспетчеров окон для XWindow System. Все они различаются видом и кругом возможностей для манипулирования окнами: от самых простых (рамочка вокруг окна позволяет двигать его, изменять размер и поднимать из глубины) до весьма изощрённых (виртуальные экраны, анимированные полупрозрачные меню, панели инструментов, причудливой формы украшения на окнах; сами окна ползают по экранам, кувыркаются, растворяются как утренний туман; всё это лязгает, попискивает и разговаривает приятным женским голосом). Если в системе установлено несколько диспетчеров окон, то при запуске команды startx будет предложен выбор, какой из диспетчеров окон запустить.

Для решения функций комфортного домашнего компьютера разработаны целые комплексы X-приложений. Наибольшей популярностью пользуются две мощные среды "офисного" плана – KDE и Gnome – они содержат все необходимое для работы (включая собственные офисные приложения и средства просмотра WWW).

Наши рекомендации