Linux оконный интерфейс x11

X Window System / X11

X Window System (X11 или просто X) — оконная система, стандартные инструменты и протоколы для построения графического интерфейса пользователя обеспечивающая базовые функции графической среды но не определяющая деталей интерфейса пользователя (этим занимаются менеджеры окон). По этой причине внешний вид программ в среде X11 может очень сильно различаться в зависимости от возможностей и настроек конкретного оконного менеджера.

В X11 предусмотрена сетевая прозрачность: графические приложения могут выполняться на другой машине в сети, а их интерфейс при этом будет передаваться по сети и отображаться на локальной машине пользователя. В контексте X Window System термины «клиент» и «сервер» имеют непривычное для многих пользователей значение: «сервер» означает локальный дисплей пользователя (дисплейный сервер), а «клиент» это приложение, которое этот дисплей использует (может выполняться на удалённом компьютере).

Система X Window в Linux

Для выполнения некоторых задач на компьютере не обойтись без использования удобного графического интерфейса. Такими задачами могут быть работа с графическими редакторами, видеоредакторами, запуск игровых приложений, визуализация, анимация т. д. Для всего этого необходимо программное обеспечение (ПО), ресурсы (аппаратные, программные), спецификации (протоколы взаимодействия), которые реализуют пользователям полноценный графический интерфейс (GUI).

Поскольку ОС UNIX / GNU Linux обладают архитектурой, ключевой особенностью которой является сетевое клиент-серверное взаимодействие, то реализация графической системы также построена на схеме «клиент-сервер». Ядром такой системы является протокол, описывающий правила организации и предоставления неким сервером X своих мощностей и вычислительных ресурсов клиентам — пользовательских машин, на которых запускается графическая оболочка, позволяющая работать приложениями в виде окон (Window) с характерными для них органами управления и оформлением. Причём внешний вид и сопутствующие функциональные возможности GUI будут зависеть от соответствующих графических библиотек, установленных на клиентской машине. Всё это в совокупности определяет графическую систему X Window.

Как появилась X Window?

В распределённых (достаточно больших) системах на некоторых компьютерах (или даже в подсетях, охватывающих целые отделы организации) было необходимо, в связи со спецификой выполняемых задач, работать с полноценным графическим интерфейсом, например для: инженерной графики в CAD, верстки документов, 3D-графики. Конечно, в дальнейшем вполне закономерно использование графических оболочек для общепользовательских специальных задач стало повсеместным. Однако серверные компьютеры по сей день могут (и, вероятнее всего должны) обходиться без GUI.

Ещё в начале 1980-х годов в Массачусетсском технологическом институте (MIT) в рамках проекта Project Athena была разработана оконная система W (Window), задачей которой было обеспечение полноценного GUI для рабочих станций, занятых соответствующими задачами. Позже преемницей W стала система X – более универсальная и гибкая для интеграции сложных ОС. Её более поздняя версия X Window System 10, которая вышла 1985 году, завоевала довольно широкое распространение. Версия 11 этой ОС или просто X11 так и вовсе благодаря своим довольно открытым условиям лицензии стала самым популярным решением в области GUI поскольку благодаря своим продуманной архитектуре и потенциалу активно переносилась на другие платформы. Появлялось всё больше реализаций протокола XDM и как следствие — новых реализаций системы X11.

Читайте также:  Install deb linux mint

С 1998 года компетентная группа в составе MIT начала работы по формализации протокола X, в рамках которой должно было определяться дальнейшее его развитие. Параллельно среди многих реализаций X11 продолжали появляться и свободные, такие как XFree86. В 2004 году для ветви с оригинальным проектом X11 изменились условия лицензионного соглашения, в которые были включены пункты, не позволявшие дистрибьюторам и разработчикам свободно её использовать. Поэтому многие из них вынуждены были полностью перейти на использование ветви XFree86, которая под новые условия лицензии не подпадала. Сама же ОС XFree86 активно поддерживается компанией X.Org Foundation, которая является некоммерческой организацией. Таким образом, на сегодняшний день подавляющее большинство дистрибутивов Linux для обеспечения графического окружения использует систему X Window в её свободной реализации X.Org.

Как работает система X Window?

X Window обеспечивает работу графического окружения благодаря всего трём основным её компонентам: X-сервера, диспетчера дисплеев, менеджера окон. Диспетчер дисплеев авторизует и/или регистрирует пользователей для предоставления им среды для запуска (набор сценариев запуска) системы. Также диспетчер дисплеев управляет работой X-сервера, т. е. он может запускать его когда клиент отправил соответствующий запрос. В свою очередь X-сервер по завершении запуска предоставляет клиентам абстрактный интерфейс для устройств ввода (мышь, клавиатура), а также для отрисовки растровых изображений.

Менеджер окон служит для организации приложений в виде окон, позволяя переключаться между ними, сворачивать/разворачивать, открывать, перемещать по экрану, управлять рабочими столами Таким образом, выступая в роли интерактивного визуализатора пользовательской среды и приложений. Сам же менеджер окон запускается диспетчером дисплеев по факту авторизации/регистрации пользователя с помощью сценариев запуска. Внешний вид приложений реализуется с помощью различных библиотек интерфейсных элементов (например GTK+), которые позволяют отрисовывать окна, меню, заголовки, кнопки и прочие органы управления. Следующий рисунок демонстрирует клиент-серверную модель, по которой функционирует система X Window:

Библиотеки элементов пользовательского интерфейса могут быть разными, но все они поддерживают спецификацию оконного менеджера, поэтому X-серверу не нужно «знать» все тонкости низкоуровневого формирования элементов интерфейса на стороне клиента. Это одна из ключевых особенностей системы X Window.

Некоторые особенности

