stringtranslate.com

Sistema de ventanas X

El sistema X Window ( X11 , o simplemente X ) es un sistema de ventanas para visualizaciones de mapas de bits , común en sistemas operativos tipo Unix .

X se originó como parte del Proyecto Athena en el Instituto Tecnológico de Massachusetts (MIT) en 1984. [3] El protocolo X ha estado en la versión 11 (de ahí "X11") desde septiembre de 1987. La Fundación X.Org lidera el proyecto X, con la implementación de referencia actual, X.Org Server , disponible como software libre y de código abierto bajo la Licencia MIT y licencias permisivas similares.

Propósito y habilidades

X es un sistema independiente de la arquitectura para interfaces gráficas de usuario remotas y capacidades de dispositivos de entrada. Cada persona que utiliza un terminal en red tiene la capacidad de interactuar con la pantalla con cualquier tipo de dispositivo de entrada de usuario.

En su distribución estándar, es una solución de interfaz y visualización completa, aunque simple, que ofrece un conjunto de herramientas estándar y una pila de protocolos para construir interfaces gráficas de usuario en la mayoría de los sistemas operativos tipo Unix y OpenVMS , y ha sido portado a muchos otros sistemas operativos contemporáneos de propósito general .

X proporciona el marco básico , o primitivos, para construir tales entornos GUI: dibujar y mover ventanas en la pantalla e interactuar con un mouse, teclado o pantalla táctil. X no impone la interfaz de usuario ; los programas cliente individuales se encargan de esto. Los programas pueden usar las capacidades gráficas de X sin una interfaz de usuario. Como tal, el estilo visual de los entornos basados ​​en X varía mucho; diferentes programas pueden presentar interfaces radicalmente diferentes.

A diferencia de la mayoría de los protocolos de visualización anteriores, X fue diseñado específicamente para ser utilizado a través de conexiones de red en lugar de en un dispositivo de visualización integrado o adjunto. X presenta transparencia de red , lo que significa que un programa X que se ejecuta en una computadora en algún lugar de una red (como Internet) puede mostrar su interfaz de usuario en un servidor X que se ejecuta en alguna otra computadora en la red. El servidor X es típicamente el proveedor de recursos gráficos y eventos de teclado/ratón para clientes X , lo que significa que el servidor X generalmente se ejecuta en la computadora frente a un usuario humano, mientras que las aplicaciones cliente X se ejecutan en cualquier parte de la red y se comunican con la computadora del usuario para solicitar la representación de contenido gráfico y recibir eventos de dispositivos de entrada, incluidos teclados y ratones.

El hecho de que el término "servidor" se aplique al software que se encuentra frente al usuario suele sorprender a los usuarios acostumbrados a que sus programas sean clientes de servicios en computadoras remotas. Aquí, en lugar de que una base de datos remota sea el recurso para una aplicación local, la pantalla gráfica y los dispositivos de entrada del usuario se convierten en recursos que el servidor X local pone a disposición de los programas cliente X alojados local y remotamente que necesitan compartir los gráficos y los dispositivos de entrada del usuario para comunicarse con él.

El protocolo de red de X se basa en primitivas de comandos X. Este enfoque permite que tanto las operaciones 2D como (a través de extensiones como GLX) las operaciones 3D de una aplicación cliente X que se esté ejecutando en una computadora diferente se aceleren por completo en la pantalla del servidor X. Por ejemplo, en OpenGL clásico (antes de la versión 3.0), las listas de visualización que contienen una gran cantidad de objetos se podían construir y almacenar completamente en el servidor X mediante un programa cliente X remoto, y luego cada una de ellas se podía renderizar enviando un único glCallList(which) a través de la red.

X no proporciona soporte nativo para audio; existen varios proyectos para llenar este nicho, algunos de los cuales también brindan soporte de red transparente .

Arquitectura de software

Ejemplo sencillo: el servidor X recibe la información de un teclado y un ratón locales y la muestra en una pantalla. Un navegador web y un emulador de terminal se ejecutan en la estación de trabajo del usuario y un emulador de terminal se ejecuta en una computadora remota, pero se controla y supervisa desde la máquina del usuario.

X utiliza un modelo cliente-servidor: un servidor X se comunica con varios programas cliente . [4] El servidor acepta solicitudes de salida gráfica (ventanas) y devuelve la entrada del usuario (desde el teclado, el ratón o la pantalla táctil). El servidor puede funcionar como:

Esta terminología cliente-servidor (el terminal del usuario es el servidor y las aplicaciones son los clientes) suele confundir a los nuevos usuarios de X, porque los términos parecen estar invertidos. Pero X adopta la perspectiva de la aplicación, en lugar de la del usuario final: X proporciona servicios de visualización y E/S a las aplicaciones, por lo que es un servidor; las aplicaciones utilizan estos servicios, por lo que son clientes.

El protocolo de comunicación entre el servidor y el cliente funciona de forma transparente en la red: el cliente y el servidor pueden funcionar en la misma máquina o en máquinas diferentes, posiblemente con diferentes arquitecturas y sistemas operativos. Un cliente y un servidor pueden incluso comunicarse de forma segura a través de Internet mediante un túnel de conexión a través de una sesión de red cifrada.

Un cliente X puede emular un servidor X al proporcionar servicios de visualización a otros clientes. Esto se conoce como "anidamiento X". Los clientes de código abierto como Xnest y Xephyr admiten este tipo de anidamiento X. [5]

Escritorio remoto

Para ejecutar una aplicación cliente X en una máquina remota, el usuario puede hacer lo siguiente:

Luego, la aplicación cliente X remota establecerá una conexión con el servidor X local del usuario, brindándole visualización y entrada.

Alternativamente, la máquina local puede ejecutar un pequeño programa que se conecta a la máquina remota e inicia la aplicación cliente.

Algunos ejemplos prácticos de clientes remotos incluyen:

Interfaces de usuario

Interfaz gráfica de usuario de GNOME
Interfaz gráfica de usuario de Xfce

X define principalmente protocolos y primitivas gráficas; deliberadamente no contiene especificaciones para el diseño de la interfaz de usuario de la aplicación, como estilos de botones, menús o barras de título de ventanas. [6] En cambio, el software de aplicación (como administradores de ventanas, kits de herramientas de widgets de GUI y entornos de escritorio, o interfaces gráficas de usuario específicas de la aplicación) definen y proporcionan dichos detalles. Como resultado, no existe una interfaz X típica y varios entornos de escritorio diferentes se han vuelto populares entre los usuarios.

