The X Window System® has become widely accepted by many manufacturers. X provides network transparent access to display servers, allowing local and remote client programs to access a user's display. X is used on high performance workstation displays as well as terminals, and client programs run on everything from micro to super computers.
This paper describes the trade‐offs and basic design decisions made during the design of X Version 11. We presume familiarity with the paper describing X Version 10.
File systems coordinate simultaneous access of files by concurrent client processes. Although several processes may read a file simultaneously, the file system must grant exclusive access to one process wanting to write the file. Most file systems consider processes to be antagonistic: they prevent one process from taking actions on a file that have any chance to harm to another process already using the file. If several processes need to cooperate in a more sophisticated manner in their use of a file, they must communicate explicitly among themselves.
The next three sections describe the file system procedures used by clients for using and sharing files. Section Two discusses how a client gains access to a file and how a client can respond if the file system asks it to give up a file it is using. Section Three discusses the mechanism by which a client might ask to be notified that a file is available for some access. Section Four discusses a controlled type of file access that lets clients read and write the same file at the same time.
Section Five comprises three examples of the cooperative features of the file system taken from the Xerox Development Environment. Section Six discusses the subtleties of writing the call-back procedures that clients provide to the file system to implement interprocess cooperation. Section Seven discusses the implementation of this file system.
Designers of portable software often trade speed for generality. Production software, on the other hand, must usually be tailored to the specific hardware to achieve performance goals. The X11 sample server is an implementation of the X Window System protocol. By providing the procedure hooks to tailor code, it allows implementors to decide this trade‐off themselves. This article discusses the programming techniques used to achieve portability in the sample server.
scite is a Brooklyn-based organization that helps researchers better discover and understand research articles through Smart Citations–citations that display the context of the citation and describe whether the article provides supporting or contrasting evidence. scite is used by students and researchers from around the world and is funded in part by the National Science Foundation and the National Institute on Drug Abuse of the National Institutes of Health.