Vérifié contenu

X Window System

Sujets connexes: Logiciel

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.

Un exemple historique de l'interface utilisateur graphique et des applications communes à la distribution de la course du MIT X Consortium sous la twm gestionnaire de fenêtre: X Terminal, Xbiff, xload et un graphique manuelle navigateur page

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

Exemple déploiement de serveur X: le serveur X reçoit une entrée d'un clavier et la souris locaux et affiche à l'écran. Un navigateur Web et un émulateur de terminal course sur le poste de travail de l'utilisateur et une application de mise à jour de logiciel fonctionne sur un ordinateur distant, mais est contrôlé et surveillé de la machine de l'utilisateur

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

GNOME interface utilisateur graphique
Interface graphique d'utilisateur KDE Plasma
Interface graphique Xfce 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 Network Computing Devices MNT-88k terminal 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.

les questions d'accessibilité informatique liés

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

Exemple de tunneling une application X11 via SSH

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 1985Première version sous licence par une poignée de sociétés extérieures.
X9Septembre 1985 Couleur. Première version sous licence MIT.
X10la fin de 1985IBM RT / PC, AT (exécutantDOS), et d'autres
X10R2Janvier 1986
X10R3Fé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 1987Première version du protocole actuel.
X11R2Février 1988Première version X Consortium.
X11R325 Octobre 1988XDM
X11R422 Décembre 1989XDMCP,twm apporté en tant que gestionnaire norme de fenêtre, des améliorations de l'application,l'extension de forme, de nouvelles polices.
X11R55 Septembre 1991PEX, Xcms (gestion des couleurs),serveur de polices,X386,extension vidéo X
X11R6Le 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.114 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.120 Août 2000
X11R6.64 Avril 2001Corrections de bugs, des changements de XFree86.
X11R6.7.06 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.08 Septembre 2004Fenêtre translucidité, XDamage, Distributed Multihead X,Xfixes, Composite.XEvIE
X11R6.8.117 Septembre 2004correctif de sécurité danslibxpm.
X11R6.8.210 Février 2005Corrections 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.1Le 22 mai 2006Améliorations EXA,kdrive intégré,AIGLX, OS et les améliorations de support de plateforme.
X11R7.215 Février 2007Enlèvement deLBX et le pilote du clavier intégré, X-ACE,XCB, des améliorations de AutoConfig, nettoyages.
X11R7.36 Septembre 2007XServer 1.4, entréehotplug, hotplug de sortie (RandR 1.2),sondes DTrace,le soutien de domaine PCI.
X11R7.423 Septembre 2008XServer 1.5.1, XACE, PCI-reprise, EXA vitesse-ups, _X_EXPORT,GLX 1.4, démarrage et l'arrêt rapide.
X11R7.526 Octobre 2009XServer 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.620 Décembre 2010X Server 1.9,exigence de XCB.
X11R7.76 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
Récupéré à partir de " http://en.wikipedia.org/w/index.php?title=X_Window_System&oldid=542416548 "