В Linux графический интерфейс пользователя не является частью операционной системы. Графический интерфейс пользователя, встречающийся на большинстве настольных систем Linux, предоставляется программным обеспечением, называемым X Window System , которое определяет независимый от устройства способ работы с экранами, клавиатурами и указательными устройствами.
X Window определяет сетевой протокол для связи, и любая программа, которая знает, как «говорить» по этому протоколу, может использовать его. Существует библиотека C под названием Xlib, которая упрощает использование этого протокола, поэтому Xlib является своего рода в родной GUI API. Xlib - не единственный способ получить доступ к серверу X Window; также есть XCB .
Библиотеки инструментария, такие как GTK + (используется GNOME ) и Qt (используется KDE ), построенные поверх Xlib, используются потому, что с ними проще программировать. Например, они обеспечивают единообразный внешний вид приложений, упрощают использование перетаскивания, предоставляют компоненты, стандартные для современной среды рабочего стола, и т. Д.
То, как X рисует на экране, зависит от реализации. X.org имеет независимую от устройства часть и зависимую от устройства часть. Первый управляет ресурсами экрана, такими как windows, а второй связывается с драйвером графической карты, обычно с модулем ядра. Связь может происходить через прямой доступ к памяти или через системные вызовы ядра. Драйвер переводит команды в форму, понятную аппаратному обеспечению на карте.
С 2013 года новая оконная система под названием Wayland начинает становиться пригодной для использования, и во многих дистрибутивах говорят, что в какой-то момент она перейдет на нее, хотя четкого графика пока нет. Эта система основана на OpenGL / ES API, что означает, что в будущем OpenGL будет «родным GUI API» в Linux. Ведется работа по переносу GTK + и QT на Wayland, поэтому современные популярные приложения и настольные системы потребуют минимальных изменений. Приложения, которые нельзя перенести, будут поддерживаться через сервер X11, так же как OS X поддерживает приложения X11 через Xquartz. Ожидается, что порт GTK + будет завершен в течение года , а Qt 5 уже имеет полную поддержку Wayland.
Чтобы еще больше усложнить ситуацию, Ubuntu объявила, что разрабатывает новую систему под названием Mir из-за проблем, которые они испытывают с Wayland. Эта оконная система также основана на API OpenGL / ES.