Contenido Checked

Sistema X Window

Temas relacionados: Software

Sabías ...

SOS Children, una organización benéfica educación , organizó esta selección. Ver http://www.soschildren.org/sponsor-a-child para averiguar sobre el apadrinamiento de niños.

Un ejemplo histórico de la interfaz gráfica de usuario y las aplicaciones comunes de distribución en funcionamiento del MIT X Consortium bajo la twm gestor de ventanas: X Terminal, Xbiff, xload y una gráfica navegador página del manual

El sistema X Window (comúnmente conocido como X11, basado en su actual versión principal es 11, o acortado a simplemente X, y, a veces de manera informal X-Windows) es un sistema de software de ordenador y la red protocolo que proporciona una base para interfaces gráficas de usuario (GUI) y rica capacidad del dispositivo de entrada para ordenadores conectados en red. Se crea una capa de abstracción de hardware donde el software está escrito para utilizar un conjunto generalizado de comandos, lo que permite independencia del dispositivo y la reutilización de los programas en cualquier equipo que implementa X.

X se originó en el Instituto de Tecnología de Massachusetts (MIT) en 1984. La versión del protocolo ha sido X11 desde septiembre de 1987. El 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 similares licencias permisivas.

Propósito y habilidades

X es un sistema independiente de la arquitectura para interfaces de usuario gráficas remotas y ricas capacidades de los dispositivos de entrada que permite a muchas personas para compartir el poder de procesamiento de un tiempo compartido equipo y colaborar entre sí a través de las aplicaciones de cliente que se ejecutan en equipos remotos. Cada persona que usa una red terminal tiene la capacidad de interactuar con la pantalla con cualquier tipo de dispositivo de entrada de usuario. Debido a la ubicuidad de soporte para el software X en Unix , Linux y Mac OS X, X es comúnmente utilizado para ejecutar aplicaciones cliente en los ordenadores personales, incluso cuando no hay necesidad de tiempo compartido.

X ofrece de ventanas en pantallas de ordenador y gestiona teclado, funciones de control de dispositivo señalador y pantallas táctiles. En su distribución estándar es una completa, aunque simple, pantalla y solución de interfaz que proporciona un estándar kit de herramientas y pila de protocolos para la creación de interfaces gráficas de usuario en la mayoría Sistemas operativos Unix y OpenVMS, y ha sido portado a muchos otros de propósito general contemporánea sistemas operativos.

X, proporciona la base marco, o primitivas, para la construcción de este tipo de entornos GUI: el dibujo y el movimiento ventanas en el visualizar e interactuar con un ratón, el teclado o la pantalla táctil. X no obliga a que la interfaz de usuario esté presente; programas individuales de los clientes conocidos como gestores de ventanas manejar esto. El gestor de ventanas no es necesario y programas puede utilizar las capacidades gráficas de X sin interfaz de usuario. Como tal, el estilo visual de entornos basados en X varía en gran medida; diferentes programas pueden presentar radicalmente diferentes interfaces. X está construido como un adicional (aplicación) capa de abstracción en la parte superior de la núcleo del sistema operativo.

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 integral o unido. Características X transparencia de la red: la máquina en la que un programa de aplicación (la aplicación cliente) se ejecuta puede diferir de la máquina local del usuario (el servidor de la pantalla). Protocolo de red de X se basa en primitivas de comando X y, con GLX, OpenGL 3D primitivas, más que en un paradigma más básica copia framebuffer. Este enfoque permite tanto en 2D como en 3D operaciones sean plenamente aceleraron en el servidor X remoto.

Cuando se utiliza en toda la red, el ancho de banda y la latencia pueden ser ambas cuestiones significativas en la facilidad de uso de ciertos modelos de software. El ancho de banda es un factor clave tanto en la reproducción de video en 2D y en la transferencia de texturas para 3D. La latencia puede ser una preocupación en aplicaciones interactivas, más obviamente juegos, pero para los altos niveles de latencia incluso manipulación menú básico se vuelven difíciles.

X no ofrece soporte para audio, aunque existen varios proyectos en este nicho, algunos también proporcionando soporte de red transparente. Algunos son PulseAudio, Advanced Linux Sound Architecture (ALSA), Open Sound System (OSS), y JACK Audio Connection Kit (JACK).

X también carece de soporte para procedimientos almacenados definidos por el usuario en el servidor X, a la manera de Noticias - no hay -Turing completa instalación.

X se utiliza a menudo en conjunción con una Sesión X gerente de implementar sesiones. Por lo general, una sesión se inicia por la X Display Manager. Sin embargo, el usuario también puede iniciar una sesión ejecutando manualmente el xinit o programas startx.

Diseño

Ejemplo de implementación del servidor X: el servidor X recibe la entrada de un teclado y ratón locales y muestra a una pantalla. La navegador web y un carrera emulador de terminal en la estación de trabajo del usuario y una aplicación de actualización de software se ejecuta en un equipo remoto, pero es controlado y monitoreado desde la máquina del usuario

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

  • una aplicación que muestra a una ventana de otro sistema de visualización
  • un programa de sistema que controla la salida de vídeo de un PC
  • una pieza dedicada de hardware.

Este terminal de cliente-servidor terminología del usuario sea el servidor y las aplicaciones siendo los clientes a menudo confunde a los nuevos usuarios X, debido a que los términos aparecen invertidas. Pero X toma la perspectiva de la aplicación, en lugar de la del usuario final: X proporciona una visualización y E / S de los servicios a las aplicaciones, por lo que es un servidor; aplicaciones utilizan estos servicios, por lo que son clientes.

