Assignment 9

Read The X Window System paper by Scheifler and Gettys (reading #5), following the bulleted guideline below. 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.
  • Then, 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. In terms of 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 in California. From the point of receiving information, you are the client and the database program is the server. But from the point of view of display, the database program 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 where arbitrary. Furthermore, it is written for the most part in plain English with a minimum of jargon. As you are reading, consider the following issues:

  • Is the X Window System an example of the New Jersey ("Worse is better") or the MIT ("Do it right") school of system design? Think of concrete examples to support your claim.

  • Section 2 of the paper presents nine design requirements for the X Window system. See if you can think of examples of how these requirements affect X today. For example, the requirement of display independence allows I/S to purchase machines from different vendors for use in MIT server clusters, but all run X. Can you think of a drawback of the fifth requirement of X, The system should be capable of supporting many different application and management interfaces?

  • Where did the designers use (or violate) the following system design principles:
    • Modularity
    • Abstraction
    • Hierarchy
    • Layering

Write down your thoughts for at least one of the three issues above and bring to class for discussion. Also, bring in your answers to the exercises in Hands-on 2.