Un gestor de ventanas controla la colocación y la apariencia de las ventanas de las aplicaciones. Esto puede dar lugar a interfaces de escritorio que recuerdan a las de Microsoft Windows o Apple Macintosh (por ejemplo, GNOME 2, KDE Plasma, Xfce) o tener controles radicalmente diferentes (como un gestor de ventanas en mosaico, como wmii o Ratpoison ). Algunas interfaces, como Sugar o ChromeOS, evitan por completo la metáfora del escritorio y simplifican sus interfaces para aplicaciones especializadas. Los gestores de ventanas varían en sofisticación y complejidad desde los más básicos ( por ejemplo , twm, el gestor de ventanas básico que se suministra con X, o evilwm, un gestor de ventanas extremadamente ligero) hasta los entornos de escritorio más completos, como Enlightenment, e incluso hasta gestores de ventanas específicos de aplicaciones para mercados verticales, como el punto de venta.

Muchos usuarios utilizan X con un entorno de escritorio que, además del gestor de ventanas, incluye varias aplicaciones que utilizan una interfaz de usuario coherente. Entre los entornos de escritorio más conocidos se encuentran GNOME , KDE Plasma y Xfce . El entorno estándar de UNIX 98 es el Common Desktop Environment (CDE). La iniciativa freedesktop.org aborda la interoperabilidad entre los escritorios y los componentes necesarios para un escritorio X competitivo.

Implementaciones

La implementación de X.Org es la implementación canónica de X. Debido a la liberalidad de las licencias, han aparecido numerosas variantes, tanto de código abierto como de código propietario. Los proveedores comerciales de Unix han tendido a tomar la implementación de referencia y adaptarla a su hardware, generalmente personalizándola y añadiéndole extensiones de código propietario.

Hasta 2004, XFree86 era la variante más común de X en sistemas libres tipo Unix. XFree86 comenzó como una adaptación de X a PC compatibles con 386 y, a finales de los años 90, se había convertido en la mayor fuente de innovación técnica en X y en el estándar de facto de desarrollo de X. Sin embargo, desde 2004, el servidor X.Org, una bifurcación de XFree86, se ha vuelto predominante.

Si bien es común asociar X con Unix, los servidores X también existen de forma nativa dentro de otros entornos gráficos. El sistema operativo OpenVMS de VMS Software Inc. incluye una versión de X con Common Desktop Environment (CDE), conocido como DECwindows, como su entorno de escritorio estándar. Apple originalmente portó X a macOS en forma de X11.app, pero eso ha quedado obsoleto en favor de la implementación de XQuartz . Los servidores de terceros bajo los sistemas operativos más antiguos de Apple en la década de 1990, System 7 y Mac OS 8 y 9, incluían MacX de Apple y eXodus de White Pine Software.

Microsoft Windows no viene con soporte para X, pero existen muchas implementaciones de terceros, como software libre y de código abierto como Cygwin/X , y productos propietarios como Exceed, MKS X/Server, Reflection X, X-Win32 y Xming .

También existen implementaciones de servidores X en Java. WeirdX se ejecuta en cualquier plataforma compatible con Swing 1.1 y se ejecutará como un subprograma en la mayoría de los navegadores. El servidor X de Android es una implementación de Java de código abierto que se ejecuta en dispositivos Android.

Cuando un sistema operativo con un sistema de ventanas nativo aloja X además, el sistema X puede usar su propio escritorio normal en una ventana del host separada o puede ejecutarse sin raíz , lo que significa que el escritorio X está oculto y el entorno de ventanas del host administra la geometría y la apariencia de las ventanas X alojadas dentro de la pantalla del host.

Terminales X

Una terminal X es un cliente ligero que sólo ejecuta un servidor X. Esta arquitectura se hizo popular para construir parques de terminales económicos para que muchos usuarios usen simultáneamente el mismo servidor informático grande para ejecutar programas de aplicación como clientes de la terminal X de cada usuario. Este uso está muy alineado con la intención original del proyecto MIT.

Los terminales X exploran la red (el dominio de difusión local ) utilizando el Protocolo de control de X Display Manager para generar una lista de hosts disponibles que están permitidos como clientes. Uno de los hosts cliente debe ejecutar un X Display Manager .

Una limitación de los terminales X y de la mayoría de los clientes ligeros es que no pueden realizar ninguna entrada o salida que no sea mediante el teclado, el ratón y la pantalla. Se supone que todos los datos relevantes existen únicamente en el servidor remoto y el usuario del terminal X no tiene métodos disponibles para guardar o cargar datos desde un dispositivo periférico local .

Los terminales X dedicados (de hardware) han caído en desuso; una PC o un cliente ligero moderno con un servidor X generalmente proporciona la misma funcionalidad al mismo costo o a un costo menor.

Limitaciones y críticas

El Unix-Haters Handbook (1994) dedicó un capítulo completo a los problemas de X. [7] Why X Is Not Our Ideal Window System (1990) de Gajewska, Manasse y McCormack detalló los problemas del protocolo con recomendaciones para mejorarlos.

Problemas con la interfaz de usuario

La falta de directrices de diseño en X ha dado lugar a varias interfaces muy diferentes y a aplicaciones que no siempre han funcionado bien juntas. El Manual de Convenciones de Comunicación entre Clientes (ICCCM), una especificación para la interoperabilidad de los clientes, tiene fama de ser difícil de implementar correctamente. Otros esfuerzos de normalización como Motif y CDE no aliviaron los problemas, lo que ha frustrado a los usuarios y a los programadores. [8] Los programadores de gráficos ahora suelen abordar la coherencia de la apariencia y la comunicación de las aplicaciones codificando para un entorno de escritorio específico o para un conjunto de herramientas de widgets específico, lo que también evita tener que tratar directamente con el ICCCM.

X también carece de soporte nativo para procedimientos almacenados definidos por el usuario en el servidor X, al estilo de NeWS  : no hay una función de scripting Turing-complete . Por lo tanto, varios entornos de escritorio pueden ofrecer sus propias funciones (generalmente incompatibles entre sí).

Problemas relacionados con la accesibilidad informática

