Un servidor gràfic o servidor de finestres és un programa la tasca principal del qual és coordinar l'entrada i la sortida dels seus clients cap a i des de la resta del sistema operatiu, el maquinari, i uns altres. El servidor gràfic es comunica amb els seus clients amb el protocol de servidor gràfic. Un protocol de comunicacions que pot ser transparent a la xarxa o simplement amb capacitat per usar la xarxa.
Protocols de comunicació de servidor gràfic disponibles
X11
Un exemple de servidor gràfic és X.org, el qual corre sobre kernel. Rep dades de evdev i els passa a un dels seus clients. El servidor gràfic també rep dades dels seus clients; processa les dades, realitza la composició i passa les dades a un dels tres components del kernel – DRM, o driver KMS. El component escriu les dades al framebuffer i contingut del framebuffer es transmet a la pantalla connectada per visualitzar-ho. X es basa en GLX.
Una de les implementacions del concepte de servidor gràfic és el sistema de finestres X, en particular la seva versió utilitzada pel servidor X.org i les llibreries Xlib i XCB. X.org és un servidor gràfic, però la seva implementació actual es basa en un segon programa, el gestor de composició de finestra, per fer la composició. Exemples: Mutter o KWin.
Exemples notables de servidors gràfics que implementen el protocol X11 és X.org, XFree86, XQuartzi Cygwin/X.
Una utilitat anomenada xev és un comando d'Unix que crea una finestra i sol·licita al servidor gràfic que li enviï informació dels esdeveniments cada vegada que alguna cosa li ocorre a la finestra (com si canvia la seva grandària, es prem alguna tecla, si es fa clic, etc.) mostrant-los en la consola.
Wayland
Els servidors gràfics que implementen el protocol de servidor Wayland es denominen Compositors Wayland. Com qualsevol servidor gràfic, un compositor Wayland és responsable de controlar les entrades i les sortides per als seus clients i – en contrast a X11 – la composició. Exemples són Weston, Mutter, KWin o Enlightenment.
Els compositors Wayland es comuniquen amb els clients mitjançant un protocol de servidor gràfic Wayland. Aquest protocol defineix que els clients poden escriure dades directament al framebuffer utilitzant l'API de renderitzat EGL. El servidor gràfic encara decideix quina finestra es troba a dalt, si és visible per a l'usuari i és responsable de passar les dades rebudes dels dispositius d'entrada des de evdev als seus clients.
Wayland no s'utilitza només en les distribucions d'escriptori Linux sinó que està especialment preparat per a ordinadors mòbils. Ha estat adoptat per Tizen i Sailfish OS.
Una implementació de Wayland està disponible amb llicència X11. El client i les llibreries libwayland.
Mir
El servidor gràfic Mir ve amb el seu propi protocol Mir diferent dels protocols X11 o Wayland. Mir, a més, suportarà X11 i potser el protocol Wayland. Està desenvolupat per Canónical i pretén ser el servidor gràfic triat per Ubuntu.
Hi ha una implementació del servidor gràfic Mir disponible amb llincència GPLv3. El servidor i les llibreries libmir.
SurfaceFlinger
Para Android (un altre sistema operatiu en base Linux per a dispositius mòbils) Google va desenvolupar un servidor gràfic anomenat SurfaceFlinger.[1]
Compositor Quartz
El compositor Quartz és el nom del component, que compleix amb les funcions del servidor gràfic i de gestor de finestres en el sistema de finestres, que està sent usat nadiuament per la família de sistemes operatius de Mac US X.