Дата и время публикации :
Теория и практика
1. Теория
1. Вместо введения
В этом разделе рассказывается о том, что не все подходит из коробки, особенно когда речь идет о только входящих в строй средств вычислительной техники и их модулях, не говоря о уже технологиях, наподобие Wayland, внутренности которой рассматриваются ниже.
Архитектура Wayland
Рассмотрим схему клиент-серверного взаимодействия по протоколу Wayland, представленный на рисунке 1.1
Рисунок 1.1 (Источник: Wayland.freedesktop.org)
Как показано на рисунке 1.1, в основе Wayland находится композитный менеджер окон Wayland (англ. Wayland compositor) или сервер отображения и он же – сервер окон (англ. Display Server), который отвечает непосредственно за реализацию протокола Wayland. При этом, контроль за KMS и драйвером ввода evdev передан данному серверу, а протокол Wayland позволяет отправлять ему события ввода непосредственно клиентам, а те обратно события о повреждениях окон, если такие случаются.
1. После получения ядром входного события, оно отправляется композитному менеджеру окон Compositor, обозначенный на рисунке 1.1
2. Последний просматривает структуру графической сцены (англ.scenegraph) и находит в нем окно (клиент), которому предусмотрено событие, и применяет трансформацию ко всем его элементам, к которым они адресованы. При этом число трансформаций настолько ограничено, что Compositor может применять их инверсно для событий ввода.
После чего, клиент получает уже от сервера Compositor запрос на обновление отображения подвергавшейся трансформации области своего окна, которую реализует сам без участие сервера, как это было в Xorg.
3. После получения клиентом события, он производит обновление некоторой области пользовательского интерфейса (англ. User Interface, UI), которую отрисовывает сам без участия сервера и отправляет ему лишь диапазон её координат.
4. Композитор собирает запросы от своих клиентов и затем уже перекомпонует экранную область на основе их критических отчетов. Он также может непосредственно запланировать так называемое пролистование с KMS.
Таким образом, сервер менеджера управления окон был назван Сompositor, т.е. постановщик, а область графического управления – scenegraph, т.е. графической сценой, потому что клиенты, т.е. окна и даже рабочие столы, являются ее действующими лицами или субъектами графической среды функционирования Wayland.
В то же время, сервер Сompositor будучи наделенным правами управления всей графической сценой, в роли которой выступает вся экранная область, по мере набора критической массы отчетов со сбоями от клиентов, может ее пересобрать выдав запрос ioctl на пролистывание всех страниц (page flip) в KMS. Поэтому Wayland работает только на системах, которые используют KMS.
На рисунке 1.2 показана форма управления менеджера управления окон Wayland Сompositor в виде простенькой реализации графического окружения рабочего стола Weston .
Рисунок 1.2
Который состоит из верхней панели, с отображением в её левом верхнем углу значка терминала, запущенного отдельным окном UI в центре рабочего стола, в свою очередь, с запущенном в подчиненным ему окне приложения weaston-cliptest, а в правом верхнем углу панели рабочего стола отрисовывается текущая дата и время.
3. Библиография