Spring 2012





Copyright © 1987 by the Association for Computing Machinery, Inc. Permission to make digital or hard copies of part or all of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page.

This paper requires an MIT personal certificate for access: The X Window System

You only need to read a subset of this paper. This paper provides a good opportunity to try the approach of warming up by nibbling around the edges:

  • Start by reading the abstract, introduction (section 1), and summary (section 11).
  • Next, read just the section titles. Once you have a picture of where the authors are coming from, where they are going, and the route they are taking, you are in a much better position to dive into the real meat of the paper.
  • Read sections 2 (Requirements), 3 (System Model), and 7 (Exposures).
  • The other sections (sections 4-6 and 8-10) are optional reading.

While reading the X Windows paper, keep in mind that a client requests a service and a server provides it. Relative to the display, the X server is running locally (and controlling the display hardware), and the X client may be running remotely (but wishes to display information to the user). For example, suppose that you are sitting in Cambridge and running a database application on a computer in California. You may think of yourself as a client, and think of the database application as a server. But from X's point of view, the database application is the client, and the computer you are sitting in front of is the server. The database application wishes to draw windows, but only the X Windows server (running on your local computer) is permitted to directly manipulate your screen. Thus, the database program must issue (display) requests, which the X server satisfies.

This is a nice "systems" paper to read because it describes a real, working system and it explains the reasons choices where made from among design alternatives, even pointing out when choices were arbitrary. Furthermore, it is written for the most part in plain English with a minimum of jargon.

You may also find it interesting to read "Myth: X Demonstrates the Power of Client/Server Computing" (pages 127-128) in The UNIX-HATERS Handbook for a different perspective on the X Window System. Are the problems they identify a direct consequence of the design goals mentioned in the initial paper, or are they an implementation artifact? Notice that the UNIX-HATERS Handbook was written in 1994 and the X Window System of today may have resolved some of their problems.

Questions or comments regarding 6.033? Send e-mail to the 6.033 staff at or to the 6.033 TAs at .

Top // 6.033 home // $Revision: 28 $, last modified on $Date: 2009-02-06 16:40:46 -0500 (Fri, 06 Feb 2009) $ GMT by $Author: cowling $