4.6. Clients and Servers   

In the X Window System we tend to talk about X client's and X servers.

An X server, or display, is the controlling program that talks to the graphics hardware, the keyboard and mouse. This is the program that you request to display windows, draw lines, and provide keyboard or mouse events. A display can consist of multiple screens, linked together by the keyboard and mouse. As long as a single user is limited to a single workstation, the multiple screens constitute a single display.


The server :


(i) Allows access to the display by clients.
(ii) Does two-dimensional drawing, freeing up the client from
processor intensive graphics.
(iii)Keeps track of resources (such as windows, cursors, fonts and
graphics contexts) that are shared between clients.
(iv) Allows distributed processing

The application programs that make requests to the server (eg for windows to be displayed, for a line to be drawn) are known as X clients. The client and the server may communicate via inter process communication or a network library. The actual process used for communication is transparent to the applications.

While the above definitions of the client and the server seem reasonable in the above context, in practice many people get confused. You may be running a program on a Cray and displaying it on the NCD X terminal on your desk. In this case the application running on the Cray is the X client and the process running on your NCD X terminal is the X server. The confusion arises when people start being lazy and calling the Cray the X client and the terminal the X server, rather than referring to the processes running on each.