W systemie Linux graficzny interfejs użytkownika nie jest częścią systemu operacyjnego. Graficzny interfejs użytkownika dostępny na większości komputerów z systemem Linux jest dostarczany przez oprogramowanie o nazwie X Window System , które określa niezależny od urządzenia sposób radzenia sobie z ekranami, klawiaturami i wskaźnikami.
X Window definiuje protokół sieciowy do komunikacji i każdy program, który umie „mówić” tym protokołem, może go używać. Jest to biblioteka C nazywa Xlib że łatwiej korzystać z tego protokołu, więc Xlib niby na rodzimym GUI API. Xlib to nie jedyny sposób na dostęp do serwera X Window; jest też XCB .
Biblioteki zestawów narzędzi, takie jak GTK + (używane przez GNOME ) i Qt (używane przez KDE ), zbudowane na Xlib, są używane, ponieważ są łatwiejsze do programowania. Na przykład zapewniają spójny wygląd i obsługę różnych aplikacji, ułatwiają przeciąganie i upuszczanie, zapewniają standardowe komponenty nowoczesnego środowiska komputerowego i tak dalej.
To, jak X wewnętrznie rysuje na ekranie, zależy od implementacji. X.org ma część niezależną od urządzenia i część zależną od urządzenia. Ten pierwszy zarządza zasobami ekranowymi, takimi jak Windows, podczas gdy drugi komunikuje się ze sterownikiem karty graficznej, zwykle modułem jądra. Komunikacja może odbywać się przez bezpośredni dostęp do pamięci lub przez wywołania systemowe do jądra. Sterownik tłumaczy polecenia na postać zrozumiałą dla sprzętu na karcie.
Począwszy od 2013 r. Nowy system okien o nazwie Wayland zaczyna być użyteczny, a wiele dystrybucji mówi, że w pewnym momencie do niego migruje, choć nadal nie ma jasnego harmonogramu. System ten oparty jest na API OpenGL / ES, co oznacza, że w przyszłości OpenGL będzie „natywnym interfejsem GUI API” w systemie Linux. Trwają prace nad przeniesieniem GTK + i QT do Wayland, tak aby obecne popularne aplikacje i systemy komputerowe wymagały minimalnych zmian. Aplikacje, których nie można przenieść, będą obsługiwane przez serwer X11, podobnie jak OS X obsługuje aplikacje X11 za pośrednictwem Xquartz. Port GTK + ma zostać ukończony w ciągu roku , a Qt 5 ma już pełną obsługę Wayland.
Aby jeszcze bardziej skomplikować sprawy, Ubuntu ogłosiło, że opracowuje nowy system o nazwie Mir z powodu problemów, które dostrzegają w Wayland. Ten system okien jest również oparty na API OpenGL / ES.