Los sistemas basados ​​en X pueden tener problemas de accesibilidad que dificultan la utilización de una computadora para usuarios discapacitados, incluyendo clic derecho , doble clic , clic central , mouse-over y focus stealing . Algunos clientes X11 manejan los problemas de accesibilidad mejor que otros, por lo que las personas con problemas de accesibilidad no se ven excluidas del uso de X11. Sin embargo, no existe ningún estándar de accesibilidad o pautas de accesibilidad para X11. Dentro del proceso de estándares X11 no hay un grupo de trabajo sobre accesibilidad; sin embargo, las necesidades de accesibilidad están siendo abordadas por proyectos de software para proporcionar estas características sobre X.

El proyecto Orca añade soporte de accesibilidad al sistema X Window, incluyendo la implementación de una API ( AT-SPI [9] ). Esto se combina con ATK de GNOME para permitir que se implementen funciones de accesibilidad en programas X utilizando las API de GNOME/GTK. [10] KDE proporciona un conjunto diferente de software de accesibilidad, incluyendo un conversor de texto a voz y un magnificador de pantalla. [11] Los otros escritorios principales (LXDE, Xfce y Enlightenment) intentan ser compatibles con ATK.

Red

Ejemplo de tunelización de una aplicación X11 a través de SSH

Un cliente X no puede ser generalmente separado de un servidor y reconectado a otro a menos que su código específicamente lo provea ( Emacs es uno de los pocos programas comunes con esta habilidad). Como tal, mover una sesión entera de un servidor X a otro generalmente no es posible. Sin embargo, enfoques como Virtual Network Computing (VNC), NX y Xpra permiten que una sesión virtual sea alcanzada desde diferentes servidores X (de una manera similar a GNU Screen en relación a terminales), y otras aplicaciones y kits de herramientas proporcionan facilidades relacionadas. [12] Soluciones alternativas como x11vnc ( VNC :0 viewers ), el modo sombra de Xpra y el modo sombra nxagent de NX también existen para hacer que la pantalla actual del servidor X esté disponible. Esta habilidad permite que la interfaz de usuario (ratón, teclado, monitor) de una aplicación en ejecución sea cambiada de una ubicación a otra sin detener y reiniciar la aplicación.

El tráfico de red entre un servidor X y clientes X remotos no está cifrado de forma predeterminada. Un atacante con un rastreador de paquetes puede interceptarlo, lo que le permite ver todo lo que se muestra o se envía desde la pantalla del usuario. La forma más común de cifrar el tráfico X es establecer un túnel Secure Shell (SSH) para la comunicación.

Al igual que todos los clientes ligeros , al utilizar X en una red, las limitaciones de ancho de banda pueden impedir el uso de aplicaciones que utilizan mapas de bits de forma intensiva y que requieren actualizar rápidamente grandes porciones de la pantalla con baja latencia, como la animación 3D o la edición de fotografías. Incluso una secuencia de vídeo relativamente pequeña sin comprimir de 640×480×24 bits a 30 fps (~211 Mbit/s) puede superar fácilmente el ancho de banda de una red de 100 Mbit/s para un solo cliente. Por el contrario, las versiones modernas de X generalmente tienen extensiones como Mesa que permiten optimizar la visualización local de los gráficos de un programa local para pasar por alto el modelo de red y controlar directamente la tarjeta de vídeo, para el uso de vídeo de pantalla completa, aplicaciones 3D renderizadas y otras aplicaciones similares.

Separación cliente-servidor

El diseño de X requiere que los clientes y el servidor operen por separado, y la independencia de los dispositivos y la separación del cliente y el servidor generan sobrecarga. La mayor parte de la sobrecarga proviene del tiempo de retardo de ida y vuelta de la red entre el cliente y el servidor ( latencia ) en lugar del protocolo en sí: las mejores soluciones a los problemas de rendimiento dependen de un diseño de aplicación eficiente. [13] Una crítica común a X es que sus características de red dan como resultado una complejidad excesiva y una disminución del rendimiento si solo se usa localmente.

Las implementaciones modernas de X utilizan sockets de dominio Unix para lograr conexiones eficientes en el mismo host. Además, se puede utilizar memoria compartida (a través de la extensión MIT-SHM ) para lograr una comunicación más rápida entre cliente y servidor. [14] Sin embargo, el programador debe activar y utilizar explícitamente la extensión de memoria compartida. También es necesario proporcionar rutas de respaldo para mantener la compatibilidad con implementaciones más antiguas y para comunicarse con servidores X no locales.

Competidores

Algunas personas han intentado escribir alternativas y reemplazos para X. Las alternativas históricas incluyen NeWS de Sun y Display PostScript de NeXT , ambos sistemas basados ​​en PostScript que admiten procedimientos del lado de visualización definibles por el usuario, de los que X carecía. Las alternativas actuales incluyen:

Otras formas de lograr una forma funcional de la característica de "transparencia de red" de X, a través de la transmisibilidad de red de servicios gráficos, incluyen:

Historia

Antecesores

Varios sistemas de visualización de mapas de bits precedieron a X. De Xerox llegaron Alto (1973) y Star (1981). De Apollo Computer llegó Display Manager (1981). De Apple llegaron Lisa (1983) y Macintosh (1984). El mundo Unix tuvo Andrew Project (1982) y la terminal Blit de Rob Pike (1982).

La Universidad Carnegie Mellon produjo una aplicación de acceso remoto llamada Alto Terminal, que mostraba ventanas superpuestas en la Xerox Alto y hacía que los hosts remotos (normalmente sistemas DEC VAX con Unix) fueran responsables de gestionar los eventos de exposición de ventanas y de actualizar el contenido de las ventanas según fuera necesario.

X deriva su nombre como sucesor de un sistema de ventanas anterior a 1983 llamado W (la letra que precede a X en el alfabeto inglés ). W se ejecutaba bajo el sistema operativo V. W usaba un protocolo de red que admitía ventanas de terminal y gráficos, y el servidor mantenía las listas de visualización.

Origen y desarrollo temprano