La protocolo de comunicación entre el servidor y el cliente opera red-transparente: el cliente y el servidor pueden ejecutarse en la misma máquina o en otros diferentes, posiblemente con diferente arquitecturas y sistemas operativos. Un cliente y el servidor pueden incluso comunicarse segura a través de Internet por tunelización la conexión a través de una sesión de red cifrada.

Una propio cliente X puede emular un servidor X mediante la prestación de servicios de visualización a otros clientes. Esto se conoce como "X anidación". Clientes de código abierto como Xnest y Apoyo Xephyr tales X anidación.

Para utilizar una aplicación cliente de X en una máquina remota, el usuario hace lo siguiente:

  • En el equipo local, abra una ventana de terminal
  • uso ssh con el argumento de reenvío de X para conectarse a la máquina remota. Telnet se puede utilizar, pero no es seguro, no permite el reenvío de gráfica y está en desuso en gran medida.
  • solicitar el servicio de visualización / entrada local (por ejemplo, export DISPLAY = [máquina del usuario]: 0 si no está usando SSH con reenvío de X o 'tunneling' activado).

La aplicación de cliente remoto X después establecer una conexión con el servidor X local del usuario, proporcionando visualización y entrada al usuario.

Por otra parte, el equipo local se puede ejecutar un pequeño programa que se conecta a la máquina remota y se inicia la aplicación cliente.

Ejemplos prácticos de clientes remotos incluyen:

  • la administración de una máquina remota gráficamente
  • utilizando una aplicación cliente para unirse con un gran número de otros usuarios de terminales en los grupos de trabajo de colaboración.
  • ejecutar una simulación de cómputo intensivo en una máquina remota y mostrar los resultados en una máquina de escritorio local
  • ejecutar software gráfico en varias máquinas a la vez, controlada por una sola pantalla, teclado y ratón.

Principios

En 1984, Bob Scheifler y Jim Gettys estableció los primeros principios de la X:

  • No agregar nueva funcionalidad a menos que un implementador no puede completar una aplicación real sin ella.
  • Es tan importante para decidir lo que es un sistema no es tan de decidir lo que es. No sirva todas las necesidades del mundo; más bien, que el sistema de extensible para que las necesidades adicionales se pueden cumplir de manera compatible hacia arriba.
  • La única cosa peor que generalizar a partir de un ejemplo está generalizando de ningún ejemplo en absoluto.
  • Si un problema no se entiende totalmente, es probable que sea mejor para proporcionar ninguna solución.
  • Si usted puede conseguir el 90 por ciento del efecto deseado para el 10 por ciento del trabajo, utilice la solución más simple. (Véase también Peor aún es mejor.)
  • Aislar complejidad tanto como sea posible.
  • Proporcionar mecanismo en lugar de la política. En particular, la política de colocar la interfaz de usuario en manos de los clientes.

El primer principio se modificó durante el diseño de X11 a: "No agregar nueva funcionalidad a menos que sepa de alguna aplicación real que se requiere."

X ha mantenido en gran medida a estos principios. La aplicación muestra se desarrolló con el fin de ampliación y mejora de la aplicación, sin dejar de ser compatible con el protocolo original de 1987.

Las interfaces de usuario

GNOME interfaz gráfica de usuario
Interfaz gráfica de usuario de KDE Plasma
Interfaz gráfica de usuario de Xfce

X es principalmente una definición de protocolo y gráficos primitivos y contiene deliberadamente ninguna especificación para su aplicación diseño de la interfaz de usuario, como botón, menú o ventana estilos barra de título. En cambio, el software de aplicación - como gestores de ventanas, GUI juegos de herramientas de widgets y entornos de escritorio, o específico de la aplicación interfaces gráficas de usuario - definir y proporcionar tales detalles. Como resultado, no hay una interfaz típica X y varios entornos de escritorio han sido populares entre los usuarios.

Un gestor de ventanas controla la ubicación y el aspecto de las ventanas de aplicación. Esto puede resultar en interfaces de escritorio similares a los de Microsoft Windows o Apple Macintosh (los ejemplos incluyen Metacity en GNOME , KWin en KDE Software Compilation, Xfwm en Xfce, o Compiz) o tiene radicalmente diferentes controles (como un alicatado gestor de ventanas, como wmii o Veneno Para Ratas). Algunas interfaces como El azúcar o Chrome OS evitan la metáfora de escritorio completo, simplificando sus interfaces para aplicaciones especializadas. Los gestores de ventanas varían en sofisticación y complejidad de los huesos desnudos (por ejemplo, twm, el gestor de ventanas básica suministrada con X, o evilwm, un gestor de ventanas muy claro) a los entornos más amplios de escritorio como Ilustración e incluso a los gestores de ventanas de aplicación específica para mercados verticales como punto de venta.

Muchos usuarios utilizan X con un entorno de escritorio, lo que, además del gestor de ventanas, incluye varias aplicaciones que utilizan una interfaz de usuario consistente. GNOME, KDE Software Compilation y Xfce son los entornos de escritorio más populares. La Entorno estándar de Unix es el Common Desktop Environment (CDE). La iniciativa freedesktop.org aborda la interoperabilidad entre equipos de escritorio y los componentes necesarios para un escritorio X competitivo.

Como X es responsable de teclado y ratón interacción con escritorios gráficos, cierta atajos de teclado han asociado con X. Control-Alt-Backspace típicamente termina la sesión X actualmente en ejecución, mientras que Control-Alt junto con una interruptores de tecla de función para el asociado consola virtual. Sin embargo, este detalle se deja al diseño de una implementación de servidor X y no es universal; por ejemplo, las implementaciones de servidor X para Windows y Macintosh normalmente no proporcionan estos atajos de teclado.

