Using X Window

Last revision August 6, 2004

Table of Contents:
  1. What is a windowing system?
  2. The X Window system: definitions and concepts
  3. Server startup on Unix workstations
  4. Using an X terminal, PC or Macintosh as an X server
  5. XDMCP protocol for remote X servers
  6. Starting clients
  7. Authentication
  8. Window operations

What is a computer windowing system?

Early computer systems interacted with users via a simple typewriter-like device. Later, video screens were developed, which eliminated paper and allowed some ability to control where output would be displayed. But interaction was still character based. English-like commands were typed, and text output resulted.

Modern computer systems usually contain a display with graphics capabilities and a pointer input device (mouse). Programs go beyond text-based input and output. They can draw lines or images on the screen and take actions according to the location pointed to by the cursor of the mouse.

An early problem with making programs that could use the graphics output and pointer input of modern computers was the lack of standards for interacting with the different hardware devices from different manufacturers.

A secondary problem was that, whereas these modern systems are multi-tasking, meaning several programs can run simultaneously, the system needed to arbitrate how the programs got access to the graphics display and input devices.

The purpose of a windowing system is to provide a device-independent standardized input and output graphical environment accessible to multiple programs, customizable and controllable by the user.

The windowing system provides a standardized library of subroutines for the programmer to use for getting input and displaying output. Manufacturers of different displays can modify the inner workings of these routines to access their hardware, but the interface to the user program remains the same.

The windowing system allows the program to create one or more windows on the display. It automatically directs output designated for one window to appear in the appropriate place. It handles problems such as the display of overlapping windows, or the temporary hiding of windows by the user. It generally allows the user to re-size the window and notifies the program so it can respond. It keeps track of which window is the current one for input from either the keyboard or the mouse, and notifies the program appropriately.

Generally, the windowing system has some provision for user customization. A preferences or initialization file lets the user control how the windows will look or operate, without having to do any re-programming.

Some common computer windowing systems are:

  • Classic Macintosh Finder and now Aqua under MacOS X.
  • Microsoft Windows 98, Windows 2000, etc. for Intel-based PCs
  • X Window - for all types of computers

Comments or Questions?