Как уже было отмечено, гибкость, масштабируемость, а также открытость системы X Window породила множество реализаций не только её самой (и её протокола), но ничуть не меньшее число графических сред. Долгое время (да и по сей день) оригинальная графическая оболочка на «чистом X11» с собственной библиотекой интерфейсных элементов была незавершённой, т. к. изначально не подразумевалось её повсеместное использование. Однако, с другой стороны клиент-серверная архитектура X Window, а также её независимость от низкоуровневой реализации GUI на стороне клиента «развязывали» руки разработчикам ПО, которые очень часто стремились снабдить свои приложения оригинальным внешним видом, разрабатывая и поставляя вместе с ПО также собственные библиотеки элементов GUI. При этом развитие как самой системы X Window, так графических сред и библиотек элементов интерфейса происходит независимо друг от друга усилиями разных разработчиков.

Читайте также:  Intel cpu drivers linux

Именно поэтому сейчас можно наблюдать такое количество всевозможных графических окружений для UNIX/GNU Linux. Некоторые из них (KDE, GNOME, XFCE) по качеству дизайна, удобства использования, функционалу и быстродействию настолько хороши, что люди, впервые увидевшие и поработавшие в этих средах устанавливают и используют их в качестве основных.

Источник

Графический интерфейс (X11)

Аннотация: В лекции рассмотрено устройство графического интерфейса в Linux. Обсуждается технология X Window System: протокол X11, X-сервер и X-клиент. Описаны основные X-приложения, функциональность диспетчеров окон и сред рабочего стола, доступных в Linux.

Графический интерфейс в Linux

На протяжении предыдущих лекций Мефодию ни разу не потребовалось для выполнения своих задач покидать пределы текстового терминала. Что и понятно: в основном он занимался освоением самой системы Linux, а главные средства управления ею – командная строка и текстовый редактор . Тем не менее, для современного пользователя персональный (да и вообще любой) компьютер – это не в последнюю очередь устройство с широкими графическими возможностями, и часть задач, которые должен выполнять компьютер , – непосредственно графической природы, например, показ фильмов или создание изображений. Но такими специфическими задачами использование графического интерфейса не ограничивается.

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

Оконный интерфейс. Модель интерфейса, в которой пространством ресурсов является экран – прямоугольная область, в которой организуется ввод и вывод. Субъектами в оконном интерфейсе выступают задачи, вводящие и выводящие данные в рамках окна – области в рамках экрана .

Однако все задачи управления системой в Linux решаются посредством текстового терминала, да и очень многие задачи пользователя – как заметил Мефодий даже по своему небольшому опыту – тоже, поэтому никакой системной необходимости в графических средствах ввода-вывода в Linux нет. Графический интерфейс в Linux – это отдельная задача, наподобие системной службы или демона , поэтому в некоторых системах программное обеспечение для организации графического интерфейса 1 Такие системы – не выдумка, они вполне реальны и многочисленны. Например, графический интерфейс совершенно ни к чему на сервере, который занимается только маршрутизацией пакетов в сети. может вовсе отсутствовать. Такая задача получает единоличный доступ к устройству графического вывода (видеокарта), а программам, использующим графические ресурсы, она предоставляет объектную модель графических примитивов (функции рисования линий, прямоугольников, отображения цвета и т. п.), наподобие того, как ядро предоставляет доступ к ресурсам жесткого диска в терминах объектной модели файловой системы. Поэтому весь комплекс программ для работы с графическими устройствами принято называть графической подсистемой .

Читайте также:  Zip all files and folders linux

Пользователю домашнего настольного компьютера графический интерфейс почти наверняка понадобится при каждом сеансе работы. Можно настроить систему таким образом, чтобы процесс начальной загрузки завершался запуском графической подсистемы , так что даже регистрация пользователей будет происходить уже в графическом режиме при помощи специальной программы – экранного диспетчера (см. лекцию 10). Экранный диспетчер опознать очень просто: он всегда отображает окно с приглашением к регистрации login : и password :, которое может быть оформлено и минималистично, и с барочной пышностью. После регистрации в экранном диспетчере пользователю предоставляется сразу и доступ к системе, и доступ к графической подсистеме .

Однако ни в одной из систем, в которых работает Мефодий, ему не случалось встречаться с экранным диспетчером , и всюду он регистрировался в системе и работал только в текстовом режиме на виртуальной консоли . Поскольку графическая подсистема – отдельная задача, авторизованный пользователь может запустить ее из командной строки в любой момент 2 Каким пользователям разрешено запускать и останавливать графическую систему – зависит от профиля системы. : для этого используется команда startx , которую Мефодий и исполнил (рис. 16.1).

Запуск графической подсистемы из командной строки

В некоторое недоумение ввел Мефодия предложенный ему выбор из нескольких кнопок. Проконсультировавшись у Гуревича, он выяснил, что каждая из кнопок соответствует программе, по-своему организующей графический интерфейс , и что он может попробовать их все по очереди и выбрать ту, которая будет наиболее подходящей для его стиля работы. Не мудрствуя лукаво, Мефодий нажал на первую же кнопку, «KDE» (см. рис. 16.2).

После некоторого ожидания на мониторе возникло все то, что Мефодий ожидал увидеть в графическом интерфейсе: иконки, панель с кнопками внизу экрана , меню . Однако если бы после запуска startx Мефодий выбрал другую кнопку вместо «KDE» , графический интерфейс предстал бы перед ним совсем в другом виде и предоставлял бы несколько другие возможности и приемы работы. Далее в лекции объясняется устройство графической подсистемы в Linux. Из этого объяснения станет понятно, почему процесс запуска графического интерфейса оказался двухступенчатым и почему работа с графическим интерфейсом в Linux может быть организована по-разному.

Источник

Оцените статью
Adblock
detector