Implementaciones

La implementación X.Org sirve como el aplicación canónica de X. Debido a liberal concesión de licencias, una serie de variaciones, tanto libre y de código abierto y propietario, han aparecido. Vendedores de Unix comerciales han tendido a adoptar la implementación de código abierto y adaptarlo para su hardware, por lo general personalizarlo y añadir extensiones propietarias.

Hasta el año 2004, XFree86 proporciona la variante X más común en el libre Sistemas tipo Unix. XFree86 comenzó como un puerto de X para PCs compatibles-386 y, a finales de la década de 1990, se había convertido en la mayor fuente de innovación técnica en X y el estándar de facto de desarrollo X. Desde 2004, sin embargo, la X.Org Server, un tenedor de XFree86, se ha convertido en predominante.

Si bien es común asociar X con Unix, también existen servidores X de forma nativa dentro de otros entornos gráficos. De Hewlett-Packard Sistema operativo OpenVMS incluye una versión de X con Common Desktop Environment (CDE), conocido como DECwindows, como su entorno de escritorio estándar. Manzana 's Mac OS X v10.3 (Panther) y 10.4 (Tiger) incluyen El X11, basada en XFree86 4.3 y X11R6.6, con una mejor integración de Mac OS X. En Mac OS X v10.5 (Leopard), el X11 de Apple se basa en X.org (código base X11R7.2) en lugar de XFree86 (actualmente en X11R6.8 liberación). Servidores de terceros en virtud de los sistemas operativos más antiguos de Apple en la década de 1990, Sistema 7 y Mac OS 8 y 9, incluido Apple MacX y White Pine Software Éxodo.

Microsoft Windows no se suministra con soporte para X, pero existen muchas implementaciones de terceros, como software libre y de código abierto como Cygwin / X, WeirdX y Xming (liberar a 6.9.0.31); gratuitas como Mocha X Server; y productos propios como Xmanager, Exceed, excursión (por Hewlett Packard), MKS X / Server, Reflection X, X-Win32 y Xming.

También hay Java implementaciones de servidores X. WeirdX funciona en cualquier plataforma que soporte Swing 1.1. *, Y que se extenderá como un applet en la mayoría de los navegadores. La Android X Server es una aplicación Java de código abierto que funciona con Android dispositivos.

Cuando un sistema operativo con un nativo del sistema de ventanas X anfitriones, además, el sistema X puede utilizar su propio escritorio normal en una ventana host independiente o se puede ejecutar sin raíces, lo que significa el escritorio X se oculta y el entorno de ventanas anfitrión gestiona la geometría y apariencia de las ventanas X alojados dentro de la pantalla del host.

Terminales X

La Dispositivos de Red Informática NCD-88k terminal de X

Un terminal X es un cliente ligero que sólo se ejecuta un servidor X. Esta arquitectura se hizo popular para la construcción de parques de terminales de bajo costo para muchos usuarios utilicen de forma simultánea el mismo servidor gran equipo para ejecutar programas de aplicación como clientes de terminales X de cada usuario. Este uso está muy alineada con la intención original del proyecto MIT.

Terminales X explorar la red (lo local dominio de difusión), utilizando el X Muestra Protocolo de Control Manager para generar una lista de hosts disponibles que se permiten como clientes. Uno de los Servidores deben ejecutarse una X Display Manager.

Una limitación de terminales X y clientes más delgadas es que ellos no son capaces de cualquier entrada o salida que no sea el teclado, el ratón y la pantalla. Se supone que todos los datos relevantes de existir únicamente en el servidor remoto, y el usuario del terminal X no tiene métodos disponibles para guardar o cargar datos desde un dispositivo terminal local como un dispositivo de disco, CD-ROM, o el almacenamiento USB floppy. Sin embargo, la impresión por lo general se admite como una red compartida o una conexión serie, cerca de la terminal.

Dedicado (hardware) terminales X se han vuelto menos común; un PC o moderno Thin Client con un servidor de X típicamente proporciona la misma funcionalidad al mismo, o menor, el costo.

Limitaciones y críticas

El manual de UNIX-ENEMIGOS (1994) dedica un capítulo completo a los problemas de X. ¿Por qué X No es nuestro sistema de ventanas Ideal (1990) por Gajewska, Manasés y McCormack problemas detallados en el protocolo con recomendaciones para la mejora.

Los problemas de interfaz de usuario

La falta de directrices de diseño en X ha dado lugar a varias interfaces muy diferentes, y en aplicaciones que no siempre han trabajado bien juntos. La ICCCM (ICCCM), una especificación de interoperabilidad cliente, tiene una reputación de ser difícil de implementar correctamente. Esfuerzos de estándares adicionales como Motif y CDE no alivió los problemas. Esto tiene usuarios frustrados y programadores. Gráficos programadores ahora generalmente abordan coherencia de la aplicación mirar y la sensación y la comunicación mediante la codificación de un entorno de escritorio específico oa un conjunto de herramientas de widget de concreto, que también evita tener que tratar directamente con el ICCCM.

Los problemas de accesibilidad relacionados con la informática

Los sistemas construidos sobre el sistema de ventanas X pueden tener los problemas de accesibilidad que hacen que la utilización de un equipo difícil para los usuarios con discapacidad (y usuarios de ordenadores que carecen de un teclado con todas las funciones o dispositivo señalador - por ejemplo, los teléfonos inteligentes), incluyendo botón derecho del ratón, haga doble clic, clic media, el ratón por encima, y centrarse robar. Algunos clientes de X11 se ocupan de los problemas de accesibilidad mejor que otros, por lo que las personas con problemas de accesibilidad no se bloquean de utilizar X11. Sin embargo no existe un estándar de accesibilidad o las directrices de accesibilidad para el X11. Dentro de procesar los estándares X11 no hay un grupo de trabajo sobre la accesibilidad, sin embargo, las necesidades de accesibilidad están siendo abordadas por los proyectos de software para proporcionar estas características en la parte superior de X, incluyendo Orca y la ATK.