De: rws@mit-bold (Robert W. Scheifler) Para: window@athena Asunto: Sistema de ventanas X Fecha: 19 de junio de 1984 0907-EDT (martes)             He pasado las últimas dos semanas escribiendo una ventana.Sistema para el VS100. Robé una buena cantidad de código.desde W, lo rodeó con un asincrónico más bienque una interfaz sincrónica, y la llamó X. En generalEl rendimiento parece ser aproximadamente el doble que el de W.El código parece bastante sólido en este punto, aunque hayTodavía quedan algunas deficiencias por corregir.En LCS hemos dejado de usar W y ahora estamos...construyendo aplicaciones activamente en X. ¿Alguien más está usandoW debería considerar seriamente cambiar. Esta no es laEl sistema de ventanas definitivo, pero creo que es bueno.punto de partida para la experimentación. Justo en este momentoHay una interfaz CLU (y una Argus) para X; una CLa interfaz está en desarrollo. Las tres existentesLas aplicaciones son un editor de texto (TED), un Argus I/Ointerfaz y un gestor de ventanas primitivo. HayAún no hay documentación; ¿alguien está lo suficientemente loco como para...?¿Voluntario? Quizás lo haga algún día.Cualquier persona interesada en ver una demostración puede pasarse por aquí.NE43-531, aunque es posible que desee llamar al 3-1945Primero, cualquiera que quiera el código puede venir con uncinta. Cualquiera que esté interesado en hackear deficiencias, siéntase librelibre de ponerse en contacto.

El correo electrónico en el que X fue presentado a la comunidad del Proyecto Athena en el MIT en junio de 1984 [20]

X11R1 ejecutándose en una máquina Sun

La idea original de X surgió en el MIT en 1984 como una colaboración entre Jim Gettys (del Proyecto Athena ) y Bob Scheifler (del Laboratorio de Ciencias de la Computación del MIT ). Scheifler necesitaba un entorno de visualización utilizable para depurar el sistema Argus. El Proyecto Athena (un proyecto conjunto entre el DEC , el MIT e IBM para proporcionar un acceso sencillo a los recursos informáticos para todos los estudiantes) necesitaba un sistema de gráficos independiente de la plataforma para vincular sus sistemas heterogéneos de múltiples proveedores; el sistema de ventanas que se estaba desarrollando entonces en el Proyecto Andrew de la Universidad Carnegie Mellon no ofrecía licencias y no existían alternativas.

El proyecto resolvió este problema creando un protocolo que pudiera ejecutar aplicaciones locales y llamar a recursos remotos. A mediados de 1983, un puerto inicial de W para Unix funcionaba a una quinta parte de su velocidad en V; en mayo de 1984, Scheifler reemplazó el protocolo sincrónico de W por un protocolo asincrónico y las listas de visualización por gráficos de modo inmediato para convertir a X en la versión 1. X se convirtió en el primer entorno de sistema de ventanas que ofrecía verdadera independencia de hardware e independencia de proveedor.

Scheifler, Gettys y Ron Newman se pusieron a trabajar y X progresó rápidamente. Lanzaron la versión 6 en enero de 1985. DEC, que se preparaba para lanzar su primera estación de trabajo Ultrix , consideró que X era el único sistema de ventanas que probablemente estaría disponible a tiempo. Los ingenieros de DEC trasladaron X6 a la pantalla QVSS de DEC en MicroVAX .

En el segundo trimestre de 1985, X adquirió soporte de color para funcionar en la DEC VAXstation -II/GPX, formando lo que se convirtió en la versión 9.

Un grupo de la Universidad Brown adaptó la versión 9 al IBM RT PC , pero los problemas con la lectura de datos no alineados en el RT obligaron a un cambio de protocolo incompatible, lo que llevó a la versión 10 a fines de 1985. X10R1 fue lanzado en 1985. [21] Para 1986, organizaciones externas habían comenzado a solicitar X. X10R2 fue lanzado en enero de 1986, luego X10R3 en febrero de 1986. Aunque el MIT había licenciado X6 a algunos grupos externos por una tarifa, decidió en este momento licenciar X10R3 y versiones futuras bajo lo que se conoció como la Licencia MIT , con la intención de popularizar aún más X y, a cambio, esperando que muchas más aplicaciones estuvieran disponibles. X10R3 se convirtió en la primera versión en lograr una amplia implementación, con DEC y Hewlett-Packard lanzando productos basados ​​​​en él. Otros grupos adaptaron X10 a Apollo y a las estaciones de trabajo Sun e incluso al IBM PC/AT . En la feria Autofact de ese momento se llevaron a cabo demostraciones de la primera aplicación comercial de X (un sistema de ingeniería asistida por computadora mecánica de Cognition Inc. que se ejecutaba en VAXes y se mostraba de forma remota en PC que ejecutaban un servidor X adaptado por Jim Fulton y Jan Hardenbergh). La última versión de X10, X10R4, apareció en diciembre de 1986. Se hicieron intentos para habilitar servidores X como dispositivos de colaboración en tiempo real, de manera similar a como Virtual Network Computing (VNC) permitiría más tarde compartir un escritorio. Uno de esos primeros esfuerzos fue la herramienta SharedX de Philip J. Gust .

Aunque X10 ofrecía una funcionalidad interesante y potente, se había hecho evidente que el protocolo X podría beneficiarse de un rediseño más neutral en cuanto al hardware antes de que se extendiera demasiado, pero el MIT por sí solo no tendría los recursos disponibles para un rediseño tan completo. En ese momento, el Laboratorio de Software Occidental de DEC se encontró entre dos proyectos con un equipo experimentado. Smokey Wallace de DEC WSL y Jim Gettys propusieron que DEC WSL creara X11 y lo pusiera a disposición de forma gratuita en los mismos términos que X9 y X10. Este proceso comenzó en mayo de 1986, y el protocolo se finalizó en agosto. Las pruebas alfa del software comenzaron en febrero de 1987, las pruebas beta en mayo; el lanzamiento de X11 finalmente se produjo el 15 de septiembre de 1987. [22]

El diseño del protocolo X11, dirigido por Scheifler, fue ampliamente discutido en listas de correo abiertas en la naciente Internet que estaban conectadas a grupos de noticias de USENET. Gettys se mudó a California para ayudar a dirigir el trabajo de desarrollo de X11 en WSL desde el Centro de Investigación de Sistemas del DEC, donde Phil Karlton y Susan Angebrandt dirigieron el diseño e implementación del servidor de muestra X11. Por lo tanto, X representa uno de los primeros proyectos de software libre y de código abierto distribuidos a gran escala.

El Consorcio MIT X y el Consorcio X, Inc.

