X Window System
Saviez-vous ...
SOS Enfants, un organisme de bienfaisance de l'??ducation , a organis?? cette s??lection. Voir http://www.soschildren.org/sponsor-a-child pour conna??tre le parrainage d'enfants.
Le syst??me X Window (commun??ment appel?? X11, bas??e sur sa version majeure actuelle ??tant de 11, ou raccourci simplement X, et parfois de mani??re informelle X-Windows) est un syst??me de logiciels et r??seau protocole qui fournit une base pour interfaces utilisateur graphiques (GUI) et de riches capacit??s de dispositif d'entr??e pour ordinateurs en r??seau. Il cr??e un abstraction mat??rielle de la couche o?? le logiciel est ??crit d'utiliser un ensemble g??n??ralis?? de commandes, permettant l'ind??pendance de l'appareil et la r??utilisation des programmes sur ne importe quel ordinateur qui impl??mente X.
X ?? l'origine Massachusetts Institute of Technology (MIT) en 1984. La version de protocole a ??t?? X11 depuis Septembre 1987. Le X.Org Foundation dirige le projet de X, avec la mise en ??uvre de r??f??rence actuelle, X.Org Server, disponible sous logiciel libre et open source sous la MIT License et semblables licences permissives.
Objet et capacit??s
X est un syst??me ind??pendant de l'architecture pour les interfaces utilisateur graphiques ?? distance et de riches capacit??s de l'appareil d'entr??e qui permet ?? de nombreuses personnes de partager la puissance de traitement d'un temps partag?? ordinateur et ?? collaborer les uns avec les autres gr??ce ?? des applications clients ex??cutant sur des ordinateurs distants. Chaque personne utilisant un r??seau terminal a la capacit?? d'interagir avec l'affichage avec tout type de dispositif d'entr??e d'utilisateur. En raison de l'omnipr??sence de soutien pour les logiciels X sur Unix , Linux et Mac OS X, X est couramment utilis?? pour ex??cuter des applications client sur les ordinateurs personnels, m??me quand il ne est pas n??cessaire pour le partage en temps.
X offre fen??trage sur les ??crans d'ordinateur et g??re clavier, pointant fonctions de commande du dispositif et ??crans tactiles. Dans sa distribution standard ce est une compl??te, quoique simple, affichage et la solution d'interface qui fournit une norme trousse d'outils et pile de protocoles pour la cr??ation d'interfaces utilisateur graphiques sur la plupart Les syst??mes d'exploitation Unix-like et OpenVMS, et a ??t?? port?? ?? beaucoup d'autres fins g??n??rales contemporaine syst??mes d'exploitation.
X fournit la base cadres, ou primitives, pour la construction de tels environnements GUI: dessin et mouvement fen??tres sur le afficher et d'interagir avec une souris, un clavier ou ??cran tactile. X ne exige pas que le interface utilisateur soit pr??sent; programmes clients individuels appel??s gestionnaires de fen??tres g??rer cela. Le gestionnaire de fen??tre ne est pas n??cessaire et les programmes peuvent utiliser des capacit??s graphiques de X sans interface utilisateur. A ce titre, le style visuel des milieux bas??s sur X varie consid??rablement; des programmes diff??rents peuvent pr??senter radicalement diff??rentes interfaces. X est construit comme un suppl??ment (application) couche d'abstraction au-dessus de la noyau du syst??me d'exploitation.
Contrairement ?? la plupart des protocoles d'affichage ant??rieures, X a ??t?? sp??cialement con??u pour ??tre utilis?? sur des connexions r??seau plut??t que sur un dispositif d'affichage int??gr?? ou attach??. X caract??ristiques la transparence du r??seau: la machine o?? un programme d'application (l'application client) ex??cute peuvent diff??rer de la machine locale de l'utilisateur (le serveur d'affichage). Le protocole r??seau de X est bas?? sur la commande de primitives et X, avec GLX, OpenGL 3D primitives plut??t que sur un paradigme plus basique framebuffer de la copie. Cette approche permet ?? la fois les op??rations 2D et 3D d'??tre pleinement acc??l??r??s sur le serveur X ?? distance.
Lorsqu'il est utilis?? ?? travers le r??seau, la bande passante et de la latence peuvent ??tre tous les deux des probl??mes importants dans la facilit?? d'utilisation de certains mod??les de logiciels. La bande passante est un facteur cl?? ?? la fois ?? regarder la vid??o en 2D et dans le transfert de textures pour la 3D. La latence peut ??tre une pr??occupation dans les applications interactives le plus ??videmment les jeux, mais des niveaux ??lev??s de latence, m??me la manipulation du menu de base peut devenir difficile.
X ne fournit aucun support pour l'audio, bien que plusieurs projets existent dans ce cr??neau, certains fournissant aussi support r??seau transparent. Certains sont PulseAudio, Advanced Linux Sound Architecture (ALSA), Open Sound System (OSS de), et JACK Audio Connection Kit (JACK).
X manque ??galement un soutien pour les proc??dures stock??es d??finies par l'utilisateur sur le serveur X, ?? la mani??re d' News - il n'y a pas Turing-complet installation.
X est souvent utilis?? en conjonction avec un X gestionnaire de session ?? mettre en ??uvre sessions. Habituellement, une session est d??clench??e par l' X gestionnaire d'affichage. Cependant, l'utilisateur peut ??galement d??marrer une session en ex??cutant manuellement le xinit ou programmes startx.
Conception
X utilise une mod??le client-serveur: un serveur X communique avec divers programmes clients. Le serveur accepte les demandes de sortie graphique (fen??tres) et renvoie l'utilisateur (?? partir du clavier, une souris ou ??cran tactile). Le serveur peut fonctionner en tant que:
- une application ?? l'affichage d'une fen??tre d'un autre syst??me d'affichage
- un programme de syst??me qui commande la sortie vid??o d'un PC
- une pi??ce d??di??e de mat??riel.
Ce terminal de client-serveur terminologie l'utilisateur ??tant le serveur et les applications ??tant les clients, souvent confond les nouveaux utilisateurs de X, parce que les termes apparaissent invers??s. Mais X prend le point de vue de la demande, plut??t que celui de l'utilisateur final: X fournit un affichage et / O des services aux applications I, il est donc un serveur; applications utilisent ces services, ainsi ils sont clients.
Le le protocole de communication entre le serveur et le client op??re r??seau transparente: le client et le serveur peuvent se ex??cuter sur la m??me machine ou sur diff??rents petits, ??ventuellement avec diff??rents architectures et syst??mes d'exploitation. Un client et le serveur peuvent m??me communiquer en toute s??curit?? sur Internet en tunnel de la connexion sur une crypt?? session r??seau.
Un client X lui-m??me peut ??muler un serveur X en fournissant des services d'affichage ?? d'autres clients. Ceci est connu comme "X imbrication??. Clients open-source tels que Xnest et Soutien Xephyr tels X de nidification.
Pour utiliser une application client X sur une machine distante, l'utilisateur effectue les op??rations suivantes:
- Sur la machine locale, ouvrir une fen??tre de terminal
- utilisation ssh avec l'argument X de transfert pour se connecter ?? la machine distante. Telnet peut ??tre utilis??, mais ne est pas s??r, ne permet pas le transfert graphique et est en grande partie obsol??te.
- demander le service d'affichage / d'entr??e locale (par exemple, export DISPLAY = [la machine de l'utilisateur]: 0 si vous ne utilisez SSH avec le transfert X ou ??tunneling?? activ??).
L'application client X distant puis ??tablir une connexion au serveur X local de l'utilisateur, fournissant affichage et de saisie ?? l'utilisateur.
Alternativement, la machine locale peut lancer un petit programme qui se connecte ?? la machine distante et commence l'application cliente.
Des exemples pratiques de clients distants comprennent:
- l'administration d'une machine distante graphique
- en utilisant une application client ?? se joindre ?? un grand nombre d'autres utilisateurs de terminaux dans les groupes de travail collaboratifs.
- ex??cution d'une simulation de calcul intensif sur une machine distante et d'afficher les r??sultats sur une machine de bureau local
- ex??cutant le logiciel graphique sur plusieurs machines ?? la fois, contr??l?? par un seul ??cran, clavier et souris.
Principes
En 1984, Bob et Scheifler Jim Gettys a expos?? les premiers principes de X:
- Ne pas ajouter de nouvelles fonctionnalit??s ?? moins qu'un r??alisateur ne peut pas terminer une application r??elle sans elle.
- Il est aussi important de d??cider ce qu'est un syst??me ne est pas aussi de d??cider ce qu'il est. Ne pas servir tous les besoins de la plan??te; plut??t, rendre le syst??me extensible afin que les besoins suppl??mentaires peuvent ??tre satisfaits d'une mani??re compatible vers le haut.
- La seule chose pire que de g??n??raliser ?? partir d'un exemple est pas g??n??raliser ?? partir des exemples du tout.
- Si un probl??me ne est pas compl??tement compris, il est probablement pr??f??rable de fournir aucune solution du tout.
- Si vous pouvez obtenir 90 pour cent de l'effet recherch?? pour 10 pour cent du travail, utiliser la solution plus simple. (Voir aussi Pire ce est mieux.)
- Isoler complexit?? autant que possible.
- Fournir m??canisme plut??t que politique. En particulier, placer la politique de l'interface utilisateur dans les mains des clients.
Le premier principe a ??t?? modifi?? lors de la conception du X11 pour: "Ne pas ajouter de nouvelles fonctionnalit??s, sauf si vous savez d'une certaine application r??elle qui l'exigent."
X a beaucoup conserv?? ?? ces principes. La mise en ??uvre de l'??chantillon est d??velopp?? en vue de l'extension et l'am??lioration de la mise en ??uvre, tout en restant compatible avec le protocole original de 1987.
Les interfaces utilisateur
X est avant tout une d??finition de protocole et de graphiques primitives et il contient d??lib??r??ment aucune sp??cification pour l'application conception de l'interface utilisateur, tel que bouton, menu, ou la fen??tre styles de barre de titre. Au lieu de cela, le logiciel d'application - comme gestionnaires de fen??tres, l'interface graphique bo??tes ?? outils des widgets et des environnements de bureau, ou sp??cifique ?? l'application interfaces graphiques - d??finir et fournir ces d??tails. En cons??quence, il n'y a pas d'interface typique X et plusieurs environnements de bureau ont ??t?? populaires parmi les utilisateurs.
Un gestionnaire de fen??tres contr??le le placement et l'apparence des fen??tres de l'application. Cela peut entra??ner des interfaces de bureau semblables ?? celles de Microsoft Windows ou Apple Macintosh (exemples comprennent Metacity dans GNOME , KWin dans KDE Software Compilation, Xfwm dans Xfce, ou Compiz) ou ont radicalement diff??rents contr??les (comme un carrelage gestionnaire de fen??tres, comme wmii ou Ratpoison). Des interfaces tels que De sucre ou Chrome OS renonce aux bureau m??taphore tout ?? fait, en simplifiant leurs interfaces pour des applications sp??cialis??es. Les gestionnaires de fen??tres vont dans la sophistication et la complexit?? des bare-bones (par exemple, twm, le gestionnaire de fen??tres de base fournie avec X ou evilwm, un gestionnaire de fen??tres tr??s l??ger) pour les environnements de bureau plus compl??tes telles que Lumi??res et m??me de gestionnaires de fen??tres sp??cifiques ?? l'application pour les march??s verticaux tels que point de vente.
Beaucoup d'utilisateurs utilisent X avec un environnement de bureau, qui, outre le gestionnaire de fen??tres, comprend diverses applications en utilisant une interface utilisateur coh??rente. GNOME, KDE Software Compilation et Xfce sont les environnements les plus populaires de bureau. Le Environnement Unix standard est le Common Desktop Environment (CDE). Le freedesktop.org initiative aborde l'interop??rabilit?? entre les ordinateurs de bureau et les composants n??cessaires pour un bureau X concurrentiel.
Comme X est responsable pour le clavier et l'interaction de la souris avec les interfaces graphiques, certaine raccourcis clavier sont d??sormais associ??s ?? X. Control-Alt-Backspace termine g??n??ralement la session en cours d'ex??cution de X, tandis que Control-Alt en conjonction avec un touche de fonction passe ?? l'associ?? console virtuelle. Cependant, ce d??tail ne est laiss?? ?? la conception d'une mise en ??uvre du serveur X et ne est pas universelle; par exemple, X impl??mentations de serveur pour Windows et Macintosh ne fournissent g??n??ralement pas ces raccourcis clavier.
Impl??mentations
La mise en ??uvre X.Org sert mise en ??uvre canonique de X. Gr??ce ?? lib??rale l'octroi de licences, un certain nombre de variations, ?? la fois libre et open source et propri??taire, ont fait leur apparition. Vendeurs d'Unix commerciaux ont eu tendance ?? prendre la mise en ??uvre open source et l'adapter ?? leur mat??riel, g??n??ralement le personnalisant et en ajoutant des extensions propri??taires.
Jusqu'en 2004, XFree86 fourni variante de X le plus commun sur le libre- Syst??mes de type Unix. XFree86 a commenc?? comme un port de X pour PC 386-compatibles et, ?? la fin des ann??es 1990, ??taient devenus la plus grande source d'innovation technique dans X et le standard de facto du d??veloppement de X. Depuis 2004 cependant, le X.Org Server, un fourchette de XFree86, est devenue pr??dominante.
Se il est courant d'associer X avec Unix, serveurs X existent aussi nativement dans les autres environnements graphiques. De Hewlett-Packard Syst??me d'exploitation OpenVMS inclut une version de X avec Common Desktop Environment (CDE), connu sous le nom DECwindows, comme environnement de bureau standard. d'Apple s ' Mac OS X v10.3 (Panther) et 10.4 (Tiger) comprennent X11.app, bas??e sur XFree86 4.3 et X11R6.6, avec une meilleure int??gration de Mac OS X. Sur Mac OS X v10.5 (Leopard), X11.app d'Apple a ??t?? bas?? sur X.org (X11R7.2 base de code) au lieu de XFree86 (actuellement ?? la lib??ration X11R6.8). Serveurs tiers sous des syst??mes d'exploitation plus anciens d'Apple dans les ann??es 1990, Syst??me 7, et Mac OS 8 et 9, inclus Apple MacX et White Pine Software de Exode.
Microsoft Windows ne est pas livr?? avec le support de X, mais de nombreuses impl??mentations de tiers existent, logiciel libre et open source tels que Cygwin / X, WeirdX et Xming (gratuit jusqu'?? 6.9.0.31); freeware comme Mocha X Server; et des produits propri??taires tels que Xmanager, Exceed, eXcursion (par Hewlett Packard), MKS X / Server, Reflection X, X-Win32 et Xming.
Il ya aussi Java impl??mentations de serveurs X. WeirdX fonctionne sur toute plateforme supportant Balancez 1.1. *, Et se d??roulera sous forme d'applet sein de la plupart des navigateurs. Le Android X Server est une source mise en ??uvre ouverte Java qui fonctionne sur Android dispositifs.
Quand un syst??me d'exploitation avec un syst??me de fen??trage natif h??tes X en plus, le syst??me de X peut soit utiliser son propre bureau normal dans une fen??tre d'accueil s??par??e ou il peut fonctionner sans racines, qui signifie que le bureau X est cach?? et de l'environnement de fen??trage h??te g??re la g??om??trie et apparence des fen??tres h??berg??es X dans l'??cran d'accueil.
terminaux X
Un terminal X est un client l??ger qui ne fonctionne que d'un serveur X. Cette architecture est devenu populaire pour la construction de parcs de terminaux peu co??teux pour de nombreux utilisateurs d'utiliser simultan??ment le m??me serveur grand ordinateur d'ex??cuter des programmes d'application en tant que clients de X le terminal de chaque utilisateur. Cette utilisation est tr??s align??e avec l'intention originale du projet MIT.
terminaux X explorer le r??seau (local domaine de diffusion) en utilisant le X Afficher Control Protocol Manager pour g??n??rer une liste des h??tes disponibles qui sont autoris??s en tant que clients. Un des h??tes clients doivent ex??cuter une X gestionnaire d'affichage.
Une limitation de terminaux X et les clients les plus fines, ce est qu'ils ne sont pas capables de ne importe quelle entr??e ou de sortie autre que le clavier, la souris et l'affichage. Toutes les donn??es pertinentes est suppos?? exister uniquement sur le serveur distant, et l'utilisateur de terminal X n'a pas de m??thodes disponibles pour enregistrer ou charger des donn??es ?? partir d'un terminal local, comme un dispositif de disque, CD-ROM, ou le stockage de disquette USB. Toutefois, l'impression est g??n??ralement pris en charge comme un r??seau partag?? ou une connexion s??rie ?? proximit?? du terminal.
D??di?? (mat??riel) terminaux X sont devenus moins fr??quents; un PC ou moderne client l??ger avec un serveur X fournit g??n??ralement la m??me fonctionnalit?? ?? la m??me, ou plus bas, le co??t.
Limitations et critiques
Le manuel UNIX-HAINEUX (1994) a consacr?? un chapitre entier aux probl??mes de X. Pourquoi X ne est pas notre Window System Id??al (1990) par Gajewska, Manasse et McCormack probl??mes d??taill??s dans le protocole avec des recommandations d'am??lioration.
questions de l'interface utilisateur
L'absence de lignes directrices de conception dans X a donn?? lieu ?? plusieurs interfaces tr??s diff??rentes, et dans des applications qui ne ont pas toujours bien travaill?? ensemble. Le Manuel Inter-client conventions de communication (ICCCM), une sp??cification d'interop??rabilit?? client, a la r??putation d'??tre difficile ?? mettre en ??uvre correctement. Des efforts suppl??mentaires normes telles que Motif et CDE n'a pas ?? att??nuer les probl??mes. Cela a utilisateurs frustr??s et programmeurs. programmeurs graphiques d??sormais se adressent g??n??ralement ?? la coh??rence d'application regarder et toucher et la communication par le codage ?? un environnement de bureau sp??cifique ou ?? un Widget Toolkit sp??cifique, ce qui ??vite ??galement d'avoir ?? traiter directement avec le ICCCM.
Syst??mes construits sur le syst??me de fen??trage X peuvent avoir les questions d'accessibilit?? qui rendent l'utilisation d'un ordinateur difficile pour les utilisateurs handicap??s (et les utilisateurs d'ordinateurs d??pourvus d'un clavier enti??rement s??lectionn??e ou d'un dispositif de pointage - par exemple les smartphones), y compris clic-droit, double-clic, clic du milieu, mouse-over, et concentrer voler. Certains clients X11 traitent des questions d'accessibilit?? mieux que d'autres, de sorte que les personnes ayant des probl??mes d'accessibilit?? ne sont pas en lock-out de l'utilisation de X11. Cependant, il ne existe aucune norme d'accessibilit?? ou les directives d'accessibilit?? pour X11. Dans traitent les normes X11 n'y a pas de groupe de travail sur l'accessibilit??, cependant, les besoins d'accessibilit?? sont trait??es par les projets de logiciels pour fournir ces fonctionnalit??s au-dessus de X, y compris Orca et la ATK.
Le projet Orca ajoute le support de l'accessibilit?? au syst??me X Window, y compris la mise en ??uvre d'une API ( AT-SPI). Ce est coupl?? avec Gnome de ATK pour permettre des fonctions d'accessibilit?? ?? mettre en ??uvre dans les programmes X en utilisant les API Gnome / GTK. KDE fournit un ensemble diff??rent de logiciels d'accessibilit??, y compris un convertisseur texte-parole et un agrandisseur d'??cran. Les autres bureaux principaux (LXDE, XFCE et Englightenment) ne ont pas leur propre logiciel de l'accessibilit??, mais ne tentent d'??tre compatible avec ATK.
R??seau
Un client X ne peut g??n??ralement pas ??tre d??tach?? d'un serveur et rattach?? ?? un autre, sauf si son code pr??voit express??ment pour elle ( emacs est l'un des rares programmes communs avec cette capacit??). Par extension, d??placer toute une session d'un serveur ?? un autre X est g??n??ralement pas possible. Toutefois, des approches telles que Virtual Network Computing (VNC), Et NX XPRA permettre une session virtuelle ?? atteindre ?? partir de diff??rents serveurs X (d'une mani??re similaire ?? GNU ??cran par rapport aux bornes), et d'autres applications et outils fournissent des installations connexes. Solutions de contournement comme x11vnc (VNC: 0 t??l??spectateurs) et NX (le mode ombre de nxagent) existent aussi pour rendre l'??cran actuel X-serveur disponible via VNC et NX respectivement. Cette capacit?? permet ?? l'interface utilisateur (souris, clavier, ??cran) d'une application en cours d'ex??cution ?? ??tre commut?? d'un endroit ?? un autre sans arr??ter et red??marrer l'application. Cela peut ??tre important dans certaines applications, telles que la surveillance et le contr??le du processus.
Le trafic r??seau entre un serveur X et les clients X distants ne est pas chiffr??e par d??faut. Un attaquant avec un renifleur de paquets peut intercepter, ce qui permet de voir quoi que ce soit affich?? ou envoy?? de l'??cran de l'utilisateur. La fa??on la plus courante pour crypter le trafic X est d'??tablir un Secure Shell (SSH) tunnel de communication.
Comme tous clients l??gers, lors de l'utilisation X ?? travers un r??seau, limitations de bande passante peuvent entraver l'utilisation de applications bitmap-intensive qui n??cessitent la mise ?? jour rapidement de grandes parties de l'??cran avec une faible latence, comme l'animation 3D ou retouche photo. M??me relativement faible flux vid??o 640x480x24bit 30fps non compress?? peut facilement d??passer la bande passante d'un r??seau de 100Mbit pour un seul client. Les premi??res versions de X subiraient m??me lorsque vous ne utilisez pas le r??seau local, comme en utilisant un poste de travail Linux avec le serveur et le client X sur le m??me syst??me, en raison de le protocole r??seau-centrique qui serait encore utiliser un mod??le de r??seau interne au sein de l'ordinateur , via les sockets localhost ou UNIX. En revanche, les versions modernes de X pr??sentent g??n??ralement des extensions telles que MESA permettant l'affichage local des graphiques d'un programme local pour ??tre optimis?? pour contourner le mod??le de r??seau et de contr??ler directement la carte vid??o, pour l'utilisation de la vid??o plein ??cran, applications 3D rendus, et d'autres applications.
La s??paration client-serveur
La conception de X n??cessite les clients et le serveur de fonctionner s??par??ment, et l'ind??pendance de l'appareil et la s??paration de client et le serveur induire une surcharge. La plupart des frais g??n??raux provient de r??seau aller-retour temps de retard entre le client et le serveur ( latence) plut??t que du protocole lui-m??me: les meilleures solutions aux probl??mes de performance d??pendent de la conception de l'application efficace. Une critique commune de X est que les fonctionnalit??s du r??seau se traduisent par une complexit?? excessive et les performances ont diminu?? si seulement utilis?? localement.
X modernes utilisent des impl??mentations Socket Unix pour les connexions efficaces sur le m??me h??te. En outre la m??moire partag??e (via le L'extension MIT-SHM) peut ??tre utilis?? pour acc??l??rer la communication client-serveur. Toutefois, le programmeur doit encore activer explicitement et utiliser l'extension de m??moire partag??e. Il est ??galement n??cessaire de fournir des chemins de repli afin de rester compatible avec les anciennes implantations, et afin de communiquer avec les serveurs X non-locales.
Les concurrents
Certaines personnes ont tent?? ??criture alternatives aux remplacements et pour des alternatives historiques incluent X. De Sun News, qui a ??chou?? dans le march??, et NeXT de Display PostScript, ?? la fois Syst??mes bas??s sur PostScript appui proc??dures affichage c??t?? d??finissables par l'utilisateur, qui manquait X. Mac OS X, iOS et Android sont les principaux syst??mes Unix ne pas utiliser X pour les graphiques.
Lorsque Apple Inc. a achet?? NeXT, et utilis?? NeXTSTEP de construire Mac OS X, ils remplac?? Display PostScript avec Quartz. Mike Paquette, l'un des auteurs de quartz, a expliqu?? pourquoi Apple n'a pas boug?? de Display PostScript ?? X, et a plut??t choisi de d??velopper son propre serveur de la fen??tre, en disant qu'une fois que Apple a ajout?? le support pour toutes les fonctionnalit??s qu'elle voulait inclure dans X11, il ne serait pas supporter beaucoup de ressemblance avec X11 ni ??tre compatible avec d'autres serveurs de toute fa??on.
Wayland serveur d'affichage, h??berg?? par freedesktop.org et d??velopp?? par plusieurs d??veloppeurs X.Org, deux adresses critiques de X en rempla??ant compl??tement et travaille directement avec le mat??riel via DRI. Il est pr??vu pour Wayland pour ??ventuellement remplacer X Ubuntu et Fedora, deux distributions GNU / Linux bien connues. Wayland g??re la compatibilit?? ascendante avec X en ex??cutant ??ventuellement un serveur X.org comme un client, qui peut ??tre d??racin?? (ayant une fen??tre Wayland par client X).
D'autres tentatives pour r??pondre aux critiques de X en rempla??ant compl??tement comprennent Berlin / Fresco et de la Window System Y. Ces alternatives ont vu n??gligeable adoption et ont ??t?? abandonn??s par leurs d??veloppeurs; commentateurs largement doutent de la viabilit?? de tout remplacement qui ne pr??serve pas la compatibilit?? ascendante avec X.
Autres concurrents tentent d'??viter la surcharge de X en travaillant directement avec le mat??riel. Ces projets comprennent DirectFB. Le Direct Rendering Infrastructure (DRI), qui vise ?? fournir une interface de niveau noyau fiable au framebuffer, peut rendre ces efforts redondants.
Autres moyens de parvenir ?? la transparence du r??seau pour les services graphiques comprennent:
- la SVG Terminal, un protocole de mise ?? jour Scalable Vector Graphics (SVG) contenu dans un navigateur en temps quasi r??el
- Virtual Network Computing (VNC de), un syst??me de tr??s faible niveau qui envoie bitmaps compress??s ?? travers le r??seau; la mise en ??uvre Unix comprend un serveur X
- Citrix XenApp, un produit X-like pour Microsoft Windows
- Tarantella, qui fournit un client Java pour une utilisation dans les navigateurs web
- De RAWT, IBM Java uniquement AWT ?? distance, qui met en oeuvre un "serveur" Java et crochets simples pour tout client Java ?? distance.
MicroXwin ne est pas un remplacement ?? part enti??re pour X, mais maintient la compatibilit?? binaire avec les clients standards X tout en offrant de meilleures performances et significativement plus faible surcharge de m??moire par une architecture diff??rente de la conception qui impl??mente directement le syst??me comme un module du noyau. Le module du noyau est la propri??t?? tandis que les biblioth??ques de l'espace utilisateur, libX11 (contrepartie de Xlib) et libxext, sont disponibles sous licence de type BSD.
Histoire
Pr??d??cesseurs
Plusieurs syst??mes d'affichage de bitmap pr??c??d??s X. De Xerox est venu le Alto (1973) et le Star (1981). ?? partir de Apollo Computer venu Display Manager (1981). De Pomme vint le Lisa (1983) et le Macintosh (1984). Le Unix monde avait le Andrew projet (1982) et Rob Pike Blit terminal (1982).
Universit?? Carnegie-Mellon produit une application d'acc??s ?? distance appel?? Alto Terminal, qui affiche des fen??tres qui se chevauchent sur le Xerox Alto, et a fait des h??tes distants (g??n??ralement des syst??mes VAX d??cembre sous Unix) responsables de la gestion des ??v??nements fen??tre-exposition et contenu de la fen??tre rafra??chissantes que n??cessaire.
X tire son nom comme un successeur ?? un syst??me de fen??tre pr??-1983 appel?? W (la lettre X dans la pr??c??dente Alphabet anglais). W a couru sous la syst??me d'exploitation V. W utilis?? un protocole de r??seau supportant terminaux graphiques et fen??tres, le serveur ?? jour des listes d'affichage.
Introduction
X a ??t?? pr??sent?? au MIT Projet communautaire Ath??na dans l'email suivant en Juin 1984:
De: rws @ mit-gras (Robert W. Scheifler) Pour: fen??tre @ athena Objet: fen??tre syst??me X Date: 19 juin 1984 0907-EDT (mardi), je ai pass?? les deux derni??res semaines ??criture d'un syst??me de fen??tre pour la VS100. Je ai gagn?? une bonne quantit?? de code ?? partir de W, entour??e avec asynchrone plut??t que d'une interface synchrone, et l'a appel?? X. La performance globale semble ??tre environ deux fois celle de W. Le code semble assez solide ?? ce stade, bien qu'il existe encore certaines lacunes ?? fixer le haut. Nous avons au LCS cess?? d'utiliser W, et nous sommes en train de construire activement des applications sur X. Toute autre personne utilisant W devraient s??rieusement envisager de passer. Ce ne est pas le syst??me de la fen??tre ultime, mais je crois que ce est un bon point de d??part pour l'exp??rimentation. Juste au moment o?? il ya un CLU (et un Argus) interface pour X; une interface C est dans les travaux. Les trois applications existantes sont un ??diteur de texte (TED), une interface Argus I / O, et un gestionnaire de fen??tres primitive. Il n'y a pas encore de documentation; quiconque assez fou pour faire du b??n??volat? Je peux se en est finalement. Toute personne int??ress??e ?? voir une d??mo peut chuter de NE43-531, bien que vous pouvez appeler 3-1945 premier. Celui qui veut le code peut trouver avec un ruban. Toute personne int??ress??e ?? le piratage d??ficiences, ne h??sitez pas ?? entrer en contact.
Origine et d??veloppement pr??coce
L'id??e originale de X a ??merg?? au MIT en 1984 comme une collaboration entre Jim Gettys (de Athena Project) et Bob Scheifler (de la Laboratoire MIT Computer Science). Scheifler besoin d'un environnement d'affichage utilisable pour le d??bogage du syst??me Argus. Athena Project (un projet conjoint entre Digital Equipment Corporation (DEC), MIT et IBM pour fournir un acc??s facile aux ressources informatiques pour tous les ??l??ves) avait besoin d'un syst??me graphique ind??pendant de la plateforme ?? relier ses syst??mes multi-fournisseurs h??t??rog??nes; le syst??me alors en cours de d??veloppement dans la fen??tre Carnegie Mellon University de Andrew projet n'a pas fait de licences disponibles, et aucune alternative existait.
Le projet a r??solu ce en cr??ant un protocole qui pourrait ?? la fois ex??cuter des applications locales et faire appel ?? des ressources distantes. ?? la mi-1983 un port initial de W ?? Unix a couru ?? un cinqui??me de sa vitesse dans V; mai 1984, a remplac?? l'Scheifler synchrone protocole de W avec un protocole asynchrone et les listes d'affichage avec imm??diats graphiques de mode pour rendre la version de X 1. X est devenu le premier environnement de syst??me de fen??trage ?? offrir une v??ritable ind??pendance mat??rielle et l'ind??pendance du fournisseur.
Scheifler, et Gettys Ron Newman se mit au travail et X a progress?? rapidement. Ils ont sorti la version 6 en Janvier 1985. d??cembre, puis pr??pare ?? sortir son premier Ultrix poste de travail, jug?? X le seul syst??me susceptibles de devenir disponibles en temps de fen??trage. Ing??nieurs d??cembre X6 port??s ?? l'affichage de QVSS de d??cembre sur MicroVAX.
Au deuxi??me trimestre de 1985, X a acquis le soutien ?? la fonction de couleur dans la DEC VAXstation-II / GPX, formant ce qui est devenu la version 9.
Un groupe au Universit?? Brown port?? version 9 ?? l' IBM RT / PC, mais des probl??mes avec la lecture des donn??es non align??es sur la RT forc?? un changement de protocole incompatibles, conduisant ?? la version 10 ?? la fin de 1985. En 1986, des organismes ext??rieurs ont commenc?? ?? demander pour X. X10R2 a ??t?? publi?? en Janvier 1986, puis en F??vrier 1986 X10R3 . Bien que le MIT avait licence X6 ?? certains groupes de l'ext??rieur pour une taxe, elle a d??cid?? ?? ce moment de la licence et les versions futures X10R3 sous ce qui est devenu connu sous le nom MIT License, avec l'intention de populariser X plus loin et, en retour, en esp??rant que de nombreuses autres applications seraient disponibles. X10R3 est devenu la premi??re version de parvenir ?? un large d??ploiement, ?? la fois avec et d??cembre Hewlett-Packard lib??rant des produits bas??s sur elle. D'autres groupes port??s ?? X10 Apollo et Stations de travail Sun et m??me ?? l'IBM PC / AT. D??monstrations de la premi??re application commerciale pour X (un syst??me d'ing??nierie m??canique assist??e par ordinateur ?? partir Cognition Inc. qui a couru sur VAX et ?? distance affich??e sur les PC tournant un serveur X port?? par Jim Fulton et Jan Hardenbergh) a eu lieu au salon Autofact ?? ce temps. La derni??re version de X10, X10R4, paru en D??cembre., 1986
Des tentatives ont ??t?? faites pour permettre serveurs X en tant que dispositifs de collaboration en temps r??el, autant que Virtual Network Computing (VNC de) permettrait plus tard, un bureau pour ??tre partag??e. Un tel effort au d??but ??tait Philip J. Rafale de SharedX outil.
Bien que X10 offert fonctionnalit?? int??ressante et puissante, il ??tait devenu ??vident que le protocole X pourrait utiliser un plus refonte mat??rielle neutre avant qu'il ne devienne trop largement d??ploy??e, mais MIT seule ne aurait pas les ressources disponibles pour une telle refonte compl??te. Comme ce est arriv??, DEC de Logiciel Laboratoire de l'Ouest se est trouv?? entre les projets avec une ??quipe exp??riment??e. Smokey Wallace de d??cembre WSL et Jim Gettys propos?? que d??cembre WSL construire X11 et le rendre disponible gratuitement dans les m??mes conditions que X9 et X10. Ce processus a d??but?? en mai 1986, avec le protocole finalis?? en Ao??t. test alpha du logiciel a d??but?? en F??vrier 1987, le b??ta-test en mai; la lib??ration de X11 finalement eu lieu le 15 Septembre 1987.
La conception du protocole X11, dirig?? par Scheifler, a ??t?? longuement discut?? sur les listes de diffusion ouvertes sur Internet naissante qui ont ??t?? combl??es dans les forums Usenet. Gettys a d??m??nag?? en Californie pour aider ?? diriger le travail de d??veloppement X11 au WSL du Centre de recherche sur les syst??mes de d??cembre, o?? Phil Karlton et Susan Angebrandt dirig?? la conception et la mise en ??uvre de serveur exemple X11. X repr??sente donc l'un des premiers ?? tr??s grande ??chelle distribu??s projets Logiciels Libres et Open source.
Le MIT X Consortium et le X Consortium, Inc.
En 1987, avec le succ??s de X11 devient ??vident, MIT voulait renoncer ?? la g??rance de X, mais lors d'une r??union Juin 1987 avec neuf fournisseurs, les vendeurs MIT dit qu'ils croyaient en la n??cessit?? d'un parti neutre pour maintenir les X de se fragmenter en le march??. En Janvier 1988, le MIT X Consortium form?? comme un groupe de fournisseurs ?? but non lucratif, avec Scheifler en tant que directeur, pour diriger le d??veloppement futur de X dans une atmosph??re neutre inclusif des int??r??ts commerciaux et ??ducatifs. Jim Fulton a rejoint en Janvier 1988 et Keith Packard ?? Mars 1988 en tant que principal d??veloppeurs, avec Jim se concentrant sur Xlib, les polices, les gestionnaires de fen??tres, et les services publics; et Keith re-mise en ??uvre du serveur. Donna Echangez, Chris D. Peterson, et Stephen Gildea rejoints plus tard cette ann??e, en se concentrant sur les outils et ensembles widgets, en ??troite collaboration avec Ralph Swick du projet Athena du MIT. Le MIT X Consortium a produit plusieurs r??visions importantes au X11, le premier (Version 2 - X11R2) en F??vrier 1988. Jay Hersh a rejoint l'??quipe en Janvier 1991 ?? travailler sur le Fonctionnalit?? PEX et X113D. Il a ??t?? suivi peu apr??s par Ralph Mor (qui a ??galement travaill?? sur PEX) et Dave Sternlicht. En 1993, le MIT X Consortium se pr??para ?? partir du MIT, le personnel ??tait rejoint par Gary R. Cutbill, Kaleb Keithley, et David Wiggins.
En 1993, le X Consortium, Inc. (une soci??t?? ?? but non lucratif) form?? en tant que successeur du MIT X Consortium. Il a publi?? X11R6 le 16 mai 1994. En 1995, il a pris sur le d??veloppement de la Motif de la trousse d'outils et Common Desktop Environment pour les syst??mes Unix. Le Consortium X dissoute ?? la fin de 1996, la production d'une r??vision finale, X11R6.3, et d'accro??tre l'influence commerciale dans le d??veloppement un h??ritage.
Le groupe ouvert
En Janvier 1997, le Consortium X a adopt?? intendance de X The Open Group, un groupe de fournisseurs form?? au d??but de 1996 par la fusion de la Open Software Foundation et X / Open.
L'Open Group a publi?? au d??but de 1998. X11R6.4 controvers??e, X11R6.4 ??cart?? des termes traditionnels de licence lib??rales, comme l'Open Group a cherch?? ?? assurer un financement pour le d??veloppement de X. Les nouvelles conditions auraient emp??ch?? son adoption par de nombreux projets ( comme XFree86) et m??me par certains fournisseurs commerciaux. Apr??s XFree86 semblait pr??te ?? fourchette, l'Open Group relicenci??e X11R6.4 sous la licence traditionnelle en Septembre 1998. derni??re version de The Open Group est venu comme X11R6.4 patch 3.
X.Org et XFree86
XFree86 origine en 1992 du serveur X386 pour IBM compatibles PC inclus avec X11R5 en 1991, écrit par Thomas Roell et Mark W. Snitily et remis à la MIT X Consortium par Snitily graphiques Consulting Services (SGCS). XFree86 a évolué au fil du temps d'un seul port de X pour le premier et le plus populaire de la mise en ??uvre et de facto la norme du développement de l'X.
En mai 1999, l'Open Group formé X.Org. X.Org a supervisé la libération des versions X11R6.5.1 avant. le développement de X pour le moment était devenue moribonde; plus l'innovation technique depuis le X Consortium avait dissous avait eu lieu dans le projet XFree86. En 1999, l'équipe XFree86 rejoint X.Org comme une (non rémunérés) membre honoraire, encouragé par diverses sociétés de matériel souhaitent utiliser XFree86 avec Linux et dans son statut que la version la plus populaire de X.
En 2003, alors que la popularité de Linux (et donc la base installée de X) a bondi, X.Org restée inactive, et le développement actif a eu lieu en grande partie dans XFree86. Toutefois, la dissidence considérable développé dans XFree86. Le projet XFree86 souffert d'une perception d'un trop modèle de développement cathédrale-comme; les développeurs ne pouvaient pas se commettre l'accès CVS et les vendeurs dû maintenir de vastes ensembles de brassage. En Mars 2003, l'organisation XFree86 expulsé Keith Packard, qui avait rejoint XFree86 après la fin de l'original MIT X Consortium, avec sensation de malaise considérable.
X.Org et XFree86 ont commencé à discuter d'une réorganisation adaptée à entretenir correctement le développement de X. Jim Gettys avait été poussant fortement pour un modèle de développement ouvert depuis au moins 2000. Gettys, Packard et plusieurs autres ont commencé à discuter en détail les exigences relatives à la gouvernance efficace de X avec le développement ouvert.
Enfin, dans un écho du différend de licence de X11R6.4, XFree86 a publié la version 4.4 en Février 2004 sous une licence plus restrictive que beaucoup de projets reposant sur ??????X trouvé inacceptable. La clause ajoutée à la licence a été basé sur l'original de la clause de publicité de licence BSD, qui a été considéré par la Free Software Foundation et Debian comme incompatible avec les GNU General Public License. autres groupes ont vu comme contraire à l'esprit de l'original X. Theo de Raadt de OpenBSD , pour exemple, a menacé de débourser XFree86 citant licence préoccupations. La question de licence, combinée avec les difficultés à obtenir des changements dans, a laissé beaucoup sent le temps était mûr pour une fourchette.
La Fondation X.Org
Au début de 2004, plusieurs personnes de X.Org et formèrent le freedesktop.org X.Org Foundation, et l'Open Group lui ont donné le contrôle du x.org nom de domaine. Cela a marqué un changement radical dans la gouvernance de X. considérant que les intendants de X depuis 1988 (y compris la X.Org avant) avaient organisations de fournisseurs été, la Fondation a été dirigée par les développeurs de logiciels et utilisé le développement communautaire basé sur le modèle du bazar, qui repose sur la participation à l'extérieur. L'adhésion a été ouvert aux particuliers, avec l'adhésion de l'entreprise étant dans la forme de parrainage. Plusieurs grandes sociétés telles que Hewlett-Packard soutiennent actuellement la Fondation X.Org.
La Fondation joue un rôle de contrôle sur le développement de X: décisions techniques sont prises sur leurs mérites par la réalisation rough consensus entre les membres de la communauté. Les décisions techniques ne sont pas prises par le conseil d'administration; dans ce sens, il est fortement modelé sur le plan technique non-interventionniste Fondation GNOME. La Fondation emploie aucun développeurs.
La Fondation a publié X11R6.7, l' X.Org Server, en Avril 2004, basée sur XFree86 4.4RC2 avec des changements de X11R6.6 fusionnés. Gettys et Packard avaient pris la dernière version de XFree86 sous l'ancienne licence et, en faisant un point d'un modèle de développement ouvert et en conservant la compatibilité GPL, apporté beaucoup d'anciens développeurs de XFree86 à bord.
X11R6.8 est sorti en Septembre 2004. Elle a ajouté de nouvelles fonctionnalités importantes, y compris un support préliminaire pour les fenêtres translucides et autres effets visuels sophistiqués, agrandisseurs d'écran et thumbnailers, et des installations d'intégration avec les systèmes d'affichage 3D immersive tels que Sun Projet Looking Glass et la Croquet projet. Les applications externes appelés gestionnaires de fenêtres de composition fournissent politique de l'aspect visuel.
Le 21 Décembre 2005, X.Org libéré X11R6.9, monolithique arbre source pour les utilisateurs existants, et X11R7.0, le même code source séparé en modules indépendants, chacun maintenable dans des projets séparés. La Fondation a publié X11R7.1 le 22 mai 2006, environ quatre mois après 7,0, avec des améliorations de fonctionnalités considérables.
De l'autre côté, XFree86 est encore en développement à un rythme très lent, et la version 4.8.0 a été libéré le 15 Décembre de 2008.
Orientations futures
La Fondation X.Org et freedesktop.org géré la ligne principale de développement de X et ils ont l'intention de fournir un meilleur accès aux omniprésents caractéristiques matérielles 3D. Pour les combinaisons suffisamment capables de matériels et systèmes d'exploitation, X.Org prévoit d'accéder au matériel vidéo uniquement via le Direct Rendering Infrastructure (DRI), en utilisant le matériel 3D. La DRI est apparu dans XFree86 version 4.0 et est devenu la norme dans X11R6.7 et plus tard, et ce travail est en cours.
Nomenclature
Les noms propres pour le système sont répertoriés dans la page de manuel que X; X Window System; X Version 11; X Window System, version 11; ou X11.
Le terme «X-Windows" (à la manière de "Microsoft Windows") ne sont pas officiellement approuvé - avec X Consortium libération gestionnaire Matt Landau déclarant en 1993, "Il n'y a pas une telle chose comme 'X Window' ou 'X Window', en dépit de la mauvaise utilisation répétée des formes par les chiffons commerciales "- si elle a été en usage informelle commune depuis le début de l'histoire de X et a été utilisé délibérément pour un effet provocateur, par exemple dans le Manuel UNIX-HATERS.
l'histoire de sortie
Version | Date de sortie | Les changements les plus importants |
---|---|---|
X1 | Juin 1984 | Première utilisation du nom "X"; des changements fondamentaux qui distinguent le produit de W. |
X6 | Janvier 1985 | Première version sous licence par une poignée de sociétés extérieures. |
X9 | Septembre 1985 | Couleur. Première version sous licence MIT. |
X10 | la fin de 1985 | IBM RT / PC, AT (exécutantDOS), et d'autres |
X10R2 | Janvier 1986 | |
X10R3 | Février 1986 | Première X version librement redistribuables. Les versions antérieures nécessitaient une licence de source de BSD pour couvrir les changements de code à init / getty pour soutenir connexion. uwm faite gestionnaire de fenêtre standard. |
X10R4 | D??cembre 1986 | Dernière version de X10. |
X11 | 15 Septembre 1987 | Première version du protocole actuel. |
X11R2 | Février 1988 | Première version X Consortium. |
X11R3 | 25 Octobre 1988 | XDM |
X11R4 | 22 Décembre 1989 | XDMCP,twm apporté en tant que gestionnaire norme de fenêtre, des améliorations de l'application,l'extension de forme, de nouvelles polices. |
X11R5 | 5 Septembre 1991 | PEX, Xcms (gestion des couleurs),serveur de polices,X386,extension vidéo X |
X11R6 | Le 16 mai 1994 | V2.0 ICCCM; Inter-client Exchange; X Gestion de la session; extension de synchronisation X; extension de l'image X; L'extension XTEST; X Entrée; X Big demandes; XC-MISC; Changements XFree86. |
X11R6.1 | 14 Mars 1996 | L'extension X double tampon; extension de clavier X; L'extension X Record. |
X11R6.2 X11R6.3 (Broadway) | 23 Décembre 1996 | fonctionnalité Web, LBX. Dernier album X Consortium. X11R6.2 est le tag pour un sous-ensemble de X11R6.3 avec les seules nouvelles fonctionnalités plus R6.1 être XPrint et la mise en ??uvre Xlib de l'écriture verticale et le support des caractères définis par l'utilisateur. |
X11R6.4 | 31 Mars 1998 | Xinerama. |
X11R6.5 | X.org version interne; pas rendues publiques. | |
X11R6.5.1 | 20 Août 2000 | |
X11R6.6 | 4 Avril 2001 | Corrections de bugs, des changements de XFree86. |
X11R6.7.0 | 6 Avril 2004 | Première version de X.Org Foundation, incorporant XFree86 4.4rc2. La distribution intégrale de l'utilisateur final. Enlèvement des XIF, PEX et libxml2. |
X11R6.8.0 | 8 Septembre 2004 | Fenêtre translucidité, XDamage, Distributed Multihead X,Xfixes, Composite.XEvIE |
X11R6.8.1 | 17 Septembre 2004 | correctif de sécurité danslibxpm. |
X11R6.8.2 | 10 Février 2005 | Corrections de bugs, mises à jour de pilotes. |
X11R6.9 X11R7.0 | 21 D??cembre 2005 | EXA, principale source refactorisation de code. De la même base de code source, le modulaire la version 7.0 et est devenu autotooled monolithique version imake a été gelé à 6,9. |
X11R7.1 | Le 22 mai 2006 | Améliorations EXA,kdrive intégré,AIGLX, OS et les améliorations de support de plateforme. |
X11R7.2 | 15 Février 2007 | Enlèvement deLBX et le pilote du clavier intégré, X-ACE,XCB, des améliorations de AutoConfig, nettoyages. |
X11R7.3 | 6 Septembre 2007 | XServer 1.4, entréehotplug, hotplug de sortie (RandR 1.2),sondes DTrace,le soutien de domaine PCI. |
X11R7.4 | 23 Septembre 2008 | XServer 1.5.1, XACE, PCI-reprise, EXA vitesse-ups, _X_EXPORT,GLX 1.4, démarrage et l'arrêt rapide. |
X11R7.5 | 26 Octobre 2009 | XServer 1.7, Xi 2, XGE, E-support EDID,RandR 1.3,MPX, l'accélération du pointeur prévisible,DRI2 gestionnaire de mémoire, module de sécurité SELinux, poursuivre l'élimination des bibliothèques et extensions obsolètes. |
X11R7.6 | 20 Décembre 2010 | X Server 1.9,exigence de XCB. |
X11R7.7 | 6 Juin 2012 | Serveur 1.10 changements, du serveur Xorg 1.11 changements, du serveur Xorg 1,12 changements Xorg; Sync prolongation 3.1: ajoute le support de l'objet de clôture; Xi 2.2 support du multitouch; Xfixes 5.0: Obstacles Pointer. |
Prochaines sorties
Version | Date de sortie | Changements prévus plus importants |
---|---|---|
X11R7.8 | 2013 | L'extension des ressources X 1.2 |