La Proyecto Orca añade soporte de accesibilidad para el sistema X Window, incluyendo la implementación de una API ( AT-SPI). A esto se une gnomo de ATK para permitir las funciones de accesibilidad que deben aplicarse en los programas de X utilizando las API de Gnome / GTK. KDE ofrece un conjunto diferente de software de accesibilidad, incluyendo un convertidor de texto a voz y un ampliador de pantalla. Los otros escritorios principales (LXDE, Xfce y englightenment) no tienen su propio software de accesibilidad, pero tratan de ser compatible con ATK.

Red

Ejemplo de un túnel de una aplicación X11 a través de SSH

Un cliente X generalmente no puede ser separada de un servidor y vuelve a unir a otro a menos que su código establece específicamente para ello ( emacs es uno de los pocos programas comunes con esta capacidad). Por extensión, se mueve toda una sesión de un servidor X a otro generalmente no es posible. Sin embargo, los enfoques como Virtual Network Computing (VNC), NX y XPRA permitir una sesión virtual para llegar desde diferentes servidores X (de una manera similar a la GNU Screen en relación a las terminales), y otras aplicaciones y herramientas proporcionan instalaciones relacionadas. Soluciones provisionales como x11vnc (VNC: 0 espectadores) y NX (modo de sombra de nxagent) también existen para que la pantalla X-servidor actual disponible a través de VNC y NX respectivamente. Esta capacidad permite que la interfaz de usuario (ratón, teclado, monitor) de una aplicación que se ejecuta a cambiarse de un lugar a otro sin parar y reiniciar la aplicación. Esto puede ser importante en algunas aplicaciones, como la supervisión y control de procesos.

El tráfico de red entre un servidor X y los clientes remotos X no está cifrado por defecto. Un atacante con un analizador de paquetes puede interceptar ella, por lo que es posible ver cualquier cosa que se muestra o enviado desde la pantalla del usuario. La forma más común para cifrar el tráfico X es establecer una Shell (SSH) túnel seguro para la comunicación.

Como todo clientes ligeros, al usar X a través de una red, las limitaciones de ancho de banda pueden impedir el uso de aplicaciones de mapa de bits intensivo que requieren actualización rápidamente grandes porciones de la pantalla con baja latencia, como la animación 3D o la edición de fotos. Incluso una pequeña secuencia de vídeo 30fps 640x480x24bit sin comprimir puede superar fácilmente el ancho de banda de una red de 100 Mbit para un único cliente. Las primeras versiones de X sufrirían incluso cuando no esté usando la red local, como cuando se utiliza una estación de trabajo Linux con el servidor X y el cliente en el mismo sistema, debido al protocolo centrado en la red que todavía utilizar un modelo de red interna dentro de la computadora , a través de casquillos localhost o UNIX. Por el contrario, las versiones modernas de X generalmente tienen extensiones como MESA permitiendo visualización local de los gráficos de un programa local para ser optimizado para eludir el modelo de red y controlar directamente la tarjeta de vídeo, para el uso de vídeo a pantalla completa, aplicaciones 3D prestados, y otras aplicaciones.

Separación de cliente-servidor

El diseño de X requiere que los clientes y el servidor para operar por separado, y la independencia de dispositivo y la separación de cliente y el servidor incurrir en los gastos generales. La mayor parte de la sobrecarga de la red viene de ida y vuelta el tiempo de retardo entre el cliente y el servidor ( latencia) y no desde el propio protocolo: las mejores soluciones a los problemas de rendimiento depende de diseño de la aplicación eficiente. Una crítica común de X es que sus características de red dan lugar a una complejidad excesiva y la disminución de rendimiento si sólo se utiliza localmente.

Moderno X implementaciones uso Sockets de dominio Unix para las conexiones eficientes en el mismo host. Además la memoria compartida (a través de la MIT-SHM extensión) puede ser empleado para la comunicación cliente-servidor más rápido. Sin embargo, el programador aún debe activar de forma explícita y usar la extensión de memoria compartida. También es necesario para proporcionar rutas de retorno con el fin de mantener la compatibilidad con las implementaciones de mayor edad, y con el fin de comunicarse con los servidores X no locales.

Competidores

Algunas personas han tratado de escritura alternativas y sustitutos de las alternativas X. históricos incluyen Sun de News, que fracasó en el mercado, y NeXT Display PostScript, ambos Sistemas basados en PostScript apoyo procedimientos del lado de visualización definibles por el usuario, que X no tenía. Mac OS X, iOS y Android son los principales sistemas de tipo Unix no usar X para gráficos.

Cuando Apple Inc. compró NeXT, y utilizado NeXTSTEP para construir Mac OS X, que sustituye Display PostScript con Cuarzo. Mike Paquette, uno de los autores de cuarzo, explicó por qué Apple no se movió de Display PostScript a X, y prefirió desarrollar su propio servidor de la ventana, diciendo que una vez que Apple ha añadido soporte para todas las características que quería incluir en X11, no sería se parece mucho a X11 ni ser compatible con otros servidores de todos modos.

Servidor de pantalla Wayland, organizada por freedesktop.org y desarrollado por varios desarrolladores X.Org, tanto aborda las críticas de X reemplazando por completo y trabaja directamente con el hardware a través de DRI. Está previsto para Wayland para reemplazar eventualmente X en Ubuntu y Fedora, dos conocidas distribuciones de GNU / Linux. Wayland maneja la compatibilidad con X por opcionalmente ejecutar un servidor X.org como cliente, que puede ser sin raíces (que tiene una ventana Wayland por cliente X).

