Сегодня мы рассмотрим два сервера отображения в Linux – X11 и Wayland.
Сервер отображения — это программа, основной задачей которой является координация ввода и вывода данных от клиентов (пользователей) к остальной части операционной системы, оборудованию и друг другу. Дисплейный сервер взаимодействует со своими клиентами по протоколу дисплейного сервера.
Сервер отображения является ключевым компонентом любого графического интерфейса пользователя, в частности оконной системы. Благодаря дисплейному серверу вы можете использовать свой компьютер с графическим интерфейсом. Без него вы были бы ограничены только интерфейсом командной строки.
Сервер отображения X11 является наследником X Window System, которую часто называют просто X. Эта систама очень старая, она работает с 1984 года. X11 — это сетевой протокол. Он описывает, как происходит обмен сообщениями между клиентом (приложением) и дисплеем (сервером). Эти сообщения обычно содержат примитивные команды рисования, такие как «нарисовать рамку», «написать этот символ в этой позиции», «левая кнопка мыши была нажата» и т.д.
Но X11 устарел, он не пересматривался более 30 лет. Большинство функций, которые предоставлял протокол X Server, больше не используются. Практически вся работа, которую выполнял X11, была переложена на отдельные приложения и оконный менеджер. И все же все эти старые функции все еще существуют, отягощая все эти приложения, снижая производительность и безопасность.
Wayland разрабатывается как бесплатный проект с открытым исходным кодом под руководством сообщества с целью замены X11. Он современной, безопасной и с более простой оконной системой.
В Wayland, сервером отображения является программа Compositor. Это оконный менеджер, который предоставляет приложениям внеэкранный буфер для каждого окна. Менеджер окон объединяет буферы окон в изображение, представляющее экран, и записывает результат в память дисплея.
Wayland также лучше, когда речь идет о безопасности. В X11 можно сделать то, что известно как «keylogging», позволяя любой программе существовать в фоновом режиме и читать, что происходит в других окнах, открытых в области X11. С Wayland этого просто не произойдет, поскольку каждая программа работает независимо.
Однако X11 все еще имеет много преимуществ перед Wayland. Несмотря на то, что проект Wayland существует уже более десяти лет, он не является на 100% стабильным. По состоянию на 2021 год, большинство видеоигр и графических приложений для Linux по-прежнему написаны для X11. Кроме того, многие графические драйверы с закрытым исходным кодом, например, для графических процессоров NVIDIA, еще не обеспечивают полной поддержки Wayland.
Все предыдущие версии программы Staffcounter для Linux (до 2.0.29) работали с сервером X11. Этот сервер позволял нам видеть что происходит в других программах, делать скриноты, записывать текст и правильно рассчитывать паузы. Однако все хорошее когда-то заканчивается, и уже новые версии Ubuntu, Debian и Red Hat по умолчанию идут с графическим сервером Wayland. Для того чтобы старые программы работали на них, в том числе и Staffcounter нужно переключить систему обратно на использование сервера X11, пока это еще возможно. Но что делать когда поддержка X11 прекратится?
Нашими разработчиками выпущена новая версия Staffcounter для Linux, котрая может работать как в X11 так и в Wayland, правда пока с некоторыми ограничениями. Работая в среде Wayland мы пока не увидим скриншотов и web-адресов. Все это скрыто системой от других программ. Однако имена запущенных программ и заголовки окон все же доступны, и это позволяет отследить чем занимался сотрудник. Кроме того приятным бонусом будет кейлоггинг, который уже поддерживает не только латинскую графику а и другие языки тоже.
Если же вам нужны скриншоты, то есть возможность отключить протокол Wayland и перейти обратно на X11. Прочтите раздел Особенности Ubuntu 22 на Этой странице.
Есть особенности установки и запуска программы на Debian. В некоторых дистрибутивах отключено использование офицальных репозиториев для скачивания библиотек. Это нужно сделать вручную: Settings, About, Software Updates, menu, Software repositories.