Verder Terug Inhoud

2. Algemene vragen

2.1 Wat is het X Window systeem; wat is de filosofie achter X?

Ik zal proberen deze vragen te combineren.

Het X Window Systeem ook wel ``X'' genoemd (maar niet XWindows !) is een combinatie van een aantal losse onderdelen:

De X display server is een programma welke op een systeem draait met een ``bitmapped display'' (bijvoorbeeld een PC met een vga kaart en monitor). De server zorgt onder andere dat de input van de gebruiker (muis, toetsenboard, joystick e.d.) wordt doorgeven aan de Xclient (bv. een applicatie).

Xclients zijn de programma's welke gebruik maken van de Xserver om onder andere de output op het scherm te laten zien en input van de gebruiker in te lezen.

Een van de ideeën achter X is dat er standaard library's zijn voor de overeenkomstige eigenschappen (zie boven) welke een grafisch werkstation heeft. Deze library's zijn op bijna elke UNIX (met X) aanwezig.

Het X Window Systeem is ontworpen door het M.I.T.. Zij zijn destijds uitgegaan van een aantal standaardonderdelen van een werkstation: display, keyboard, muis. Vervolgens hebben de ontwerpers proberen te achterhalen wat de primitieve onderdelen zijn van een windowing system bijvoorbeeld: een window maken, tekenen in een window, input van keyboard en muis, en nog meer van zulk soort onderdelen.

Doordat er in X standaard library's zijn voor primitieve functies (keyboard, muis e.d.) is het gemakkelijker om X applicaties voor UNIX te maken omdat de functies op elk systeem hetzelfde zijn.

X zelf is geen ``Graphical User Interface'' (GUI): de makers hebben X zo ontworpen dat wel elke GUI mogelijk is door gebruik te maken van de primitieve library's (Xlib). X dwingt dus geen GUI op aan de gebruiker of programmeur. De window manager + applicaties bepalen het gezicht van X (zie de WindowManager).

X heeft door de modulaire opbouw (de Xserver is bijvoorbeeld apart van de Xclient) mogelijkheden om van een netwerk gebruik te maken. Het is mogelijk om een applicatie op een andere computer (over het netwerk) te draaien en de grafische uitvoer op het eigen scherm te zien. De Xclient (de applicatie) merkt er niets van dat de gebruiker bijvoorbeeld in een totaal ander gebouw zit (of andere stad :). X maakt het netwerk voor de gebruiker dus transparant (hij/zij merkt er niets van). Voor meer informatie over de filosofie van X zie de website van OSF X consortium, en ``man X''.

2.2 Wat hebben de Xclient en Xserver met elkaar te maken?

Om te proberen duidelijk te maken wat een X client en een X server is, zal ik een voorbeeld geven.


server:                              Xterminal(of werkstation)

|---|                                      |========|
|   |                [2]                   |   X    |
|   |  ----->     ----->    ---->          |========|
|   |############### Netwerk ###########|--------------|
|---|  <----      <-----    ---->       |--------------|
Vegas                [1]                     Orbital

Xclients draaien                        De Xserver draait 
   op Vegas                                op Orbital

[1] Toetsaanslagen, muis events enz. [2] Grafische output applicatie enz.

Vegas is een computer zonder monitor, muis, of toetsenbord; Orbital heeft wel een scherm, muis en dergelijke. Stel ik wil een programma draaien op Vegas en ik wil ook nog zien wat het doet (zonder monitor erg lastig). Wat doe ik dan: ik start een programma op Vegas en zeg dat het display Orbital:0 is. De Xclient (het programma op Vegas) stuurt X-protocol verzoeken naar Orbital waar op dat moment een Xserver draait. Als Vegas permissie heeft op Orbital om daar zijn output te laten zien, dan zal er een window op Orbital te voorschijn komen.

Omdat ik geen toetsenbord op Vegas heb, is het erg lastig om commando's aan het programma te geven. Maar ik heb een werkstation met alles erop en eraan: als ik iets typ op Orbital dan wordt dat vervolgens (via het X-protocol) weer verzonden naar de Xclient (het programma op Vegas). Alle commando's (beweging van de muis, toetsenbord klikken enz...) worden dus (via het X-protocol) van de Xserver doorgegeven aan de Xclient [1]. De client stuurt via het X-protocol de grafische output over het netwerk [2] naar de Xserver waar het vervolgens op het scherm te zien is.

Dus om de verwarring nog groter te maken: de Xserver draait op het werkstation (Orbital) en de Xclient op de server (Vegas)!

N.B.: Als je nu een programma op je eigen werkstation start, dan draait natuurlijk zowel de Xserver als de Xclient op jouw eigen systeem.

Je kunt eigenlijk zeggen dat de Xserver iets aan te bieden heeft, namelijk een bitmapped display en user-I/O. De Xclient maakt daar gebruik van. De manier waarop de Xclient met de Xserver communiceert noemt men het X-protocol.

Dus je kunt met X een programma draaien op een ander systeem met het gevoel dat het op je eigen werkstation draait (je gebruikt immers je eigen muis en scherm). Op dit moment is het netwerk voor de gebruiker volledig transparant (hij merkt er niets van).

2.3 Wat is XDM en XDMCP?

XDM (X Display Manager) is zoals de naam al zegt een programma wat verschillende X displays onder controle heeft. Deze displays kunnen lokaal zijn (op je werkstation) of remote (bv. een X terminal). XDM is te vergelijken met ``login'' op de console: het vraagt om een login naam en password (in een window), als deze kloppen worden een aantal init files gerund en kan men werken onder X (dit noemt men een sessie).

XDMCP (X Display Manager Control Protocol) is het protocol waarmee onder andere de login service (login prompt) gevraagd wordt aan een X Display Manager.

In de X Display Manager wordt verder ingegaan op de configuratie van XDM.

2.4 Waar kan ik meer informatie over X krijgen?

Een uitstekende plaats om informatie over X te krijgen is de site van Kenton Lee. De officiële X consortium site is nu http://www.opengroup.org/tech/desktop/x/. Ook de moeite waard is deze (slashdot-achtige) site over X http://www.x11.org/.

Andere sites kun je vinden via http://www.nl.linux.org/.


Verder Terug Inhoud