En Linux, la interfaz gráfica de usuario no forma parte del sistema operativo. La interfaz gráfica de usuario que se encuentra en la mayoría de los escritorios de Linux es proporcionada por un software llamado X Window System, que define una forma independiente del dispositivo de manejar pantallas, teclados y dispositivos de puntero.
X Window define un protocolo de red para la comunicación, y cualquier programa que sepa "hablar" este protocolo puede usarlo. Hay una biblioteca C llamada Xlib que facilita el uso de este protocolo, por lo que Xlib es una especie de the API de interfaz gráfica de usuario nativa. Xlib no es la única forma de acceder a un servidor X Window; también hay XCB.
Se utilizan bibliotecas de herramientas como GTK+ (usado por GNOME) y Qt (usado por KDE), creadas sobre Xlib, porque son más fáciles de programar. Por ejemplo, le brindan una apariencia uniforme en todas las aplicaciones, facilitan el uso de arrastrar y soltar, brindan componentes estándar para un entorno de escritorio moderno, etc.
La forma en que X dibuja en la pantalla internamente depende de la implementación. X.org tiene una parte independiente del dispositivo y una parte dependiente del dispositivo. El primero administra los recursos de la pantalla, como Windows, mientras que el segundo se comunica con el controlador de la tarjeta gráfica, generalmente un módulo del kernel. La comunicación puede ocurrir a través del acceso directo a la memoria oa través de llamadas del sistema al kernel. El controlador traduce los comandos a una forma que el hardware de la tarjeta entiende.
A partir de 2013, un nuevo sistema de ventanas llamado Wayland está empezando a ser utilizable y muchas distribuciones han dicho que en algún momento migrarán a él, aunque todavía no hay un cronograma claro. Este sistema está basado en OpenGL/ES API, lo que significa que en el futuro OpenGL será la "API GUI nativa" en Linux. Se está trabajando para portar GTK+ y QT a Wayland, de modo que las aplicaciones populares y los sistemas de escritorio actuales necesiten cambios mínimos. Las aplicaciones que no se pueden portar serán compatibles a través de un servidor X11, al igual que OS X admite aplicaciones X11 a través de Xquartz. Se espera que el puerto GTK+ esté terminado dentro de un año, mientras que Qt 5 ya tiene soporte completo para Wayland.
Para complicar aún más las cosas, Ubuntu ha anunciado que están desarrollando un nuevo sistema llamado Mir debido a los problemas que perciben con Wayland. Este sistema de ventanas también se basa en la API de OpenGL/ES.
Linux es un kernel, no un sistema operativo completo. Existen diferentes sistemas de ventanas y interfaces gráficas de usuario que se ejecutan sobre Linux para proporcionar ventanas. Por lo general, X11 es el sistema de ventanas utilizado por las distribuciones de Linux.
También vale la pena mencionar a Wayland, ya que se lo conoce principalmente como un "futuro asesino X11".
También tenga en cuenta que Android y algunos otros sistemas operativos móviles no incluyen X11 aunque tienen un kernel de Linux, por lo que, en ese sentido, X11 no es nativo de todos los sistemas Linux.
Ser multiplataforma no tiene nada que ver con ser nativo. Cocoa también se ha portado a otras plataformas a través de GNUStep, pero aún es nativo de OS X/macOS.