
En informática , un sistema de ventanas (o sistema de ventanas ) es un conjunto de software que gestiona por separado diferentes partes de las pantallas de visualización . [ 1 ] Es un tipo de interfaz gráfica de usuario (GUI) que implementa el paradigma WIMP ( ventanas , iconos , menús , puntero ) para una interfaz de usuario .
A cada aplicación en ejecución se le asigna una superficie de la pantalla, generalmente redimensionable y rectangular, para presentar su interfaz gráfica de usuario (GUI) al usuario; estas ventanas pueden superponerse, a diferencia de una interfaz en mosaico donde no se permite la superposición. Normalmente, se dibuja una decoración alrededor de cada ventana. La programación tanto de la decoración de la ventana como de los widgets disponibles dentro de la misma, que son elementos gráficos para la interacción directa del usuario, como controles deslizantes, botones, etc., se facilita y simplifica mediante el uso de kits de herramientas de widgets .
Detalles técnicos
El componente principal de cualquier sistema de ventanas se suele denominar servidor de visualización , aunque también se utilizan términos alternativos como servidor de ventanas . Cualquier aplicación que se ejecute y presente su interfaz gráfica de usuario (GUI) en una ventana es un cliente del servidor de visualización. El servidor de visualización y sus clientes se comunican entre sí mediante una interfaz de programación de aplicaciones (API) o un protocolo de comunicación , que suele denominarse protocolo del servidor de visualización. El servidor de visualización actúa como mediador entre los clientes y el usuario. Recibe toda la información del núcleo , que a su vez recibe de todos los dispositivos de entrada conectados , como teclados , dispositivos señaladores o pantallas táctiles , y la transmite al cliente correspondiente. El servidor de visualización también es responsable de la salida de los clientes al monitor del ordenador . La salida de sonido normalmente no la gestiona el servidor de visualización, pero el volumen del sonido suele controlarse mediante applets de la GUI, y es el servidor de visualización quien decide qué aplicaciones se muestran en primer plano. Un sistema de ventanas permite al usuario trabajar con varios programas simultáneamente. Cada programa presenta su GUI en su propia ventana, que generalmente es un área rectangular de la pantalla.
Desde el punto de vista de un programador , un sistema de ventanas implementa primitivas gráficas. Por ejemplo: renderizar fuentes o dibujar una línea en la pantalla. Proporciona una abstracción del hardware gráfico para que la utilicen elementos de nivel superior de la interfaz gráfica, como un gestor de ventanas.
Un protocolo de servidor de visualización puede ser compatible con la red o incluso transparente a la red , lo que facilita la implementación de clientes ligeros .
Servidor de visualización

Un servidor de pantalla o servidor de ventanas es un programa cuya tarea principal es coordinar la entrada y salida de datos de sus clientes con el resto del sistema operativo, el hardware y entre sí. El servidor de pantalla se comunica con sus clientes mediante el protocolo de servidor de pantalla, un protocolo de comunicación que puede ser transparente a la red o simplemente compatible con la red.
El servidor de visualización es un componente clave en cualquier interfaz gráfica de usuario , específicamente en el sistema de ventanas.
La relación cliente-servidor de un servidor de visualización independiente resulta algo contraintuitiva, ya que un "servidor" suele concebirse como una máquina grande y remota, mientras que un "servidor de visualización" independiente es un sistema local pequeño, con la mayoría de los clientes ejecutándose en una máquina central más grande. La explicación reside en que un servidor de visualización proporciona los servicios de visualización y dispositivos de entrada.
Protocolos de comunicación del servidor de visualización
X11

El sistema X Window se lanzó por primera vez en 1984 y, históricamente, ha sido el principal sistema de ventanas para sistemas operativos Unix y similares . El protocolo principal se encuentra en la versión 11 desde 1987, por lo que se le conoce comúnmente como "X11". La implementación de referencia actual del protocolo X11 es el servidor X.Org , que proporciona el servidor de visualización y algunos componentes auxiliares. El sistema X Window no define una apariencia ; en cambio, los usuarios ejecutan un gestor de ventanas (ya sea independiente o como parte de un entorno de escritorio más amplio ) y aplicaciones diseñadas con un conjunto de herramientas de widgets . El repositorio X.Org incluye un gestor de ventanas de referencia, twm ; una implementación de referencia de un conjunto de herramientas de widgets, X Athena Widgets ; y algunas aplicaciones básicas, como una calculadora y un reloj. [ 2 ]
Otros ejemplos notables de servidores de visualización que implementan el protocolo de servidor de visualización X11 son XFree86 (del cual se derivó el actual servidor X.Org), XQuartz (para macOS ) y Cygwin/X (para Microsoft Windows ).
Wayland

