# Servidor gráfico

Un servidor gráfico o servidor de ventanas es un programa cuya tarea principal es coordinar la entrada y la salida de sus clientes hacia y desde el resto del sistema operativo, el hardware, y otros. El servidor gráfico se comunica con sus clientes con el protocolo de servidor gráfico. Un protocolo de comunicaciones que puede ser transparente a la red o simplemente con capacidad para usar la red.
El servidor gráfico es un componente clave en cualquier interfaz de usuario gráfica, especialmente el sistema de ventanas.

## Protocolos de comunicación de servidor gráfico disponibles
### X11

Un ejemplo de servidor gráfico es X.Org, el cual corre sobre kernel. Recibe datos de evdev y los pasa a uno de sus clientes. El servidor gráfico también recibe datos de sus clientes; procesa el dato, realiza la composición y pasa el dato a uno de los tres componentes del kernel – DRM, o driver KMS. El componente escribe el dato al framebuffer y contenido del framebuffer se transmite a la pantalla conectada para visualizarlo. X se basa en GLX.
Una de las implementaciones del concepto de servidor gráfico es el Sistema de Ventanas X, en particular su versión utilizada – el Servidor X.Org y las librerías Xlib y XCB. X.Org es un servidor gráfico, pero su implementación actual se basa en un segundo programa, el gestor de composición de ventana, para hacer la composición. Ejemplos: Murmurar o KWin.
Ejemplos notables de servidores gráficos que implementan el protocolo X11 es X.Org, XFree86, XQuartz y Cygwin/X.
Una utilidad llamada xev es un comando de Unix que crea una ventana y solicita al servidor gráfico que le envíe información de los eventos cada vez que algo le ocurre a la ventana (como si cambia su tamaño, se pulsa alguna tecla, si se hace clic, etc.) mostrándolos en la consola.

### Wayland

Los servidores gráficos que implementan el protocolo de servidor Wayland se denominan Compositores Wayland. Como cualquier servidor gráfico, un compositor Wayland es responsable de controlar las entradas y las salidas para sus clientes y – en contraste a X11 – la composición. Ejemplos son Weston , Murtter, KWin o Enlightenment.
Los compositores Wayland se comunican con los clientes mediante un protocolo de servidor gráfico Wayland. Este protocolo define que los clientes pueden escribir datos directamente al framebuffer utilizando la API de renderizado EGL. El servidor gráfico aún decide qué ventana se encuentra arriba, si es visible para el usuario y es responsable de pasar los datos recibidos de los dispositivos de entrada desde evdev a sus clientes.
Wayland no se utiliza sólo en las distribuciones de escritorio Linux sino que está especialmente preparado para ordenadores móviles. Ha sido adoptado por Tizen y Sailfish OS.
Una implementación de Wayland está disponible bajo licencia MIT. El cliente y las librerías libwayland.

### Mir

El servidor gráfico Mir viene con su propio protocolo Mir diferente de los protocolos X11 o Wayland. Mir, además, soportará X11 y quizá el protocolo Wayland. Está desarrollado por Canónical y pretende ser el servidor gráfico elegido para Ubuntu.
Hay una implementación del servidor gráfico Mir disponible bajo el GPLv3. El servidor y las librerías libmir.

### SurfaceFlinger

Para Android (otro sistema operativo en base Linux para dispositivos móviles) Google desarrolló un servidor gráfico llamado SurfaceFlinger.

### Compositor Quartz

El compositor Quartz es el nombre del componente, que cumple con las funciones del servidor gráfico y de gestor de ventanas en el sistema de ventanas, que está siendo usado nativamente por la familia de sistemas operativos de Mac OS X.