Otros intentos para hacer frente a las críticas de X reemplazando por completo incluyen Berlín / Fresco y el Sistema de Ventanas Y. Estas alternativas han visto insignificante aceptación y han sido abandonados por sus desarrolladores; comentaristas ampliamente dudan de la viabilidad de cualquier repuesto que no conserva la compatibilidad con X.

Otros competidores tratan de evitar la sobrecarga de X al trabajar directamente con el hardware. Tales proyectos incluyen DirectFB. La Direct Rendering Infrastructure (DRI), cuyo objetivo es proporcionar una interfaz a nivel de kernel confiable para la framebuffer, puede hacer que estos esfuerzos redundantes.

Otras maneras de lograr la transparencia de la red para servicios gráficos incluyen:

  • la SVG Terminal, un protocolo para actualizar Escalable contenido Vector Graphics (SVG) en un navegador en tiempo casi real
  • Virtual Network Computing (VNC), un sistema de muy bajo nivel, que envía mapas de bits comprimidos a través de la red; la implementación Unix incluye un servidor X
  • Citrix XenApp, un producto X como para Microsoft Windows
  • Tarantella, que proporciona un cliente Java para su uso en navegadores web
  • Rawt, de IBM Java sólo AWT remoto, que implementa un "servidor" Java y ganchos simples para cualquier cliente Java remoto.

MicroXwin no es un reemplazo completo para X, pero mantiene la compatibilidad binaria con clientes estándar X al tiempo que proporciona un mejor rendimiento y significativamente menor sobrecarga de memoria por una arquitectura diferente de diseño que implementa directamente el sistema como un módulo del kernel. El módulo del kernel es propietaria mientras las bibliotecas del espacio de usuario, libX11 (contraparte de Xlib) y libXext, están disponibles en Licencia estilo BSD.

Historia

Antecesores

Varios sistemas de visualización de mapa de bits precedidos X. De Xerox llegó el Alto (1973) y la Star (1981). Desde Apollo Computer llegó Display Manager (1981). A partir de Apple llegó el Lisa (1983) y el Macintosh (1984). El Unix mundo tenía la Proyecto Andrew (1982) y Rob Pike de Terminal de Blit (1982).

Universidad Carnegie-Mellon produjo una aplicación de acceso remoto llamado Alto Terminal, que muestra ventanas superpuestas en el Xerox Alto, e hizo hosts remotos (normalmente sistemas diciembre VAX corriendo Unix) responsables de la gestión de eventos de ventana de exposición y contenidos refrescantes ventana según sea necesario.

X deriva su nombre como sucesor de un sistema de ventanas pre-1983 llamado W (la letra X en la anterior Alfabeto Inglés). W corrió bajo la Sistema operativo V. W utiliza un protocolo de red que soporta terminales y gráficos de ventanas, el servidor de mantenimiento de listas de visualización.

Introducción

X se introdujo en el MIT Comunidad del Proyecto Athena en la siguiente dirección de correo electrónico en junio de 1984:

 Desde: RW @ mit-negrita (Robert W. Scheifler) Para: Ventana @ athena Asunto: ventana del sistema X Fecha: 19 de junio 1984 0907-EDT (martes) me he pasado las últimas dos semanas escribiendo un sistema de ventanas para el VS100.  He ganado una buena cantidad de código de W, la rodeó de una asincrónica en lugar de una interfaz síncrona, y lo llamé X. El rendimiento general parece ser aproximadamente el doble de la de W. El código parece bastante sólida en este punto, aunque todavía hay algunas deficiencias que deben ser fijadas para arriba.  Nosotros en LCS hemos dejado de usar W, y ahora estamos construyendo activamente aplicaciones en X. usando W seriamente debería considerar cambiar a nadie.  Este no es el sistema de la ventana final, pero creo que es un buen punto de partida para la experimentación.  Justo en el momento hay una interfaz para X CLU (una Argus y);  una interfaz de C está en los trabajos.  Las tres aplicaciones existentes son un editor de texto (TED), una interfaz Argus I / O, y un gestor de ventanas primitivo.  No existe documentación aún;  alguien lo suficientemente loco como para ser voluntario?  Me permite moverse a la misma con el tiempo.  Cualquier persona interesada en ver una demo puede caer por NE43-531, aunque es posible que desee llamar 3-1945 primero.  Quien quiera que el código puede conseguir con una cinta.  Cualquier persona interesada en la piratería deficiencias, no dude en ponerse en contacto. 

Origen y desarrollo de la primera

La idea original de X emergió en el MIT en 1984 como una colaboración entre Jim Gettys (de Proyecto Athena) y Bob Scheifler (de la MIT Laboratorio de Ciencias Informáticas). Scheifler necesitaba un entorno presentación útil para depurar el sistema Argus. Proyecto Athena (un proyecto conjunto entre Digital Equipment Corporation (DEC), el MIT y de IBM para proporcionar fácil acceso a los recursos de computación para todos los estudiantes) que se necesita un sistema de gráficos independiente de la plataforma para vincular sus sistemas heterogéneos de múltiples proveedores; el sistema de ventanas entonces en fase de desarrollo en Carnegie Mellon Universidad de Andrew proyecto no hizo licencias disponibles, y existía ninguna alternativa.