A finales de los años 1980, X era, como escribió Simson Garfinkel en 1989, "el logro individual más importante de Athena hasta la fecha". Según se informa, DEC creía que su desarrollo por sí solo había hecho que la donación de la empresa al MIT valiera la pena. Gettys se unió al equipo de diseño de VAXstation 2000 para garantizar que X (al que DEC llamó DECwindows ) se ejecutara en él, y la empresa asignó 1.200 empleados para trasladar X tanto a Ultrix como a VMS. [23] [24] En 1987, cuando se hizo evidente el éxito de X11, el MIT quiso renunciar a la administración de X, pero en una reunión de junio de 1987 con nueve proveedores, estos le dijeron al MIT que creían en la necesidad de una parte neutral para evitar que X se fragmentara en el mercado. En enero de 1988, el Consorcio MIT X se formó como un grupo de proveedores sin fines de lucro, con Scheifler como director, para dirigir el desarrollo futuro de X en una atmósfera neutral que incluyera intereses comerciales y educativos.

Jim Fulton se unió en enero de 1988 y Keith Packard en marzo de 1988 como desarrolladores senior , con Jim centrándose en Xlib , fuentes , gestores de ventanas y utilidades; y Keith reimplementando el servidor. Donna Converse, Chris D. Peterson y Stephen Gildea se unieron más tarde ese año, centrándose en kits de herramientas y conjuntos de widgets, trabajando en estrecha colaboración con Ralph Swick del Proyecto Athena del MIT. El Consorcio MIT X produjo varias revisiones significativas de X11, la primera (Release 2 - X11R2) en febrero de 1988. Jay Hersh se unió al personal en enero de 1991 para trabajar en la funcionalidad PEX y X113D. Poco después le siguieron Ralph Mor (que también trabajó en PEX) y Dave Sternlicht. En 1993, cuando el Consorcio MIT X se preparaba para salir del MIT, se unieron al personal R. Gary Cutbill, Kaleb Keithley y David Wiggins. [25]

Entorno de escritorio común

En 1993, se formó el Consorcio X, Inc. (una corporación sin fines de lucro) como sucesor del Consorcio X del MIT. Lanzó X11R6 el 16 de mayo de 1994. En 1995 se hizo cargo del desarrollo del kit de herramientas Motif y del entorno de escritorio común para sistemas Unix. El Consorcio X se disolvió a fines de 1996, produciendo una revisión final, X11R6.3, y un legado de creciente influencia comercial en el desarrollo. [26] [27]

El grupo abierto

En enero de 1997, el Consorcio X transfirió la administración de X a The Open Group , un grupo de proveedores formado a principios de 1996 mediante la fusión de la Open Software Foundation y X/Open .

El Open Group publicó X11R6.4 a principios de 1998. De manera controvertida, X11R6.4 se apartó de los términos liberales tradicionales de la licencia, ya que el Open Group buscaba asegurar la financiación para el desarrollo de X, y citó específicamente a XFree86 como una aplicación que no contribuía significativamente a X. [28] Los nuevos términos habrían hecho que X ya no fuera software libre : cero coste para uso no comercial, pero una tarifa para el resto. Después de que XFree86 pareciera estar a punto de bifurcarse , [29] el Open Group volvió a licenciar X11R6.4 bajo la licencia tradicional en septiembre de 1998. [30] El último lanzamiento del Open Group fue el parche 3 de X11R6.4.

X.Org y XFree86

XFree86 se originó en 1992 a partir del servidor X386 para IBM PC compatibles incluido con X11R5 en 1991, escrito por Thomas Roell y Mark W. Snitily y donado al MIT X Consortium por Snitily Graphics Consulting Services (SGCS). XFree86 evolucionó con el tiempo desde un simple puerto de X hasta la implementación líder y más popular y el estándar de facto del desarrollo de X. [31]

En mayo de 1999, The Open Group formó X.Org. X.Org supervisó el lanzamiento de las versiones X11R6.5.1 en adelante. El desarrollo de X en ese momento estaba moribundo; [32] la mayor parte de la innovación técnica desde que el Consorcio X se había disuelto había tenido lugar en el proyecto XFree86. [33] En 1999, el equipo XFree86 se unió a X.Org como miembro honorario (no remunerado), [34] alentado por varias compañías de hardware [35] [ verificación fallida ] interesadas en usar XFree86 con Linux y en su estatus como la versión más popular de X.

En 2003, mientras la popularidad de Linux (y por lo tanto la base instalada de X) crecía, X.Org permaneció inactiva [36] y el desarrollo activo se llevó a cabo principalmente dentro de XFree86. Sin embargo, se desarrolló un considerable disenso dentro de XFree86. El proyecto XFree86 sufrió la percepción de un modelo de desarrollo demasiado catedralicio ; los desarrolladores no podían obtener acceso a los commits de CVS [37] [38] y los vendedores tenían que mantener extensos conjuntos de parches [39] . En marzo de 2003, la organización XFree86 expulsó a Keith Packard, quien se había unido a XFree86 después del final del Consorcio X original del MIT, con un considerable malestar [40] [41] [42]

X.Org y XFree86 comenzaron a discutir una reorganización adecuada para fomentar adecuadamente el desarrollo de X. [43] [44] [45] Jim Gettys había estado presionando fuertemente por un modelo de desarrollo abierto desde al menos el año 2000. [46] Gettys, Packard y varios otros comenzaron a discutir en detalle los requisitos para la gobernanza efectiva de X con desarrollo abierto.

Finalmente, en un eco de la disputa de licencias de X11R6.4, XFree86 lanzó la versión 4.4 en febrero de 2004 bajo una licencia más restrictiva que muchos proyectos que dependían de X encontraron inaceptable. [47] La ​​cláusula agregada a la licencia se basó en la cláusula de publicidad de la licencia BSD original, que fue vista por la Free Software Foundation y Debian como incompatible con la Licencia Pública General GNU . [48] Otros grupos lo vieron como contrario al espíritu de la X original. Theo de Raadt de OpenBSD , por ejemplo, amenazó con bifurcar XFree86 citando preocupaciones de licencia. [49] El problema de la licencia, combinado con las dificultades para introducir cambios, dejó a muchos sintiendo que era el momento oportuno para una bifurcación. [50]

La Fundación X.Org

