3. XDM

3.1. What is XDM

Put simply, XDM (the X Display Manager) can be thought of as a graphical replacement for the command line 'login' prompt. In reality, it can actually do much more than that.

Typically, it would be started by the 'root' user (or the system startup scripts) on power up, and would present a user with a graphical login prompt. It will then manage the users X session once they login - i.e. it will initiate the running of their window manager and applications.

This could be considered a typical 'simple local machine login' configuration, as may be found installed by many Linux distributions by default. However, XDM can also manage remote X servers and provide login prompts to remote 'X terminals'. In short, it is not limited to the local machine - it can easily manage other machines connected via a network.

XDM is a very configurable utility and this document will only just 'scratch the surface' of what may be achieved. This document aims to provide enough information to configure your X terminals and application servers to connect to each other. The reader is referred to Section 7 for further information on the topics discussed here.

A note on security: X (in its default configuration) and XDMCP are not particularly secure. I am assuming that you are running X on a 'trusted' network and that security is not an issue. For details of how to tighten up your X connections (and more details about using the networking capabilities of X) please refer to the 'Running Remote X Applications' Howto document, which is also part of the LDP (see Section 7).

3.2. What is an X terminal

This term could be used to cover various configurations, but at its simplest, is a machine with a network connection, keyboard, mouse and monitor, configured to run the X Windows System to connect to an application server somewhere on the network.

There are several configurations of 'X terminal' with varying levels of functionality, ranging from completely diskless terminals to full X workstations.

3.3. Some Terminology

Before I go any further, I ought to explain the terms I will be using in this document. When talking about X, there is quite a lot of confusion over what is serving facilities to what. This is especially true when you are considering distributed sessions over a network involving X terminals. I will be using the terms described below.

Diskless X terminal

This would be a machine with no local disks, that would perform its boot up from an EPROM (or similar) and utilises a network connection to a server. It would obtain its network configuration, operating system, system configuration and all applications from the server. Once booted however, this would be the same as a 'dumb X terminal' (see below). Typically this configuration would use a combination of the following network protocols in order to boot: BOOTP, DHCP, TFTP, etc. Refer to Section 7 for some references that detail how to build diskless X terminals.

Dumb X terminal

This would be a machine that boots from its local disk into an operating system, and starts the 'X server' program and nothing more. Somehow, a login prompt would be provided on the machine, to enable a user to login to an 'application server' somewhere on the network.

X Workstation

This would be similar to a dumb X terminal, but would provide the option of logging on to the local machine itself, hence would be quite capable of becoming a standalone workstation (i.e. no network connectivity) if required. Most distributions can be configured 'out of the box' as a stand-alone X Workstation, with a graphical login prompt.

Application Server

In the context of this document, I use the term 'application server' to describe a machine that will provide the applications (X clients) that our X terminal will want to run. This can include everything from editors and browsers, through to the actual 'Window Manager' itself.

X Server

This is the program that manages the display of a machine with a physical console (display, keyboard, mouse, etc). It can be thought of as a combined graphics card, keyboard and mouse 'driver'. This will provide these facilities as a service to X clients (hence the term 'server'). Please refer to the X User Howto in Section 7 for more details.

X Client

This is an application that requires the use of an X server to access input (keyboard and mouse) and output (display). An X client cannot produce output without the services of the X server. The X server could be running locally (on the same machine, as is the case with an X workstation) or elsewhere on the network (as is the case with an X terminal connecting to an Application Server).

From the above descriptions, an X Workstation could be thought of as consisting of a dumb X terminal and application server running on the same machine.

This document will be looking at the architecture of the various options listed above and will describe the role that XDM can play in configuring them.

3.4. What can XDM do

XDM is responsible for providing the user with a login prompt and initiating their X session. It can manage local sessions (i.e. people logging into an X workstation) or sessions on remote machines, via a connection to an application server, from a diskless or dumb X terminal.

XDM would typically run on an application server, to permit users to logon and run applications from that server.

There are 2 main ways that XDM can interact with an X Server: