Меню Рубрики

Что такое иксы в linux

Графическая система Linux

В Linux-системах пользователи работают через интерфейс командной строки (CLI) или графический интерфейс пользователя (GUI) . Настольные системы имеют графический пользовательский интерфейс, в котором командная строка доступна через окно эмулятора терминала или в отдельной виртуальной консоли. Большинство низкоуровневых компонентов Linux, используют исключительно командную строку. Командная строка особенно хорошо подходит для автоматизации повторяющихся или отложенных задач, а также предоставляет очень простой механизм межпроцессного взаимодействия. Программа графического эмулятора терминала часто используется для доступа к командной строке с рабочего стола Linux.

Дистрибутивы, специально разработанные для серверов, могут использовать командную строку в качестве единственного интерфейса.

X Window System

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

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

Система X Window System была разработана в Массачусетском технологическом институте (MIT) в 1984 году. По состоянию на февраль 2016 года версия протокола — X11R7.7 — появилась в июне 2012 года. Проект X возглавляет фонд X.Org Foundation. Референсная (или образцовая) реализация (reference implementation) системы свободно доступна на условиях лицензии MIT и подобных ей лицензий.

X Window System часто называют X11 или просто X (в разговорной речи — «иксы́»).

Wayland

Протокол для организации графического сервера в Linux и других UNIX-подобных операционных системах

По мнению разработчиков, Wayland является «работой над ошибками» X.org, которые накопились за четверть века его развития. Кардинальное отличие от X.org заключается в том, что Wayland лишь управляет буферами (плоскостями) окон и возлагает всю отрисовку их содержимого на инструментальные пакеты (GTK, Qt и так далее). API рисования (drawing API) полностью отсутствует. Все версии протокола строго определены, а само версионирование продумано. У X.org есть серьёзная проблема с версиями разных расширений, часто перекрещивавшимися или дополняющими, вместо того чтобы быть самодостаточными и исключающими. Функцию композиции буферов осуществляет референтный композитный менеджер Weston, использующий как OpenGL ES, так и программную отрисовку. В состав Wayland также входит унифицированный протокол устройств ввода, предоставляющий одну виртуальную клавиатуру, одну виртуальную мышь и один tablet-интерфейс — разделяемые всеми приложениями. Wayland знает о состояниях устройств ввода и способен запоминать их: X.org не сохраняет состояния устройств (stateless-протокол), но может быть настроен через файлы конфигурации.

О Wayland его создатель отзывается так: «Wayland — новый графический сервер, который выполняет только крошечную часть функций Х, которые мы действительно используем, когда запускаем композитный рабочий стол. Wayland, по сути, — буферный менеджер (подобно DRI2 для X.org), обработчик входных данных. Весь рендеринг выполняется на клиентской стороне — так, как сегодня работает OpenGL, а задание режимов и другие аппаратные установки выполняются в ядре. Такой подход значительно упрощает организацию сервера».

Wayland использует уже существующие в ядре Linux технологии, такие как Kernel mode-setting (KMS), Direct Rendering Manager (DRM) и Graphics Execution Manager (GEM).

Клиент и сервер

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

Графический интерфейс пользователя

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

Можно выделить следующие виды графического пользовательского интерфейса:

  • простой: типовые экранные формы и стандартные элементы интерфейса, обеспечиваемые самой подсистемой GUI;
  • истинно-графический, двумерный: нестандартные элементы интерфейса и оригинальные метафоры, реализованные собственными средствами приложения или сторонней библиотекой;
  • трёхмерный.
  • Графический интерфейс является «дружелюбным» для пользователей, которые начали знакомство с компьютером с графического интерфейса.
  • В программах обработки графики он зачастую является единственно возможным.
  • Большее потребление памяти в сравнении с текстовым интерфейсом.
  • Сложнее организовать удалённую работу.
  • Сложнее автоматизировать работу, если это не заложено в самой программе.
  • Графический интерфейс не является «дружелюбным» для пользователей, которые начали знакомство с компьютером с интерфейса командной строки.

Источник

IgorKa — Информационный ресурс

Немного обо всем и все о немногом, или практический опыт системного администратора.

Февраль 2010

Пн Вт Ср Чт Пт Сб Вс
« Янв Март »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28

Лекция №28 — X-сервер в Linux

Сегодня мы поговорим о графике в Linux. В отличии от Windows графическая подсистема в Linux не является неотъемлемой частью — она существует отдельно от ядра системы. Именно поэтому есть возможность работать в Linux без графической подсистемы — только в алфавитно-цифровом режиме.

Графическая подсистема в Linux называется X Window System. Разрабатывалась она изначально как модель клиент/сервер, поэтому и состоит из двух частей: сервера и клиента. В роли сервера выступает процесс X-server, а в роли клиентов графические приложения. Клиент и сервер общаются между собой по правилам описанным в X-протоколе. Собственно сам X-сервер и состоит из двух больших частей: это набор драйверов для работы с устройствами ввода-вывода и X-протокол для работы с приложениями.

Сейчас важно понять, что с устройствами ввода (клавиатурой, мышью и другими) и устройствами вывода (видеоадаптеры, мониторы и прочие) взаимодействует именно X-сервер, а не приложения. Мы не будет углубляться в подробности X-протокола и тонкости взаимодействия всех компонентов. Отметим себе, что X-сервер взаимодействует с приложениями при помощи механизма unix-сокетов и internet-сокетов. Возможность взаимодействия через internet-сокеты позволяет X-серверу и клиенту работать в связке находясь на разных компьютерах объединенных в сеть.

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

В результате на одной из виртуальных консолей будет запущен экземпляр X-сервера. На этой консоли вы увидите черный (либо серый) экран с крестиком вместо указателя мыши. Теперь перейдите на свободную консоль и наберите команду:

Перейдите на консоль в которой запущен X-сервер. Вы должны увидеть в левом верхнем углу аналоговые часы. Программа xclock в данном примере является клиентом для X-сервера. С помощью ключа -display мы указали программе с каким X-сервером ей нужно взаимодействовать, то есть какой X-сервер выведет на устройство вывода (монитор) изображение программы xclock.

X-сервер, который запускается по умолчанию при загрузке системы имеет порядковый номер 0. То есть команда xclock -display :0 выведет часы на седьмую виртуальную консоль.

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

Чтобы на нашем втором экземпляре X-сервера запустить менеджер окон по умолчанию выполните команду x-window-manager –display=0:1 и снова вернитесь на консоль где запущен второй X-сервер. Теперь вы видите вокруг часов привычную рамку и верхнюю полоску окна с тремя привычными кнопками. Окно можно масштабировать и перемещать по экрану, используя “мышь”, а также закрыть его нажав на привычный “крестик”.

Как уже было сказано, X-сервер работает с устройствами ввода/вывода информации. Основной конфигурационный файл в котором хранятся настройки X-сервера называется /etc/X11/xorg.conf. Хотя во многих современных настольных дистрибутивах этот файл пустой, так как за настройку оборудования отвечает другая подсистема, тем не менее X-сервер продолжает читать конфигурацию из этого файла. Рассмотрим этот файл, так как возможны ситуации когда параметры ваших устройств ввода/вывода будут автоматически определяться некорректно и тогда ручная правка файла /etc/X11/xorg.conf может помочь решить проблему.

Файл /etc/X11/xorg.conf разбит на секции при помощи ключевых слов section и end section. Рассмотрим наиболее важные секции.

В секции “ServerFlags” указываются опции с которыми запускается X-сервер:

В секции “Files” указываются пути к файлам которые могут понадобиться в работе X-сервера. Например, здесь указываются путь к шрифтам X-сервера. Причем путь может указывать на другой компьютер в сети на котором установлен XFS (X Font Server):

В секции “Modules” указываются модули, которые будут подгружаться во время загрузки X-сервера:

Секция “InputDevice“. Таких секций может быть несколько и отличаются они уникальным идентификатором (Identifier). Одна секция “Input Device” отвечает за одно устройство ввода. То есть в настольных компьютерах есть как минимум две такие секции: одна для описания клавиатуры, и одна для описания манипулятора “мышь”.

Section «InputDevice»
Identifier «Generic Keyboard»
Driver «kbd»
Option «CoreKeyboard»
Option «XkbRules» «xorg»
Option «XkbModel» «pc104»
Option «XkbLayout» «us»
EndSection

Section «InputDevice»
Identifier «Configured Mouse»
Driver «mouse»
Option «CorePointer»
Option «Device» «/dev/input/mice»
Option «Protocol» «ImPS/2»
Option «Emulate3Buttons» «true»
EndSection

Небольшое замечание к секции “InputDevice” для клавиатуры. Именно в этой секции определяются раскладки клавиатуры для графического окружения. Обращаю на это ваше внимание, так как для алфавитно-цифрового режима (виртуальные консоли, например) раскладку поддерживает драйвер терминала встроенный в ядро.

Если у вас есть манипулятор “мышь” с более чем тремя кнопками и дополнительные кнопки не работают, то реакцию на эти дополнительные кнопки можно определить в секции “InputDevice” для этого устройства. Например, параметр Option “ZAxisMapping” “4 5″ отвечает за прокрутку колесика “мышки”. Если числа 4 и 5 поменять местами, то прокрутка будет реализована в обратном направлении.

Секции “Device“, “Monitor” и “Screen” являются секциями, которые отвечают за устройства вывода информации. В секции “Device” прописана информация о видеоадаптере и драйверах для него, в секции “Monitor” описаны характеристики монитора, а в секции “Screen” характеристики экрана (разрешение и прочие). Количество этих секций в зависимости от конфигурации может быть разное, но как минимум каждая из них присутствует в единичном экземпляре в файле xorg.conf.

Section «Device»
Identifier «Intel Corporation 82815 CGC [Chipset Graphics Controller]»
Driver «i810»
BusID «PCI:0:2:0»
EndSection

Section «Monitor»
Identifier «Универсальный монитор»
Option «DPMS»
HorizSync 28 — 64
VertRefresh 43 — 60
EndSection

Section «Screen»
Identifier «Default Screen»
Device «Intel Corporation 82815 CGC [Chipset Graphics Controller]»
Monitor «Универсальный монитор»
DefaultDepth 24
SubSection «Display»
Depth 16
Modes «1280×1024» «1024×768» «800×600»
EndSubSection
SubSection «Display»
Depth 24
Modes «1280×1024» «1024×768» «800×600»
EndSubSection

Секция “ServerLayout“. Таких секций также может быть несколько. В них содержится информация о вариантах использования X-сервером устройств ввода/вывода. То есть если у вас есть несколько, мониторов или клавиатур, то можно прописать несколько секций “ServerLayout“. В одной будет указана одна клавиатура, в другой — другая.

Об этих и других параметрах можно подробно прочесть в справке Linuxman Xserver, man xorg.conf, man X и других разделах.

В секции “Monitor” может быть важный параметр — modeline. Рассмотрим его более подробно. Как правило X-сервер правильно определяет технические характеристики монитора, если монитор отдает информацию об этих характеристиках используя DDC-протокол. Не вдаваясь в подробности, достаточно знать, что в VGA-шнуре монитора должны быть два или три дополнительных провода, по которым эта информация попадает в видеоадаптер и далее в X-сервер. Как правило они есть, и X-сервер правильно определяет и настраивает частоты и разрешения монитора. Но бывают ситуации, когда информация DDC не поступает и необходимо самостоятельно прописать технические параметры монитора — частоты вертикальной и горизонтальной развертки, разрешение и другие.

Для этого в секции “Monitor” необходимо прописать один или несколько параметров modeline. Рассмотрим для примера следующую строку:

В кавычках указывается название параметра modeline — “1024×768@60″ — оно может быть любым и никак не влияет ни на какие характеристики. Далее идет число указывающее частоту тактового генератора видеоадаптера (dot clock) — 65.0. Четыре следующих числа — 1024 1048 1184 1344 — указывают на разрешение по горизонтали. 1024 — это и есть само разрешение по горизонтали — количество видимых точек в строке. 1048 — это общее количество точек в строке, в том числе и невидимых (черная кромка экрана). 1184 — это число тактов развертки от начала строки до импульса синхронизации, а 1344 — это общее число тактов необходимое на формирование одной строки.

Числа 768 771 777 806 означают ту же информацию только для вертикального разрешения. Если вы не совсем поняли, что значат эти параметры не расстраивайтесь. В любом случае вам не нужно вычислять их вручную, так как они должны быть указаны в документации к вашему монитору. И ваша задача просто найти эти параметры и правильно прописать их в строке modeline.

-vsync, -hsync или могут быть +vsync, +hsync, обозначают тип синхроимпульса. Эти параметры также берутся из документации к монитору.

Строк modeline может быть несколько, а может быть только одна — для нужного вам разрешения.

Хотя такое ручное добавление параметров уже редкость, тем не менее еще может иметь место, и поэтому будьте осторожны в установке этих параметров, так как неправильная их установка может привести даже к выходу монитора из строя.

При решении проблем с запуском X-сервера, много информации можно почерпнуть из файла /var/log/Xorg.0.log, в котором можно увидеть все сообщения о процессе запуска X-сервера.

Давайте теперь более подробно поговорим о дисплей менеджерах (Display managers) или менеджерах экрана.

Вы должны помнить, что для того, чтобы начать работу в алфавитно-цифровом режиме, вы должны ввести логин и пароль, которые запрашивает консольная программа getty. getty проверяет введенные данные, и если они корректны, то пускает пользователя в систему, предоставляя доступ к командному интерпретатору. Дисплей менеджер — графический аналог программы getty. Основная задача менеджера экрана — это предоставить пользователю графический интерфейс для ввода логина и пароля, проверить введенные логин и пароль и в случае успеха пустить пользователя в систему запустив для него графическую оболочку или менеджер окон.

Термином графическая оболочка очень часто называют как оконные менеджеры (WindowMaker, IceWM, Blackbox, JWM и другие), так и полнофункциональные графические оболочки (GNOME, KDE, XFCE и другие).

Базовым дисплей менеджером Linux является xdm. Для двух наиболее популярных графических оболочек Gnome и KDE существуют свои дисплей менеджеры — gdm и kdm соответственно. Кроме основной функции, дисплей менеджеры имеют и ряд дополнительных: возможность выбрать язык ввода, предоставить возможность выбора оконного менеджера или графической оболочки, возможность, не заходя в систему, выключить компьютер.

Конфигурационные файлы дисплей менеджера xdm, расположены в каталоге /etc/X11/xdm/. Поле успешной регистрации пользователя в системе с помощью xdm, будет выполнятся скрипт Xsession, расположенный в /etc/X11/xdm/. Из этого скрипта будет выполнен запуск скрипта /etc/X11/Xsession, который продолжит загрузку графической подсистемы.

Конфигурационные файлы для дисплей менеджера gdm расположены в каталоге /etc/gdm/, а для kdm в каталоге /etc/kde4/kdm (для четвертой версии KDE).

Если вы работаете в алфавитно-цифровом режиме, то для перехода в графический режим достаточно выполнить команду startx. В результате будет запущен графическая среда по умолчанию. Дисплей менеджер в процессе выполнения скрипта startx, не запускается, так как пользователь уже аутентифицировался в системе при помощи программы getty

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

  • Что такое директория в linux
  • Что такое демоны в linux
  • Что такое демон в linux
  • Что такое администрирование linux
  • Что такое yum для linux