Vous êtes sur la page 1sur 15

1

X WIndnws ( X11 )
coursurec.cnrs.fr
2
X Windows
r 1994 : Jean-PauI Gautier
3
PIan
r Prsentation gnraIe
r CIient / serveur
r Gestionnaire de fentre
r Session X11
r Les ressources
r La scurit
4
Prsentation
r DveIopp dans Ie cadre du projet ATHENA du MIT partir de
1984.
r Distribu gratuitement sous forme de programmes sources
depuis 1987
Conu pour tre facilement portable d'une station une autre.
Tous les constructeurs de stations Unix ont install X11 en
standard.
r Cration du X consortium en 1988
r Bas sur un modIe cIient-serveur
r On en est Ia version X11R6
5
PhiIosophie du systme X Window
r Gestion des ensembIes cIavier / souris / cran(s)
r Un serveur X est charg de grer Ies accs Ia consoIe
Permettre l'accs l'cran par les clients X.
Interprter et excuter les messages (Requtes) envoys par les
programmes (clients) fonctionnant sous X.
Transmettre aux clients X les vnements lis au clavier et la
souris.
r Le serveur X accepte des cIients :
locaux, s'excutant sur la mme station que le serveur.
distants, s'excutant sur une station connecte au rseau local.
r L'interaction entre Ie serveur et ses cIients se fait au travers du
protocoIe X
Caractristiques : asynchrone, bufferis, indpendant du matriel
Gre un modle trs simple de fentres rectangulaires organises
en arborescence.
6
CIient / Serveur (1)
C!Icnt
LOCAL DISTANT
Scrvcur
Evcncmcnts
Rcqutcs
7
CIient / Serveur (2)
r Un serveur = nom_de_station:num_terminaI.num_cran
vega.urec.fr:0.0
:0.0 <=> localhost:0.0
r Une appIication trouve son serveur par :
la variable d'environnement DISPLAY
en ksh : export DISPLAY=chagaII:0.0
en csh : setenv DISPLAY chagaII:0.0
l'option -display des clients X11
xterm -dispIay chagaII:0.0
8
GUI & API
r GUI - GraphicaI User Interface
L'interface graphique d'une application avec un utilisateur
souris, menu, boutons, ...
Elle obit une spcification de "Look and Feel"
OpenLook : OpenWindows impIantaton de Sun
Motif : Ie tooIkit distribu par I'OSF (Open Systems Foundation)
Athena
r API - AppIication Programming Interface
L'interface de programmation d'une application :
bibIiothques de fonctions, types de donnes, ...
(Xlib, Xt, Xview)

Xtnn!kIt
(IntrInsIcs)
Xtnn!kIt
(IntrInsIcs)
Xtnn!kIt
(IntrInsIcs)
bnItc nutI!s bnItc nutI!s bnItc nutI!s
A!IcatInn A!IcatInn A!IcatInn
C|lent 1 C|lent 2 C|lent 3
LIbraIrIc X LIbraIrIc X
Intcrfacc dc Transnrt
Intcrfacc dc transnrt
Intcrfacc dc transnrt
Scrvcur X11
PartIc dcndantc
dcs rIhrIqucs
PI!ntc
cran
PI!ntc
snurIs
PI!ntc
c!avIcr
statInn 1
statInn 2
tcrmIna! X
10
Gestionnaire de fentres
r CIient X particuIier qui gre Ies fentres des autres appIications
(window manager)
Titre
Placement (fentres et icones)
Taille
Lancement / terminaison
r X n'impose pas un styIe d'interface utiIisateur, c'est Ie
gestionnaire de fentre qui Ie dtermine:
twm : fourni dans la distribution de X11Rx.
olwm : gestionnaire de Open Windows (Sun).
mwm : gestionnaire de motif, devient le standard de nombreux
constructeurs (IBM, HP, Silicon, ..).
r Un fichier de configuration est associ au gestionnaire
.twmrc, .olwmrc, .mwmrc
11
Une session X11
r Iancement : xinit o xdm
r xinit
Lancement d'un serveur X.
Excute le script $HOME/.xinitrc si ce fichier existe.
Excution des commandes de configuration
Lancement des appIications
Lancement du Gestionnaire de Fentres
la fin de .xinitrc, termine l'xcution du serveur.
r xdm
Gestionnaire de session autorisant l'utilisation systmatique de X.
Permet la gestion d'un ensemble de "displays" X
Au dbut d'une session utilisateur, xdm va xcuter un fichier
Xsession puis le fichier $HOME/.xsession s'il existe.
12
Les ressources
r Les appIications consuItent une base de donnes de ressources
couleurs, polices de caractres, libell des boutons, ....
une application X doit fournir la possibilit l'utilisateur de modifier
toutes les ressources qu'elle utilise.
r Une ressource est de Ia forme
Application.lment.sous-lment: valeur
Xterm*foreground: navy
HPterm*Font:: courb14
r Les ressources sont stockes :
dans le rpertoire lib/X11/app-defauIts fourni avec X11,
(un fichier par application).
dans un fichier $HOME/.XdefauIts.
r EIIes sont charges dans Ia mmoire du serveur X par Ia
commande : xrdb $HOME/.Xdefaults
13
xrdb
r X Resource DataBase
r Permet de grer Ie chargement dans Ie serveur de Ia base de
donnes des ressources.
L'accs une ressource se fait directement par une requte au
protocole X plutt que par une lecture de fichier.
--symboIs Liste des symboles dfinis pour l'appel de cpp.
--DsymboIe = vaIeur Dfinit un symbole pour cpp
-Ioad fichier Remplace la base par celle contenue dans
fichier
--merge fichier Fusionne la base contenue dans fichier et
celle qui est en mmoire.
-query Liste le contenu de la base.
-remove Destruction de la base de donnes du serveur
--edit fichier Modifie fichier pour prendre en compte les
modifications de la base.
14
La scurit
r gre au niveau des connexions au serveur
par dfaut, le serveur X11 donne toutes les facilits n'importe
qui sur le rseau pour accder ce qui est affich l'cran, ce
qui est tap au clavier.
r contrIe bas sur une Iiste de stations autorises.
L'administrateur peut crer le fichier /etc/X0.hosts
L'utilisateur peut utiliser la commande xhost
xhost + => supprime Ie contrIe d'accs.
xhost - => active Ie contrIe d'accs.
xhost -phoebe.urec.fr => supprime Ia station de Ia Iiste.
xhost +phoebe.urec.fr => ajoute Ia station Ia Iiste.
xhost => Iiste des stations autorises.
15
La scurit
r autorisation par utiIisateur : "magic cokies"
partage d'une cl entre les machines clientes et le serveur X.
le client doit fournir une cl au serveur X lors de l'ouverture de la
connexion.
mcanisme utilis par le serveur X uniquement pour les stations
n'appartenant pas la liste des stations autorises.
La cl est stocke dans le fichier $HOME/.Xauthority (droits
d'accs 600).
cration de Ia cI avec Ia commande xauth si on utiIise xinit
Iancement X : xinit -/usr/IocaI/bin/X :0 -auth
$HOME/.Xauthority
cration automatique avec I'utiIisation de xdm
Pour qu'un utilisateur A partage son terminal avec B, A doit
communiquer B la cl li son "display"
chez A : xauth extract/Iist
chez B : xauth add/merge

Vous aimerez peut-être aussi