X-Windows.
Es el estándar IEEE POSIX que permite gestionar las ventanas de una interfaz gráfica de usuario. Fué desarrollado por el Instituto Tecnológico de Massachusetts (MIT) dentro del proyecto Athena cuyo objetivo era el uso educativo de las redes de estaciones de trabajo.
X-Windows fue liberado en 1983, y recientemente el MIT ha creado un consorcio para controlar la evolución del estándar mediante un foro en el que los vendedores comprendan las especificidades de este estándar y se facilite la integración de nuevas tecnologías. Aunque el MIT protege todo el software desarrollado por el consorcio mediante derechos de autor, permite el uso y distribución irrestringida del código fuente mientras se mantengan los titulares del origen y la autoría del software.
X-Windows es independiente del sistema opaerativo, la red, o la plataforma física sobre la que funciona. Es un sistema multitarea: a cada ventana le corresponde un proceso. Además, es un sistema distribuido, puesto que cada uno de estos procesos puede estar ejecutándose en un ordenador remoto bajo un sistema operativo diferente. Esto permite que pueda accederse a todos los recursos de la red desde la mesa de un usuario mediante un dispositivo que soporte ventanas.
X-Windows no es una interfaz gráfica de usuario, sino una tecnología que soporta un sistema de ventanas distribuido sobre la que pueden construirse diversos interfaces de usuario. X proporciona un protocolo para la comunicación de primitivas gráficas entre ordenadores tales como mover, cambiar de tamaño, o manipular una ventana. No provee los atributos de apariencia correspondientes a un entorno gráfico.
X-Windows está formado por tres niveles de software: protocolo X, Xlib y Xtoolkit. El protocolo X describe la forma en la que se comunican información gráfica dos ordenadores. Esta información no es visible al programador. Para él existe el segundo nivel (Xlib) que son varios centenares de funciones en C que permiten usar las primitivas gráficas de X (punto, línea, color, operaciones básicas...). Pero la programación a este nivel es muy compleja (es una especie de ensamblador gráfico) debido a la gran cantidad de funciones disponibles y su complejidad de uso. Para resolver esta situación se ha creado el nivel Xtoolkit que maneja abstracciones gráficas más cercanas a la interfaz humana (ventanas, barras de desplazamiento, iconos, menús,...). Desafortunadamente estos reacursos gráficos suelen ser insuficientes para los programadores por lo que cada fabricante los ha ampliado según las necesidades de sus clientes.