El proyecto resuelve mediante la creación de un protocolo que podría tanto ejecutar aplicaciones locales y recurrir a recursos remotos. A mediados de 1983 un puerto inicial de W para Unix corrió a un quinto de su velocidad bajo V; 05 1984, Scheifler reemplazó al sincrónico Protocolo de W con una protocolo asíncrono y las listas de visualización con los gráficos de modo inmediato para hacer la versión X 1. X se convirtieron en el primer entorno de sistema de ventanas para ofrecer la verdadera independencia del hardware y la independencia del proveedor.

Scheifler, Gettys y Ron Newman se puso a trabajar y X progresó rápidamente. Lanzaron la versión 6 de enero de 1985. diciembre, luego preparando el lanzamiento de su primer Estación de trabajo Ultrix, juzgada X el único sistema que pueda estar disponible en el momento de ventanas. Los ingenieros de diciembre portado X6 a pantalla QVSS de diciembre de MicroVAX.

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

Un grupo en Universidad de Brown portado versión 9 al IBM RT / PC, pero los problemas con la lectura de datos no alineados en la RT forzaron un cambio de protocolo incompatible, lo que lleva a la versión 10 a finales de 1985. En 1986, las organizaciones externas habían comenzado pidiendo X. X10R2 fue lanzado en enero de 1986, luego X10R3 en febrero de 1986 . Aunque el MIT había licenciado X6 para algunos grupos externos para un cargo, decidió en este momento licenciar X10R3 y versiones futuras bajo lo que se conoce como la MIT License, con la intención de popularizar X más allá y, a cambio, con la esperanza de que muchas más aplicaciones estarían disponibles. X10R3 se convirtió en la primera versión de lograr un amplio despliegue, tanto con diciembre y Hewlett-Packard lanzar productos basados en ella. Otros grupos portados a X10 Apolo y al Estaciones de trabajo Sun e incluso a la IBM PC / AT. Las demostraciones de la primera aplicación comercial de X (un sistema de ingeniería mecánica asistida por ordenador de Cognición Inc. que se ejecutaba en VAX y de forma remota aparece en los ordenadores que ejecutan un servidor X portado por Jim Fulton y Jan Hardenbergh) tuvo lugar en la feria AutoFACT en ese tiempo. La última versión de X10, X10R4, apareció en diciembre de 1986.

Se hicieron intentos para que los servidores X como dispositivos de colaboración en tiempo real, tanto como Virtual Network Computing (VNC) que más tarde permitiría un escritorio para ser compartida. Uno de estos esfuerzos temprano era Philip J. Rachas de Herramienta SharedX.

Aunque X10 ofrece una funcionalidad interesante y de gran alcance, era obvio que el protocolo X podría utilizar un rediseño más en hardware neutral antes de que fuera demasiado ampliamente desplegado, pero MIT por sí sola no tendría los recursos disponibles para un rediseño tan completa. Dio la casualidad de diciembre de Laboratorio Occidental de Software se encontró entre los proyectos con un equipo experimentado. Smokey Wallace de diciembre WSL y Jim Gettys propusieron que diciembre WSL construir X11 y que esté disponible libremente bajo los mismos términos que X9 y X10. Este proceso se inició en mayo de 1986, con el protocolo aprobado en agosto. Las pruebas alfa del software comenzó en febrero de 1987, el beta-testing mayo; la liberación de X11 finalmente se produjo el 15 de septiembre de 1987.

El diseño del protocolo X11, dirigido por Scheifler, se debatió ampliamente en listas de correo abiertas en la naciente Internet que fueron puenteados a grupos de noticias USENET. Gettys se mudó a California para ayudar a dirigir el trabajo de desarrollo de X11 en WSL del Centro de Investigación de Sistemas de diciembre, donde Phil Karlton y Susan Angebrandt llevaron al diseño de servidor muestra X11 y ejecución. Por lo tanto, X representa uno de los primero muy grande-Scale distribuido los proyectos de software libre y de código abierto.

El MIT X Consortium y el X Consortium, Inc.

En 1987, con el éxito de X11 advertidas, MIT deseaba renunciar a la custodia de la X, pero a una reunión de junio de 1987 con nueve vendedores, los vendedores dijo MIT que creían en la necesidad de que una parte neutral para mantener X de fragmentar en el mercado. En enero de 1988, el MIT X Consortium formó como un grupo de proveedores sin fines de lucro, con Scheifler como director, para dirigir el desarrollo futuro de X en un ambiente neutral inclusiva de los intereses comerciales y educativas. Jim Fulton se unió en enero de 1988 y Keith Packard marzo 1988 como Senior desarrolladores, con Jim centrándose en Xlib, las fuentes, los gestores de ventanas, y servicios públicos; y Keith re-implementación del servidor. Donna Converse, Chris D. Peterson y Stephen Gildea se unieron más tarde ese año, centrándose en herramientas y conjuntos de widgets, en estrecha colaboración con Ralph Swick de MIT Proyecto Atenea. El MIT X Consortium produjo varias revisiones significativas a X11, la primera (Release 2 - X11R2) en febrero de 1988. Jay Hersh se unió al personal en enero de 1991 para trabajar en el Funcionalidad PEX y X113D. Él fue seguido poco después por Ralph Mor (que también trabajó en PEX) y Dave Sternlicht. En 1993, como el MIT X Consortium preparados para efectuar el MIT, el personal se unieron R. Gary Cutbill, Kaleb Keithley, y David Wiggins.

En 1993, el X Consortium, Inc. (una corporación sin fines de lucro) formado como el sucesor del MIT X Consortium. Se dio a conocer X11R6 el 16 de mayo de 1994. En 1995 se tomó en el desarrollo de la Kit de herramientas Motif y de la Común entorno de escritorio para sistemas Unix. El Consorcio X disolvió a finales de 1996, la producción de una revisión final, X11R6.3, y un legado de creciente influencia comercial en el desarrollo.

