Histoire d'X

L'Echo de Linux (Juillet 1996)
Jean-Michel Léon (Jean-Michel.Leon@sophia.inria.fr)


Introduction

Systèmes de fenêtrage

Le projet Athena

    Ce projet démarra en 1983, au MIT (Massachusetts Institute of Technology), son but était de fournir l'accès en libre service aux ressources informatiques du campus à tous les étudiants, aussi simplement et naturellement qu'ils avaient accès au téléphone. Pour ce faire, il fallait installer 4000 stations de travail Unix connectées entre elles, mais aussi imaginer et développer les logiciels nécessaires à leur fonctionnement [TXJ 93].

    Cette entreprise sans précédent fut largement supportée et financée par les grands constructeurs informatiques de l'époque tels que Dec, IBM, Motorola,... qui fournirent à la fois le matériel et l'essentiel de la main d'&oe;uvre, le projet étant dirigé par les chercheurs du MIT, dont Bob Scheifler, qui dirigeait le MIT X Consortium. L'intérêt des constructeurs était de développer des technologies portables sur l'ensemble des architectures à base d'Unix.

    De la diversité des sponsors, le projet Athena tira l'expérience de l'hétérogénéité des environnements informatiques; l'époque était encore aux grands systèmes propriétaires et ces notions n'étaient encore que peu explorées. La volonté d'interconnections, de partage des ressources et surtout l'échelle à laquelle celui-ci devait être opérationnel, sont quant à elles, à la base de l'orientation résolument distribuée de toutes les retombées du projet [Champine 91].

    Athena regroupa en fait un grand nombre de projets, liés à l'objectif initial. Parmi ceux ayant abouti à des technologies utilisées à l'heure actuelle, citons le système d'authentification Kerberos [Garfinkel 91], le système de gestion de fichiers Andrew (Andrew File System) et bien entendu, le système de fenêtrage X (X Window System).

"The X Window System" : X

    Basé initialement sur le système W, développé à Stanford par Paul Asente et Brian Reid, X [Scheifler 86] fut tout d'abord épuré puis à nouveau étendu. Entre 1983 et 1985, les versions se succédèrent rapidement, pour aboutir en 1985 à la première version publique : X10. En Février 1987, naquit X11R1 (X Version 11, Release 1) et depuis, les évolutions (releases) se succèdent, tout en gardant une totale compatibilité arrière; alors que chaque changement de version (X10, X11) introduisait une incompatibilité.

    L'ouverture de X l'a fait adopter par l'ensemble des constructeurs actuels et toute station Unix achetée maintenant est livrée avec le Système X Window. A l'occasion de la dernière évolution (X11R6 sortie en mai 1994) l'ancien "MIT X Consortium" a été dissout [X 93], ses dirigeants estimant que leur travail était terminé et une nouvelle entité nommée "X Consortium Inc." [Scheifler 94] a été fondée, dont la charge est de promouvoir le système.

    La prochaine version de X (nom de code Broadway) sera X11R7 qui sortira en Décembre 1996. Ce sera la derniere version développée par "X Consortium Inc." qui vivra son dernier hiver. X sera alors transféré dans le giron de l'Open Group qui prendra en charge sa maintenance.

    D'un point de vue technique, X ne subira plus maintenant que du support de maintenance. Il demeure cependant une forte activité de recherche et de développement "autour de X" dans le domaine des extensions telles que le son, la vidéo, l'internationalisation,...

    Dans le monde Unix, X n'a plus de concurrent. Le dernier en lice, NeWS (Network Window System), développé par Sun a été définitivement abandonné.

    La plus grande confusion régnant au sujet du véritable nom de X, voici un court extrait du manuel X :

"The X Consortium requests that the following names be used when referring to this software :
X
X Window System
X Version 11
X Window System, Version 11
X11

X Window System is a trademark of X Consortium, Inc."

Le système X Window

Architecture

Le serveur X

C'est essentiellement dans l'arbitrage que se situent les difficultés de conception : un serveur X est susceptible d'avoir plusieurs clients. Ces clients tournent concurremment et utilisent les mêmes ressources. Le serveur X doit donc prendre en charge la gestion, le partage et la distribution de celles-ci.

De part la volonté de son concepteur (Bob Scheifler), le serveur X n'offre que des services de très bas niveau. D'autres systèmes tels que MS-Windows permettent de créer d'un seul appel un bouton ou un menu. Le serveur X, lui, ne sait qu'ouvrir et fermer des fenêtres, sans décoration, nues. C'est l'application qui devra, dans le cas du bouton, dessiner la bordure et le label.

Requêtes et événements


Figure 3 : Requêtes et Evénements

Les événements quant à eux peuvent être classés en 2 catégories :