Los servidores de visualización que implementan el protocolo Wayland se denominan compositores Wayland y se comunican con los clientes a través de dicho protocolo . Wayland se creó como sucesor previsto de X11 y difiere significativamente de su diseño. Un compositor Wayland combina las funciones de un servidor de visualización, un gestor de ventanas y un gestor de composición en un solo componente, mientras que en X11 son programas independientes. [ 3 ]
El alcance del protocolo Wayland es mucho menor que el del protocolo central de X11, ya que define únicamente cómo los clientes escriben datos en búferes llamados "superficies" y no funciona como un protocolo de red. Toda la demás funcionalidad se delega a protocolos de extensión (desarrollados en el repositorio wayland-protocols ), al Direct Rendering Manager y a los componentes evdev del kernel de Linux , a la biblioteca de gráficos 3D Mesa , a kits de herramientas de widgets (como GTK , Qt y EFL ), al sistema XDG Desktop Portal y a otros paquetes de software como libinput y PipeWire .
Wayland ha sido adoptado por varios entornos de escritorio de código abierto, incluidos GNOME [ 4 ] y KDE Plasma [ 5 ], que están portando desde X11, y entornos como COSMIC , que fueron escritos desde cero como entornos nativos de Wayland. También están disponibles varios compositores independientes como Weston , Sway , Hyprland , Wayfire , niri y labwc . Wayland también ha sido adoptado por varios sistemas embebidos y orientados a dispositivos móviles, incluidos Tizen [ 6 ] , Sailfish OS [ 7 ] y WebOS [ 8 ] .
La implementación de referencia de Wayland está disponible bajo la licencia MIT y consta de las bibliotecas libwayland-client y libwayland-server.
Se está trabajando para añadir compatibilidad con Wayland a ChromeOS . [ 9 ]
Mir
El servidor de visualización Mir utiliza su propio protocolo, distinto de los empleados por X11 y Wayland. Además, Mir es compatible con el protocolo X11. Fue desarrollado por Canonical y se concibió como el servidor de visualización predeterminado para Ubuntu . En 2017, fue reemplazado por el servidor de visualización Wayland para las versiones de escritorio de Ubuntu.
Existen implementaciones del servidor de visualización Mir, las bibliotecas libmir-server y libmir-client disponibles bajo la licencia GPLv3 .
Sistemas de ventanas con API
Lanzador de superficie
Google desarrolló un servidor de visualización llamado SurfaceFlinger [ 10 ] para Android :
En Android, todo se renderiza en una "superficie"; las aplicaciones producen "superficies" que se colocan en una cola gestionada por SurfaceFlinger. [ 11 ] [ 12 ]
Otra solución específica para Android es Gralloc. Gralloc gestiona la memoria del dispositivo, es decir, realiza la asignación, la arbitraje y la sincronización mediante descriptores de archivo de barrera de Android/Linux. Gralloc compite con otras soluciones como la Gestión Genérica de Búferes (GBM) de Mesa o EGLStreams de Nvidia. La capa de abstracción de hardware (HAL) de Gralloc se utiliza para asignar los búferes subyacentes a las "superficies".
Para la composición en Android, las superficies se envían a SurfaceFlinger, que utiliza OpenGL ES para realizar la composición.
Hardware Composer HAL (HWC) se introdujo en Android 3.0 y ha evolucionado constantemente a lo largo de los años. Su propósito principal es determinar la forma más eficiente de componer búferes con el hardware disponible. Como capa de abstracción de hardware (HAL), su implementación es específica del dispositivo y generalmente la realiza el fabricante del hardware de la pantalla.
Compositor de cuarzo
Para la familia de sistemas operativos macOS de Apple, Quartz Compositor cumple las funciones de un servidor de visualización y de un gestor de ventanas en el sistema de ventanas.
Gestor de ventanas de escritorio
En Microsoft Windows , desde Windows Vista en adelante, el Administrador de ventanas de escritorio (DWM) permite el uso de la aceleración de hardware para renderizar la interfaz gráfica de usuario. Originalmente se creó para habilitar partes de la nueva experiencia de usuario "Windows Aero", que permitía efectos como transparencia, cambio de ventanas 3D y más. También se incluye en Windows Server 2008, pero requiere la instalación de la función "Experiencia de escritorio" y controladores gráficos compatibles. A partir de Windows 8, el DWM no se puede deshabilitar y se renderiza por software si no hay una tarjeta gráfica adecuada instalada.
Lista de sistemas de ventanas
Para sistemas operativos tipo Unix
- 8½ y Río para el Plan 9
- fbui (con un kernel de Linux modificado)
- HP Windows/9000 (en versiones antiguas de HP-UX ) [ 13 ]
- Administrador de ventanas Andrew de CMU [ 14 ]
- Zafiro [ 15 ] para el PERQ
- Oriel de Whitechapel [ 16 ]
- Silicon Graphics MEX
- Gerente (MGR)
- Metis
- Mir
- Nuevos sistemas / OpenWindows
- Próximo DPS
- Orbital ( Redox )
- Qt Extended
- Compositor Quartz ( macOS )
- SunView
- Gemelo (Ventanas de texto)
- Sistema de ventanas W
- Wayland
- Sistema X Window
- XFast
- Xynth
- Ventanas Y [ 17 ]
Para sistemas operativos de la familia Windows NT
- Administrador de ventanas de escritorio (DWM) en Microsoft Windows ( Vista y versiones posteriores)
- Explorador de ReactOS
- Carcasa clásica
- Pokki
- RetroUI
sistemas de ventanas web
Otro
- DM
- JOYA
- Intuición
- Microventanas
- Mini GUI
- OOHG
- Visión
- VWS (Software para estaciones de trabajo VAX)
- mpx/mux (para la terminal Blit de Bell Labs)
- Ventanas dinámicas simbólicas
Algunos sistemas, como Microsoft Windows ( XP , 9x y versiones anteriores), el clásico Mac OS (versión 9 y anteriores) y Palm OS , contienen un sistema de ventanas integrado en el sistema operativo.
Véase también
Referencias
- ↑ Kent, Allen; Williams, James G. (1996-10-11). Enciclopedia de microcomputadoras: Volumen 19 - Sistemas de mantenimiento de la verdad para la calidad de la visualización . CRC Press. pág. 227. ISBN 9780824727178Consultado el 8 de junio de 2017 .
- ↑ "app" . gitlab.freedesktop.org . Consultado el 26 de julio de 2025 .
- ↑ "Capítulo 1. Introducción" . wayland.freedesktop.org . Consultado el 26 de julio de 2025 .
- ↑ "Iniciativas/Wayland/GnomeShell – Archivo Wiki de GNOME" . wiki.gnome.org . Consultado el 26 de julio de 2025 .
- ↑ Flöser, Martin (21-09-2012). "Una actualización real sobre el progreso de Wayland en KWin y KDE" . Blog de Martin . Consultado el 26-07-2025 .
- ↑ "API nativa de Tizen: Ecore_Wl2 - Integración con Wayland" . docs.tizen.org . Consultado el 26 de julio de 2025 .
- ↑ "Aplicaciones" . Documentación del sistema operativo Sailfish . Consultado el 26 de julio de 2025 .
- ↑ "Gráficos y entrada" . www.webosose.org . Consultado el 26 de julio de 2025 .
- ↑ "Descripción general del ozono" . Consultado el 20 de agosto de 2017 .
- ↑ "Arquitectura del sistema Android" (PDF) . Archivado del original (PDF) el 8 de abril de 2016.
- ↑ "Desarrollador de Android: Surface" .
- ↑ "Desarrollador de Android: SurfaceFlinger y Hardware Composer" .
- ↑ "Manual del usuario de HP Windows/9000" (PDF) . Hewlett Packard. Abril de 1988. Consultado el 26 de octubre de 2021 .
- ↑ "Andrew: Un entorno de computación personal distribuida" (PDF) . Communications of the ACM . 29 (3). Marzo de 1986.
- ↑ Myers, Brad (dic. 1984). "La interfaz de usuario para Sapphire" (PDF) . IEEE Computer Graphics and Applications . 4 (12): 13– 23. doi : 10.1109/MCG.1984.6429376 . S2CID 11138733 .
- ↑ "Chilton::INF::Window Management" . www.chilton-computing.org.uk . Consultado el 11 de abril de 2023 .
- ↑ "El sistema de ventanas Y" . www.y-windows.org . Consultado el 15 de diciembre de 2025 .
- Sistemas de ventanas