El grupo abierto

En enero de 1997, el Consorcio X pasó mayordomía de X The Open Group, un grupo de proveedores formada a principios de 1996 por la fusión de la Open Software Foundation y X / Open.

The Open Group lanzó X11R6.4 a principios de 1998. Polémico, X11R6.4 se apartó de los términos de la licencia liberales tradicionales, como el Open Group buscó asegurar a la financiación para el desarrollo de X. Los nuevos términos habrían impedido su adopción por parte de muchos proyectos ( como XFree86) e incluso por algunos vendedores comerciales. Después XFree86 parecía a punto de tenedor, el Open Group relicensed X11R6.4 bajo la licencia tradicional en septiembre de 1998. La última versión de Open Group llegó como parche X11R6.4 3.

X.Org y XFree86

XFree86 se originó en el año 1992 desde el servidor X386 para PC compatibles IBM incluyen con X11R5 en 1991, escrita por Thomas Roell y Mark W. Snitily y donado al MIT X Consortium por Servicios de Asesoramiento Gráficos Snitily (SGCS). XFree86 evolucionó con el tiempo de un solo puerto de X a la aplicación líder y el más popular y el de facto estándar de desarrollo de X.

En mayo de 1999, el Open Group formó X.Org. X.Org supervisó el lanzamiento de versiones X11R6.5.1 adelante. Desarrollo X en este momento se había convertido moribunda; más innovación técnica ya que el Consorcio X había disuelto había tenido lugar en el proyecto XFree86. En 1999, el equipo de XFree86 se unió a X.Org como (no pago) miembro honorario, alentado por varias compañías de hardware interesados ​​en el uso de XFree86 con Linux y en su condición de la versión más popular de X.

Para el año 2003, mientras que la popularidad de Linux (y por tanto la base instalada de X) subió, X.Org permaneció inactivo y activo desarrollo se llevó a cabo en gran parte dentro de XFree86. Sin embargo, una considerable disenso desarrolla dentro de XFree86. El proyecto XFree86 sufrido de una percepción de un demasiado modelo de desarrollo de catedral; los desarrolladores no podrían conseguir CVS cometer el acceso y los vendedores tenían que mantener amplios conjuntos de parches. En marzo de 2003, la organización XFree86 expulsado Keith Packard, que se había unido XFree86 después del final de la X Consortium original de MIT, con una considerable sensación de malestar.

X.Org y XFree86 comenzaron a discutir una reorganización adecuada para nutrir adecuadamente el desarrollo de X. Jim Gettys había estado presionando fuertemente para un modelo de desarrollo abierto desde por lo menos 2000. Gettys, Packard y varios otros comenzaron a discutir en detalle los requisitos para la gobernabilidad efectiva de X con el desarrollo abierto.

Finalmente, en un eco de la X11R6.4 disputa de licencias, XFree86 lanzó la versión 4.4 en febrero de 2004 bajo una licencia más restrictiva que muchos proyectos que dependen de la X encontraron inaceptable. La cláusula añadida a la licencia se basa en el original cláusula de publicidad de la licencia BSD, que fue visto por la Free Software Foundation y Debian por ser incompatible con los Licencia Pública General GNU. otros grupos lo vieron como en contra del espíritu del original X. Theo de Raadt de OpenBSD , por ejemplo, amenazó con tenedor XFree86 citando preocupaciones de licencia. La expedición de la licencia, junto con las dificultades para conseguir cambios en, dejó a muchos sentía había llegado el momento para un tenedor.

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 dieron el control del x.org nombre de dominio. Esto marcó un cambio radical en el gobierno de X. Considerando que los administradores de X desde 1988 (incluyendo la previa X.Org) habían sido organizaciones de vendedores, la Fundación fue liderado por los desarrolladores de software y se utiliza el desarrollo comunitario basado en el modelo bazar, que se basa en la participación exterior. La membresía se abrió a las personas, con la membresía corporativa, siendo en forma de patrocinio. Varias grandes empresas como Hewlett-Packard apoyan actualmente la Fundación X.Org.

La Fundación tiene un papel de supervisión sobre el desarrollo de X: Las decisiones técnicas se realizan en sus méritos por lograr un consenso entre los miembros de la comunidad en bruto. Las decisiones técnicas no son tomadas por el consejo de administración; en este sentido, está fuertemente inspirado en la técnica no intervencionista Fundación GNOME. La Fundación no emplea desarrolladores.

La Fundación lanzó X11R6.7, el X.Org Server, en abril de 2004, sobre la base de XFree86 4.4RC2 con cambios X11R6.6 fusionaron. Gettys y Packard habían tomado la última versión de XFree86 bajo el antiguo certificado y, al hacer un punto de un modelo de desarrollo abierto y retener la compatibilidad GPL, traído muchos de los antiguos desarrolladores de XFree86 a bordo.

X11R6.8 salió en septiembre de 2004. Se añadió nuevas características significativas, incluyendo soporte preliminar para ventanas translúcidas y otros efectos visuales sofisticados, magnificadores de pantalla y thumbnailers y facilidades para integrarse con los sistemas de visualización inmersiva 3D como de Sun Proyecto Looking Glass y el Croquet proyecto. Las aplicaciones externas llamados gestores de ventanas de composición proporcionan política para el aspecto visual.

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

Por otro lado, XFree86 aún está en desarrollo a un ritmo muy lento, y la versión 4.8.0 fue lanzado el 15 de diciembre de 2008.

Direcciones futuras

