ZenWay - Linux сегодня!
  • Главная
  • Форум
  • Контакты
  • Архив
  • Гостевая книга
×
Поиск по сайту
ГлавнаяАдминистрированиеСистемные утилитыИзучаем LinuxX Window System / X11

X Window System / X11

Изучаем Linux, Системные утилиты, АдминистрированиеПросмотров: 2775Комментарии: 024 марта 2009 г.
GUI / Администрирование / Комплект инструментов / Менеджер окон / Учебные материалы

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.

С 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, так графических сред и библиотек элементов интерфейса происходит независимо друг от друга усилиями разных разработчиков.

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

По материалу с itproffi.ru

Тема обновлена 30.04.2020
GNU Binary Utilities (binutils)
TC (Traffic Control)
Автор: posixru
Еще записи по теме
Glippy
Glippy
Pantheon System Monitor
Pantheon System Monitor
NX Software Center
NX Software Center
Grub Customizer
Grub Customizer
ROX-Filer
ROX-Filer
cpuburn
cpuburn
Оставьте комментарий!

Используйте нормальные имена.

Вы можете войти под своим логином или зарегистрироваться на сайте.

(обязательно)

Рубрики
  • Hовости
  • Изучаем Linux
  • Обзоры Linux ПО
    • Hужное/полезное
    • Аудио и видео ПО
    • Графика
    • Офисное ПО
    • Интернет ПО
    • Образовательные
    • Игры
    • Администрирование
    • Системные утилиты
    • Прочие
    • Shareware / Demo
  • Дистрибутивы
  • Дополнительные материалы
Последние комментарии
Scan Tailor
  • звездочёт » У ScanTailor, находящегося в архиве git, есть приемник, продожающий развитие и увеличение возможностей и функционала...
AbiWord
  • Святой_Мученик_Linux » Некорректно отображает картинки в майкросовтовски х файлах doc. Картинки позиционируются одна на другую, поверх текста. В...
  • vs » К сожалению, AbiWord давно протух и толку от него ровно 0. Даже больше вреда. Сейчас...
tarsnap
  • Анонимус » В тексте опечатка "для использования для использования"
DarGUI / KDar
  • WinGamer » Можно ли забекапить всю систему windows этим архиватором?
cfiles
  • Дмитрий » так эт самое, а как например переименовать папку?
Profanity
  • zon » проше научится свой клиент написать чем разобратся куда что клацать для отправки получения месаг.
  • vovans » Тут не нужно ничего "клацать". Достаточно пару раз на хоткеи посмотреть.
noteshrink
  • Аноним » Теперь есть плюсовая (не пайтон) версия: //github. com/ ImageProcessing - ElectronicPublications /noteshrink-c/ releases
Page dewarp
  • Аноним » Теперь есть плюсовая (не пайтон) версия: //github. com/ ImageProcessing - ElectronicPublications /pagedewarp/ releases
Форум
[20/04/2023 12:46:23]
Музыкальный калейдоскоп
[17/04/2023 10:14:08]
Тестовая бродилка на Си с ChatGPT
[18/11/2022 11:54:52]
vscode and c/c++
[31/08/2022 12:25:53]
Tor Browser
[22/05/2022 15:45:40]
Стратегии RTS
[30/03/2022 09:05:20]
Заметки с синхронизацией
[01/03/2022 20:15:05]
Говорильня (дискуссионный клуб)
[13/02/2022 11:44:28]
[РЕШЕНО] права на запись в примонтированный образ диска (raw.img)
[07/02/2022 13:22:01]
Конвертировать текст набаранный в неправильной раскладке
Облако меток
2D338 3D241 ALSA68 ASCII120 Android1 Arch Linux38 Audio416 Backup80 Benchmark78 Bluetooth2 C++969 CD48 Console1318 DJ-система17 DVD47 Debian28 DjVu22 Enlightenment19 FFmpeg191 FLTK29 FPS40 FREE155 FTP18 FVWM21 Fluxbox40 GIMP24 GNU26 GPS22 GTK1302 GUI801 Gambas11 Games686 Gentoo3 Gnome349 Gstreamer133 HDD122 HDR7 HTML62 Hex-редактор14 ICQ17 IP-сети25 IP-телефон22 IRC31 ISO39 IceWM22 ImageMagick56 JACK99 Jabber35 Java308 JavaScript115 KDE209 LAN29 LXDE37 LaTeX66 Live-CD70 Live-DVD55 Live-USB53 Lua61 MATE32 MEncoder31 MIDI91 MMORPG12 Mail42 Markdown53 Mono53 Mplayer75 MySQL2 OSS9 Open Source14 OpenGL301 Openbox89 P2P51 PDF133 PHP12 Pascal17 Perl102 Phonon27 PulseAudio17 Python759 QT894 RAW34 RPG101 RSS53 RTS42 Roguelike70 Ruby19 Rust15 SDL312 SVG39 Screencast32 Screenshot61 Script78 Slackware66 TOR17 TOX3 Tk39 Torrent67 Ubuntu69 VLC16 Vala64 Web629 WebKit72 WebUI34 WiFi47 Window Maker16 Wine8 XMPP35 Xfce70 Xine14 YouTube80 video4linux27 wxWidgets108 Автоматизация31 Администрирование335 Анонимная сеть47 Антивирус14 Апплет120 Аркада235 Архиватор11 Астрономия36 Аудио конвертер70 Аудио редактор50 Аудиоплеер184 Безопасность243 Бизнес-приложение4 Браузер87 Бродилка203 Бухгалтерия11 Веб-камера36 Видео148
© Zen Way, 2023. Работает на MaxSite CMS | Время: 0.1682 | SQL: 19 | Память: 8.75MB | Вход