Module 2
Chapitre 03 - Environnements graphiques
1. Introduction
Les interfaces graphiques sous GNU/Linux reposent en grande partie sur le standard X-Window. Ce standard est né dans les laboratoires du MIT (Massachusetts Institute of Technology) dans les années 1984 pour fournir un environnement graphique adaptable aux nombreuses et diverses plateformes de l'université.
A l'époque, un seul serveur puissant servait d'unité de calcul pour tous les postes utilisateurs qui n'étaient que des terminaux (écran, clavier, souris). Ce système graphique était donc capable de lancer des applications graphiques clientes sur un serveur distant. X-Window est bel et bien composé d'une partie serveur et d'une partie cliente. C'est à partir de ce projet que sont nés les serveurs graphiques que nous utilisons aujourd'hui tel que XFree86.
En 1988, le X Consortium est créé au MIT qui deviendra en 1999 X.org, une association à but non lucratif qui se charge de superviser les développements futurs d'X-Window. La liste des membres de cette association est composée des plus grands constructeurs : HP, Sun Microsystems, SGI, IBM.
1.1 L'architecture de X-Window et ses limites
Ce projet repose sur le principe d'une application réseau client/serveur. Le serveur gère l'accès aux périphériques tels que la carte graphique, l'écran, le clavier ... Les applications graphiques (Navigateur, client de messagerie, éditeur de textes, ...) sont des clients du serveur X. Ces clients font des requêtes au serveur X et reçoivent les réponses via la Xlib, la librairie principale d'X qui permet d'interpréter des requêtes "simples" de clients pour les transformer en instructions "complexes" conformes au standard X-Window et interprétables par le serveur X.

Le concept X-Window est assez ancien et ne répond plus forcement aux exigences des utilisateurs d'aujourd'hui. Par exemple, l'évolution remarquable des cartes graphiques a nécessité de gros changements dans l'architecture d'XFree. La configuration de celui-ci semble assez laborieuse au premier abord pour cette raison.
Un autre problème vient du fait que la Xlib ne permet de dessiner que quelques formes primitives, et donc nécessairement des surcouches (toolkits comme Qt ou GTK) ont du être développées pour que les programmeurs puissent créer des widgets (fenêtre, boutons, boîte texte, ...) aisément.
1.2 Xfree
Thomas Roell, étudiant Allemand, commence en 1990 à porter X-Window en version X11R4 pour PC. Son projet se nomme alors X386, attire l'attention du X Consortium, et devient la référence pour PC. Le projet est finalement abandonné par Roell en 1990 moins d'un an après sa création. Le projet est repris en 1991 par quatre développeurs : David Wexelblat, Glenn Lai, David Dawes et Jim Tsillas qui rebaptisent le projet XFree86. Ce noyau de développeurs nommé core-team décide des évolutions du projet et accepte ou non les contributions extérieures.
1.3 Xorg
La core-team est considérée comme un frein par certains développeurs comme Keith Packard qui décide alors de forker le projet, c'est à dire de commencer un nouveau projet en partant de l'ancien, avec une nouvelle équipe de développement. Rappelons que Keith Packard a développé RandR et Xft2 qui ont permis à X d'afficher des polices anti-aliasées pour la première fois.
La core-team d'Xfree a finalement voté son autodissolution le 30 décembre 2003, estimant qu'elle ne représentait plus suffisamment la communauté de développement. La version 4.4 du projet est sortie le 29 février 2004 avec une nouvelle licence en version 1.1 qui a été l'objet de nombreuses controverses du fait de sa non compatibilité avec la licence GPL.
Xorg est maintenant un projet à part entière qui évolue très
rapidement par rapport à Xfree. Il a été intégré par défaut à la place
d'Xfree dans la majorité des distributions actuelles.