A principios de 2004, varias personas de X.Org y freedesktop.org formaron la Fundación X.Org , y el Open Group le dio el control del x.org nombre de dominio . Esto marcó un cambio radical en la gobernanza de X. Mientras que los administradores de X desde 1988 (incluido el X.Org anterior) habían sido organizaciones de proveedores, la Fundación estaba dirigida por desarrolladores de software y utilizaba el desarrollo comunitario basado en el modelo de bazar , [ cita requerida ] que se basa en la participación externa. La membresía estaba abierta a individuos, y la membresía corporativa era en forma de patrocinio. Varias corporaciones importantes como Hewlett-Packard actualmente [ ¿período de tiempo? ] apoyan a la Fundación X.Org.

La Fundación asume un papel de supervisión sobre el desarrollo de X: las decisiones técnicas se toman según sus méritos, logrando un consenso aproximado entre los miembros de la comunidad. Las decisiones técnicas no las toma la junta directiva; en este sentido, está fuertemente modelada en base a la técnicamente no intervencionista Fundación GNOME . La Fundación no emplea desarrolladores. La Fundación lanzó X11R6.7, el servidor X.Org , en abril de 2004, basado en XFree86 4.4RC2 con los cambios de X11R6.6 fusionados. Gettys y Packard habían tomado la última versión de XFree86 bajo la antigua licencia y, al hacer hincapié en un modelo de desarrollo abierto y mantener la compatibilidad con la GPL, incorporaron a muchos de los antiguos desarrolladores de XFree86. [48]

Aunque X11 había recibido extensiones como soporte OpenGL durante la década de 1990, su arquitectura se había mantenido fundamentalmente sin cambios durante la década. Sin embargo, a principios de la década de 2000, se revisó para resolver una serie de problemas que habían surgido a lo largo de los años, incluida una arquitectura de fuentes "defectuosa" , un sistema de gráficos 2D "que siempre había estado destinado a ser aumentado y/o reemplazado", y problemas de latencia . [51] X11R6.8 salió en septiembre de 2004. Añadió nuevas características significativas, incluido el soporte preliminar para ventanas translúcidas y otros efectos visuales sofisticados, magnificadores de pantalla y miniaturas, y facilidades para integrarse con sistemas de visualización inmersiva 3D como el Proyecto Looking Glass de Sun y el proyecto Croquet . Las aplicaciones externas llamadas administradores de ventanas de composición proporcionan una política para la apariencia visual.

El 21 de diciembre de 2005, [52] X.Org lanzó X11R6.9, el árbol de código fuente monolítico para usuarios antiguos, y X11R7.0, el mismo código fuente separado en módulos independientes, cada uno de ellos mantenible en proyectos separados. [53] La Fundación lanzó X11R7.1 el 22 de mayo de 2006, unos cuatro meses después de 7.0, con mejoras considerables en las características. [54]

El desarrollo de XFree86 continuó durante algunos años más y la versión 4.8.0 se lanzó el 15 de diciembre de 2008. [55]

Nomenclatura

Los nombres propios del sistema aparecen en la página del manual como X; X Window System; X Versión 11; X Window System, Versión 11; o X11. [56]

El término "X-Windows" (en la forma del posteriormente publicado "Microsoft Windows") no está oficialmente aprobado - el director de lanzamiento del Consorcio X, Matt Landau, declaró en 1993, "No existe tal cosa como 'X Windows' o 'X Window', a pesar del mal uso repetido de las formas por parte de los periódicos comerciales" [57]  - aunque ha sido de uso informal común desde el comienzo de la historia de X [58] y se ha utilizado deliberadamente para un efecto provocador, por ejemplo en el Unix-Haters Handbook . [7]

Términos clave

El sistema X Window tiene un uso matizado de una serie de términos en comparación con el uso común, en particular "pantalla" y "visualización", un subconjunto de los cuales se presenta aquí para mayor comodidad:

dispositivo
Un dispositivo gráfico como una tarjeta gráfica de computadora o un chipset gráfico integrado en la placa base de una computadora.
monitor
Un dispositivo físico como un CRT o una pantalla plana de computadora.
pantalla
Área en la que se pueden representar gráficos, ya sea mediante software en la memoria del sistema como con VNC o dentro de un dispositivo gráfico, algunos de los cuales pueden representarse en más de una pantalla simultáneamente, ya sea de manera simultánea o intercambiable. Las pantallas intercambiables suelen estar configuradas para estar, en teoría, a izquierda y derecha una de la otra, y pasar de una a la siguiente cuando el puntero del mouse llega al borde del monitor.
pantalla virtual
A este término se le asocian dos significados diferentes:
  • Una técnica que permite mover un monitor alrededor de una pantalla que funciona con una resolución mayor que la que muestra el monitor en ese momento.
  • Un efecto simulado por un administrador de ventanas al mantener la información de la posición de la ventana en un sistema de coordenadas más grande que la pantalla y permitir la panorámica simplemente moviendo las ventanas en respuesta al usuario.
mostrar
Conjunto de pantallas, que a menudo incluyen varios monitores, generalmente configurados para permitir que el ratón mueva el puntero a cualquier posición dentro de ellas. Las estaciones de trabajo basadas en Linux suelen tener varias pantallas, entre las que el usuario puede cambiar con una combinación especial de teclado, como control-alt -tecla de función , y cambiar simultáneamente todos los monitores para que muestren las pantallas de una pantalla a las pantallas de otra.

El término "pantalla" no debe confundirse con el término más especializado " pantalla Zaphod ". Esta última es una configuración poco común que permite que varios usuarios de una misma computadora tengan cada uno un conjunto independiente de pantalla, mouse y teclado, como si estuvieran usando computadoras separadas, pero a un menor costo por puesto.

Historial de versiones

Sobre la perspectiva de futuras versiones, el sitio web X.org afirma: [76]

X.Org continúa desarrollando y lanzando los componentes de software del sistema X Window.

Estos se lanzan individualmente a medida que cada componente está listo, sin esperar un cronograma de lanzamiento general "katamari" de X Window System: consulte el directorio de lanzamientos individuales de X.Org para descargas y los archivos xorg-announce o los repositorios git para obtener detalles sobre los cambios incluidos.

No se ha propuesto ningún plan de lanzamiento para una versión katamari acumulativa de X11R7.8.

Véase también