La Fundación X.Org y freedesktop.org gestionan la línea principal de desarrollo X y tienen la intención de ofrecer un mayor acceso a las características de hardware 3D ubicuos. Para combinaciones suficientemente capaces de hardware y sistemas operativos, X.Org planea acceder al hardware de vídeo sólo a través de la Direct Rendering Infrastructure (DRI), utilizando el hardware 3D. El DRI apareció por primera vez en XFree86 versión 4.0 y se convirtió en estándar en X11R6.7 y más tarde y este trabajo está en curso.

Nomenclatura

Los nombres propios del sistema se enumeran en la página del manual como X; Sistema X Window; X Versión 11; Sistema de Ventanas X, versión 11; o X11.

El término "X-Windows" (a la manera de "Microsoft Windows") no recibe la aprobación oficial - con el gerente de liberación X Consortium Matt Landau declarando en 1993, "No hay tal cosa como 'X de Windows' o 'X Window', a pesar de la mala utilización repetida de las formas por las trapos comercio "- a pesar de que ha estado en uso informal común desde principios de la historia de X y se ha utilizado para el efecto deliberadamente provocativa, por ejemplo en el Manual de UNIX ENEMIGOS.

Historia de estreno

Versión Fecha de lanzamiento Cambios más importantes
X1 06 1984 En primer lugar el uso del nombre "X"; cambios fundamentales que distinguen el producto de W.
X6 Enero de 1985Primera versión con licencia para un puñado de empresas externas.
X909 1985 Color. Primera versión bajo licencia MIT.
X10finales de 1985IBM RT / PC, AT (corriendoDOS), y otros
X10R2Enero 1986
X10R3 02 1986 Primera versión X de libre distribución. Las versiones anteriores requieren una licencia de código BSD para cubrir los cambios de código a init / getty para apoyar inicio de sesión. uwm hizo gestor de ventanas estándar.
X10R4 12 1986 Última versión de X10.
X11 15 de septiembre 1987Primera versión del protocolo actual.
X11R202 1988Primera versión X Consortium.
X11R325 de octubre 1988XDM
X11R422 de diciembre 1989XDMCP,twm traído como gerente norma ventana, mejoras de la aplicación,la extensión de la forma, las nuevas fuentes.
X11R505 de septiembre 1991PEX, XCMS (gestión del color),servidor de fuentes,X386,extensión de vídeo X
X11R616 de mayo 1994 V2.0 ICCCM; Inter-cliente de Exchange; Gestión de la sesión X; Extensión de sincronización X; X extensión de imagen; Extensión XTEST; X de entrada; X Grandes solicitudes; XC-MISC; Cambios XFree86.
X11R6.114 de marzo 1996 Extensión X Doble Buffer; extensión de teclado X; Extensión X Record.
X11R6.2
X11R6.3 (Broadway)
23 de diciembre 1996 Funcionalidad Web, LBX. Última versión X Consortium. X11R6.2 es la etiqueta para un subconjunto de X11R6.3 con las únicas nuevas características más R6.1 ser XPrint y la implementación Xlib de la escritura vertical y soporte de caracteres definida por el usuario.
X11R6.4 31 de marzo 1998 Xinerama.
X11R6.5 Liberación interna X.org; no a disposición del público.
X11R6.5.120 de agosto 2000
X11R6.604 de abril 2001Corrección de errores, cambios de XFree86.
X11R6.7.006 de abril 2004 Primera versión Fundación X.Org, incorporando XFree86 4.4rc2. Distribución al usuario final completa. La eliminación de Xie, PEX y libxml2.
X11R6.8.0 08 de septiembre 2004 Ventana translucidez, XDamage, distribuida Multihead X,XFixes, Compuesto.XEvIE
X11R6.8.117 de septiembre 2004Revisión de seguridad enlibxpm.
X11R6.8.210 de febrero 2005Corrección de errores, actualizaciones de controladores.
X11R6.9
X11R7.0
21 de diciembre 2005 EXA, fuente importante refactorización código. A partir de la misma base de código fuente, el modular versión autotooled convirtió 7.0 y la monolítica versión imake se congeló a 6,9.
X11R7.122 de mayo 2006Mejoras EXA,kdrive integrado,AIGLX, sistema operativo y mejoras de soporte de la plataforma.
X11R7.215 de febrero 2007Eliminación deLBX y el controlador de teclado incorporado, X-ACE,XCB, mejoras AutoConfig, limpiezas.
X11R7.306 de septiembre 2007XServer 1.4, entradade conexión en caliente, hotplug salida (RandR 1.2),sondas DTrace,soporte PCI de dominio.
X11R7.423 de septiembre 2008XServer 1.5.1, XACE, PCI-retrabajo, EXA velocidad-ups, _X_EXPORT,GLX 1.4, más rápido arranque y parada.
X11R7.526 de octubre 2009XServer 1.7, Xi 2, XGE, E-apoyo EDID,RandR 1.3,MPX, aceleración del puntero predecible,administrador de memoria DRI2, módulo de seguridad de SELinux, más la eliminación de las bibliotecas y extensiones obsoletos.
X11R7.620 de diciembre 2010X Server 1.9,requisito XCB.
X11R7.706 de junio 2012 Xorg servidor 1.10 cambios, servidor Xorg 1.11 cambios, servidor Xorg 1.12 cambios; Sincronizar extensión 3.1: añade soporte objeto de la cerca; Xi 2.2 soporte multitouch; XFixes 5.0: Barreras de puntero.

Próximos lanzamientos

Versión Fecha de lanzamiento Los cambios más importantes previstos
X11R7.8 2013 Extensión X Recursos 1.2
Recuperado de " http://en.wikipedia.org/w/index.php?title=X_Window_System&oldid=542416548 "