Simpel gezegd kan XDM (de X Display Manager) worden gezien als een grafische vervanging van de 'login' prompt van de tekstgeöriënteerde opdrachtregelomgeving. In werkelijkheid kan het eigenlijk veel meer dan dat.
Kenmerkend zou het moeten worden opgestart als de 'root' gebruiker (of de opstartscripts van het systeem) bij het aanzetten van de machine, en krijgt de gebruiker een grafische loginprompt gepresenteerd. Zodra de gebruiker is ingelogd, beheert het de X sessie van de gebruiker; dat wil zeggen dat het de uitvoering van hun window manager en toepassingen initieert.
Dit zou kunnen worden beschouwd als een typische "simpele lokale machine login' configuratie, zoals ze standaard geïnstalleerd worden aangetroffen bij vele Linux distributies. Echter XDM kan ook remote X servers beheren en remote 'X terminals' voorzien van loginprompts. Samengevat is het niet beperkt tot de lokale machine - het kan eenvoudig andere machines verbonden via een netwerk beheren.
XDM is een utility waarvan veel kan worden geconfigureerd en in dit document wordt slechts "oppervlakkig" behandeld wat er mee kan worden bereikt. Het is de bedoeling van dit document dat er net voldoende informatie in staat dat je daarmee je X terminals en toepassingsservers kunt configureren om ze met elkaar te kunnen verbinden. De lezer wordt doorverwezen naar the Section called Bronnen voor meer informatie over de hierin besproken onderwerpen.
Een opmerking over de beveiliging: X (in zijn standaardconfiguratie) en XDMCP zijn niet bepaald veilig. Ik veronderstel dat je X draait op een "vertrouwd" netwerk en dat de beveiliging er niet toe doet. Raadpleeg voor details over het verscherpen van je X connecties (en meer details over het gebruik van de netwerkmogelijkheden van X) het document "Remote X Applicaties" dat ook onderdeel uitmaakt van de LDP (zie the Section called Bronnen).
Deze term zou kunnen worden gebruikt om daarmee diverse configuraties te bedekken, maar op z'n eenvoudigst, is het een machine met een netwerkverbinding, een toetsenbord, muis en monitor, geconfigureerd voor het draaien van het X Window Systeem om een verbinding te maken met een toepassingsserver die zich ergens op het netwerk bevindt.
Er bestaan diverse configuraties voor een 'X terminal' met variërende niveaus aan functionaliteit, variërend van terminals zonder disk tot volledige X werkstations.
Voordat ik verder ga, moet ik eerst wat termen uitleggen die ik in dit document zal gaan gebruiken. Wanneer het over X gaat, bestaat er nogal wat verwarring welke faciliteiten aan wat worden geleverd. Dit is vooral van toepassing wanneer je gedistribueerde sessies over een netwerk met X terminals in aanmerking neemt. Ik zal de onderstaande beschreven termen gebruiken.
Hier gaat het om een machine zonder lokale disks, die opstart vanaf een EPROM (of iets vergelijkbaars) en een netwerkverbinding met een server maakt. Het verkrijgt zijn netwerkconfiguratie, besturingssysteem, systeemconfiguratie en alle toepassingen van de server. Zodra het echter is geboot, is dit hetzelfde als een 'dumb X terminal' (zie verderop). Kenmerkend wordt voor het booten bij deze configuratie gebruik gemaakt van een combinatie van de volgende netwerkprotocollen: BOOTP, DHCP, TFTP, enz. Raadpleeg de the Section called Bronnen voor een aantal referenties waarin gedetailleerd wordt beschreven hoe een diskless X terminal op te zetten.
Dit is een machine welke boot in een besturingssysteem vanaf zijn lokale disk en het 'X server' programma start en niet meer dan dat. Er moet een manier zijn om een loginprompt op de machine te tonen, om een gebruiker de mogelijkheid te bieden in te loggen op een 'toepassingsserver' die zich ergens op het netwerk bevindt.
Dit is vergelijkbaar met een dumb X terminal, maar het voorziet in de optie om op de lokale machine zelf in te loggen, vandaar dat het heel goed kan dienen als standalone werkstation (d.w.z. zonder netwerkconnectiviteit) als dat nodig is. De meeste distributies kunnen kant-en-klaar als een standalone X Werkstation met grafische loginprompt worden geconfigureerd.
In de samenhang van dit document, gebruik ik de term 'toepassingsserver' om een machine te beschrijven die de toepassingen (X clients) levert die onze X terminal zal gaan draaien. Dit kan van alles zijn, van editors tot browsers tot de feitelijke 'Window Manager' zelf.
Dit is het programma dat de display van een machine met een fysieke console (display, toetsenbord, muis, enz) beheert. Het kan worden gezien als een gecombineerde driver voor de grafische kaart, het toetsenbord en de muis. Het zal deze faciliteiten als een service aan X clients leveren (vandaar de term 'server'). Raadpleeg voor meer details alsjeblieft de X User Howto in the Section called Bronnen.
Dit is een toepassing dat het gebruik van een X server vereist om invoer (toetsenbord en muis) en uitvoer (display) te benaderen. Een X client kan geen uitvoer produceren zonder de services van de X server. De X server kan lokaal draaien (op dezelfde machine, zoals het geval is bij een X werkstation) of elders op het netwerk (zoals het geval is wanneer een X terminal een verbinding maakt met een toepassingsserver).
Uit bovenstaande beschrijvingen, kan een X Werkstation worden gezien als bestaande uit een dumb X terminal en toepassingsserver draaiend op dezelfde machine.
In dit document zal de architectuur van de diverse hiervoor genoemde opties worden bekeken en zal worden beschreven wat de rol is die XDM op zich kan nemen bij de configuratie daarvan.
XDM is verantwoordelijk voor het leveren van een loginprompt aan de gebruiker en het initiëren van hun X sessie. Het kan lokale sessies beheren (d.w.z. mensen die op een X werkstation inloggen) of sessies op remote machines, via een verbinding met een toepassingsserver, vanaf een diskless of dumb X terminal.
XDM zou kenmerkend draaien op een toepassingsserver, om het gebruikers mogelijk te maken in te loggen en toepassingen vanaf die server uit te voeren.
Er zijn 2 voornaamste wijzen waarop XDM kan samenwerken met een X server:
XDM accepteert query's van de X server
XDM beheert de X server
De communicatie tussen XDM en de feitelijke 'X server' (de machine met het fysieke scherm/toetsenbord/de muis/enz) wordt afgehandeld via XDMCP, het 'X Display Manager Control Protocol'.
Hierdoor kunnen X servers query's uitzenden naar servers waarop XDM draait. Effectief moet de X server aangeven 'Ik heb iemand die in wil loggen, geef me alsjeblieft een inlogprompt'. In de bewerkingsmodus zal XDM niets doen totdat hier door je X server om is gevraagd.
De query van de X server kan één van de volgende 3 vormen aannemen:
Direct query: de X server legt contact met een genoemde host, met het verzoek dat XDM op die host een loginprompt op zijn display presenteert.
Broadcast: de X server verstuurt een broadcast bericht naar het netwerk, en de eerste server met daarop XDM draaiend, die reageert op de broadcast zal degene zijn die de loginprompt op zijn display presenteert.
Indirect query: de X server legt contact met een genoemde host, maar vraagt het naar andere hosts die het kent op het netwerk. De genoemde host zal dan de gebruiker een lijst met hosts geven waaruit het kan kiezen, en zal dan de communicatie initiëren met de gekozen host wat er in resulteert dat de gekozen host een loginprompt presenteert op het display van de X server.
Er bestaan nog diverse andere opties, maar die zullen hierin niet worden beschreven, raadpleeg hiervoor de XDM en XDMCP documentatie the Section called Bronnen.
Als je een set machines hebt (b.v. diskless of dumb X terminals) die gewoon worden gebruikt om er een X server op te draaien, alle ontworpen om een loginprompt te leveren aan een enkele toepassingsserver, dan is het mogelijk XDM zo te configureren op de toepassingsserver dat het met elke X server weer een verbinding maakt en de loginprompt automatisch op elke display presenteert.
In deze bewerkingsmodus, zal XDM actief een loginprompt 'voortbrengen' aan elke opgesomde X server die het kent, zonder te wachten op een query van de X servers zelf.
In dat geval staan in het configuratiebestand 'Xservers' (zie verderop) alle machines (zonodig inclusief de lokale display) met wie XDM een verbinding dient te maken om zijn loginprompt weer te geven.
Deze configuratie, wanneer gebruikt zonder remote X servers in de configuratie, is de typische configuratie die wordt gebruikt voor een X werkstation, om een gebruiker een grafische login op de lokale machine waarop hij werkt te presenteren. Zoals eerder aangegeven, zullen de meeste distributies deze configuratie 'voorgeconfigureerd' ondersteunen om de gebruiker een lokale grafische loginprompt te presenteren.
Noot: XDM moet toestemming hebben om een verbinding met de X servers in kwestie te maken - dus het toegangsbeheer op de X servers moet dienovereenkomstig zijn geconfigureerd.