Notas

  1. ^ "7.7" . Consultado el 5 de abril de 2024 .
  2. ^ "X11R7.x - X Window System Version 11 Release 7.x desarrollo continuo" . Consultado el 5 de abril de 2024 .
  3. ^ Steiner, Jennifer G.; Geer Jr., Daniel E. (21 de julio de 1988). "Servicios de red en el entorno Athena". Actas de la conferencia Usenix de invierno de 1988 . CiteSeerX 10.1.1.31.8727 . 
  4. ^ Quercia, Valerie; O'Reilly, Tim (1990). Guía del usuario del sistema X Window . Guías definitivas del sistema X Window. Sebastopol, CA: O'Reilly & Associates. ISBN 978-0-937175-14-9.
  5. ^ "xnest(1) - Página del manual de Linux". die.net Linux Docs .
  6. ^ Scheifler, Robert W.; Gettys, Jim (abril de 1986). "El sistema de ventanas X". ACM Transactions on Graphics . 5 (2): 79–109. doi : 10.1145/22949.24053 . ISSN  0730-0301.
  7. ^ ab Hopkins, Don. "El desastre de X-Windows". Art.Net. Archivado desde el original el 11 de noviembre de 2009. Consultado el 10 de noviembre de 2009 .
  8. ^ Bumgarner, Bill (15 de noviembre de 1996). "Re: X es doloroso". Listas de correo de Debian . Archivado desde el original el 31 de diciembre de 2022.
  9. ^ "Orca". Wiki de GNOME !. Archivado desde el original el 25 de diciembre de 2013. Consultado el 7 de noviembre de 2012 .
  10. ^ "ATK - Accessibility Toolkit". Centro de desarrolladores de GNOME . Archivado desde el original el 1 de enero de 2013. Consultado el 7 de noviembre de 2012 .
  11. ^ "Utilidades - Accesibilidad". KDE. Archivado desde el original el 14 de enero de 2013. Consultado el 6 de enero de 2013 .
  12. ^ Gettys, James. "SNAP Computing and the X Window System" (PDF) . Interactive Computing Everywhere . 4.6. Archivado desde el original (PDF) el 26 de junio de 2010.
  13. ^ Packard, Keith. "An LBX Postmortem". keithp.com . Archivado desde el original el 15 de noviembre de 2023.
  14. ^ Corbet, Jonathan (1991). "MIT-SHM—The MIT Shared Memory Extension How the shared memory extension works" (Cómo funciona la extensión de memoria compartida del MIT). XFree86 . Archivado desde el original el 22 de diciembre de 2023.
  15. ^ mpaque (19 de agosto de 2003). «Por qué Apple no utilizó X para el sistema de ventanas». Slashdot . Archivado desde el original el 12 de noviembre de 2023.
  16. ^ Høgsberg, Kristian (2012). "Soporte de aplicaciones X11". Wayland . Archivado desde el original el 24 de septiembre de 2023.
  17. ^ "MirSpec – Wiki de Ubuntu". Wiki.ubuntu.com. Archivado desde el original el 17 de junio de 2013. Consultado el 6 de marzo de 2013 .
  18. ^ "Hoja de datos canónica de Mir" (PDF) . 20 de diciembre de 2018.
  19. ^ DRI para consolas con framebuffer 15 de diciembre de 2009
  20. ^ "Debut de X". Talisman. 19 de junio de 1984. Consultado el 7 de noviembre de 2012 .
  21. ^ Carlson, Wayne E. (20 de junio de 2017). "Cronología histórica de CG".
  22. ^ "Se lanzó la versión 11 de X (!!!)". groups.google.com . Consultado el 30 de mayo de 2022 .
  23. ^ Garfinkel, Simson L. (noviembre-diciembre de 1988). "Un segundo aliento para Athena" (PDF) . Technology Review . Consultado el 25 de enero de 2016 .
  24. ^ Garfinkel, Simson L. (mayo-junio de 1989). "Ondas en el mercado académico" (PDF) . Technology Review . págs. 9-13 . Consultado el 25 de enero de 2016 .
  25. ^ Robert W. Scheifler y James Gettys: X Window System: Protocolos básicos y de extensión: X versión 11, versiones 6 y 6.1, Digital Press 1996, ISBN 1-55558-148-X 
  26. ^ Financiación de proyectos voluntarios de software libre 10 de junio de 2005
  27. ^ Lecciones aprendidas sobre código abierto 2000
  28. ^ "Declaración X". 2 de abril de 1998. Archivado desde el original el 24 de febrero de 2021. Consultado el 28 de enero de 2024 .
  29. ^ "XFree86(TM): Comunicado de prensa". 6 de diciembre de 1998. Archivado desde el original el 6 de diciembre de 1998. Consultado el 7 de febrero de 2017 .
  30. ^ Browne, Christopher. "Cambios y problemas en la implementación de la muestra X11R6.4". Páginas web de Christopher Browne . Archivado desde el original el 1 de junio de 2008.
  31. ^ Gettys, Jim (2 de febrero de 2004). "Re: Anuncio: modificación de la licencia base de XFree86(TM)". [email protected] (Lista de correo). Archivado desde el original el 7 de septiembre de 2005. Consultado el 26 de junio de 2021 .
  32. ^ Swales, Steve (4 de febrero de 2002). "Preguntas y respuestas: El factor X". Computerworld (Entrevista). Entrevista realizada por Mitchell, Robert. IDG Communications. Archivado del original el 26 de junio de 2021. Los administradores de X realmente se fueron desvaneciendo hasta casi desaparecer hace unos cinco o seis años. Realmente no seguían el ritmo de la tecnología.
  33. ^ Packard, Keith (1999). "La evolución de la arquitectura del servidor X". Archivado desde el original el 26 de junio de 2021.
  34. ^ Wexelblat, David (23 de marzo de 2003). "Un llamado a la gobernanza abierta del desarrollo X". [email protected] (Lista de correo). Archivado desde el original el 12 de febrero de 2005. Consultado el 26 de junio de 2021 .
  35. ^ "XFree86 se une a X.Org como miembro honorario". Slashdot . 1 de diciembre de 1999. Archivado desde el original el 26 de junio de 2021.
  36. ^ Harris, Mike (13 de abril de 2003). «Otra transcripción parcial editada de una teleconferencia». [email protected] (Lista de correo). Archivado desde el original el 12 de febrero de 2005. Consultado el 26 de junio de 2021 .
  37. ^ Nolden, Ralf (20 de marzo de 2003). «El problema de Keith Packard». [email protected] (Lista de correo). Archivado desde el original el 12 de febrero de 2005. Consultado el 26 de junio de 2021 .
  38. ^ Hunt, Harold (27 de octubre de 2003). "Cygwin/XFree86 - Ya no está asociado con XFree86.org". [email protected] (Lista de correo). Archivado desde el original el 26 de junio de 2021 . Consultado el 26 de junio de 2021 .
  39. ^ Harris, Mike (9 de enero de 2003). «9 Jan 2003». Archivado desde el original el 14 de febrero de 2009.
  40. ^ Dawes, David ; Cutshaw, Robin; Evans, Marc; Murphey, Rich; Tombs, Jon; Wexelblat, David (20 de marzo de 2003). "Invitación a un debate público sobre el futuro de X". [email protected] (Lista de correo). Archivado desde el original el 12 de febrero de 2005 . Consultado el 26 de junio de 2021 .
  41. ^ Packard, Keith (21 de marzo de 2003). "Un llamado a la gobernanza abierta del desarrollo X". [email protected] (Lista de correo). Archivado desde el original el 12 de febrero de 2005. Consultado el 26 de junio de 2021 .
  42. ^ Packard, Keith (3 de abril de 2003). «Notas de una teleconferencia celebrada el 27 de marzo de 2003». [email protected] (Lista de correo). Archivado desde el original el 12 de febrero de 2005. Consultado el 26 de junio de 2021 .
  43. ^ Swales, Steve (24 de marzo de 2003). "Un llamado a la gobernanza abierta del desarrollo X". [email protected] (Lista de correo). Archivado desde el original el 22 de diciembre de 2004. Consultado el 26 de junio de 2021 .
  44. ^ Wexelblat, David (23 de marzo de 2003). "Un llamado a la gobernanza abierta del desarrollo X". [email protected] (Lista de correo). Archivado desde el original el 6 de enero de 2005. Consultado el 26 de junio de 2021 .
  45. ^ Pennington, Havoc (14 de abril de 2003). "Discusión de cuestiones". [email protected] (Lista de correo). Archivado desde el original el 27 de diciembre de 2004. Consultado el 26 de junio de 2021 .
  46. ^ Gettys, Jim (22 de junio de 2000). Lecciones aprendidas sobre código abierto. Conferencia técnica anual de USENIX. Archivado desde el original el 27 de junio de 2021.
  47. ^ "XFree86 4.4: la lista de distribuidores que rechazan el lanzamiento crece". Slashdot . 18 de febrero de 2004. Archivado desde el original el 27 de junio de 2021.
  48. ^ ab Wheeler, David A. (16 de febrero de 2014) [6 de mayo de 2002]. "Haga que su software de código abierto sea compatible con la GPL. O si no". Archivado desde el original el 26 de enero de 2021.
  49. ^ de Raadt, Theo (16 de febrero de 2004). «Licencia XFree86». openbsd-misc (Lista de correo). Archivado desde el original el 18 de enero de 2019. Consultado el 8 de diciembre de 2009 .
  50. ^ Boykin, Oscar (25 de febrero de 2004). "X Marks the Spot: Looking back at X11 Developments of Past Year" (La X marca el lugar: una mirada retrospectiva a los desarrollos del X11 del año pasado). OSNews . Archivado desde el original el 27 de junio de 2021.
  51. ^ Gettys, James; Packard, Keith (2004). La (re)arquitectura del sistema X Window (PDF) . Proc. Simposio sobre Linux. Vol. 1.
  52. ^ X11R6.9 y X11R7.0 lanzados oficialmente el 21 de diciembre de 2005
  53. ^ Propuesta de modularización 31 de marzo de 2005
  54. ^ Cambios propuestos para X11R7.1 21 de abril de 2006
  55. ^ "La versión actual de XFree86: 4.8.0". xfree86.org .
  56. ^ X – un sistema de ventanas portátil y transparente en red Febrero de 2005
  57. ^ Landau, Matt (23 de abril de 1993). "Re: Asynchronous X Windows?". Grupo de noticias : comp.windows.x. Usenet:  [email protected] . Consultado el 6 de marzo de 2013 .
  58. ^ por ejemplo , "X Windows FAQ", las preguntas más frecuentes del grupo de noticias de Usenet comp.windows.x.
  59. ^ El sistema X Window: Historia y arquitectura 1 de septiembre de 1999
  60. ^ XFree86 y X11R6.3 Diciembre de 1999
  61. ^ "X11R6.3 (Broadway) Overview". The Open Group . 1997. Archivado desde el original el 7 de julio de 1997.
  62. ^ The Open Group anuncia el sistema X Window preparado para Internet X11R6.4 31 de marzo de 1998
  63. ^ La Fundación X.Org lanza el sistema X Window X11R6.7 7 de abril de 2004
  64. ^ Cambios desde la versión R6.8 del 21 de octubre de 2005
  65. ^ Notas de la versión X11R7.1 22 de mayo de 2006
  66. ^ La Fundación X.Org lanzó la versión 7.2.0 (también conocida como X11R7.2) el 15 de febrero de 2007
  67. ^ Planes de lanzamiento de la versión 1.4 del servidor X. Consultado el 25 de agosto de 2007.
  68. ^ "Foundation lanza X7.4". X.org . Consultado el 10 de noviembre de 2009 .
  69. ^ "Anuncio de lanzamiento de la versión 7.5". X.org . Consultado el 10 de noviembre de 2009 .
  70. ^ "Wiki – Planes de lanzamiento de la versión 7.5". X.org . Consultado el 10 de noviembre de 2009 .
  71. ^ "Anuncio de lanzamiento de la versión 7.6". X.org. 20 de diciembre de 2010. Consultado el 21 de diciembre de 2010 .
  72. ^ "Pensando en 7.6 katamari, incluyendo xcb". Lists.x.org. 21 de octubre de 2009. Consultado el 10 de noviembre de 2009 .
  73. ^ "Wiki – Planes de lanzamiento de 7.6". X.org . Consultado el 21 de diciembre de 2010 .
  74. ^ "[ANUNCIO] X11R7.7". Lists.x.org. 6 de junio de 2012. Consultado el 7 de junio de 2012 .
  75. ^ "Lanzamientos/7.7". X.org . Consultado el 7 de junio de 2012 .
  76. ^ "Lanzamientos/7.8". X.org . Consultado el 6 de mayo de 2014 .

Referencias

Enlaces externos