У 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 починає використовуватись, і багато дистрибутивів заявляють, що вони в якийсь момент перейдуть на неї, хоча чіткого розкладу досі немає. Ця система базується на API OpenGL / ES, що означає, що в майбутньому OpenGL буде "рідним API інтерфейсу GUI" в Linux. Проводиться робота по порту GTK + і QT до Wayland, щоб поточні популярні програми та настільні системи потребували мінімальних змін. Програми, які неможливо перенести, підтримуватимуться через сервер X11, як OS X підтримує додатки X11 через Xquartz. Очікується, що порт GTK + буде закінчений протягом року , тоді як Qt 5 вже має повну підтримку Wayland.
Щоб ще більше ускладнити справи, Ubuntu оголосив, що розробляє нову систему під назвою Mir через проблеми, які вони відчувають із Wayland. Ця віконна система також заснована на API OpenGL / ES.