X Windows The X Windows protocol specification offers a combination of a graphics and a communications interface. This enables an application which uses X Windows to run on either a single machine supporting both the application and the screen or it enables the application to be on one machine with the screen supported on a second system. X Windows originated in MIT as part of Project Athena supported by DEC and IBM. There are now a wide range of implementations supported on Unix, VMS and IBM operating systems (see Fig. 1). X Usage The terminology used in X is unusual. The application 'end' is described as the 'Client' and the screen 'end' is described as the Server - as it serves the graphics to the user. The setting up of an X dialogue is also unconventional and is shown in Fig. 2. The user first makes a 'call' to a machine supporting an X client application. This call can be by any means which a user would normally use to call a host from a terminal or workstation, eg by XXX, a TCP/IP terminal call, a DECNET terminal call or whatever. After logging in as normal to the host machine, quoting a name and password if demanded, the user then calls up an X application. The most usual one would be 'xterm' which offers a terminal emulator over X thus enabling other applications to be started. The user would then probably clear his original call to the host machine and the X session would be started by the application machine calling back to the user and opening a window on his display. The mechanism employed, that of the host (client) calling the user (server) can be repeated a number of times creating multiple windows on the user's screen. A typical X session is depicted in Fig. 3, the user has created three windows on his screen from three different hosts. In reality this could be from a mail server, an archive server and a compute server. It is quite normal for small areas of the screen to be 'donated' to a server such as a mail server in an iconised form and the full window only opened up when new mail arrives or the user wishes to send out mail. X Structure The structure of an X conversation is shown in Fig. 4. The protocol, known as X 11, runs over a simple reliable byte stream and thus can be readily mapped over different communications infrastructures. The purpose of the Toolkit is to add functionality to aid programming and provide some consistency to applications. Policy decisions, such as whether to use overlapping or tiled windows, pop up or pull down menus and other 'look and feel' decisions is the responsibility of the top level of the structure. X 11 does not impose any restrictions on such policy matters. Typical functions provided in X 11 are illustrated in Fig. 5. Fig 6 describes typical functions provided by the X Toolkit. The X toolkit is provided with the main X distribution tape and users can expect to find it provided by all suppliers supporting X. Many manufacturers, for example DEC, also provide their own toolkit offering other features. Use of such toolkits may be attractive to implementors but will tie such implementations to a particular manufacturer. Fig. 6 illustrates the main features provided by a Window Manager. A window manager is an optional feature that a user may employ that enables control over the size and physical location of windows on his screen. Without the manager only an application can determine the size and position of the window it created on the screen. If the user is on a workstation then the window manager would normally also reside on the workstation. If the user is on a X window terminal then he must select a machine on which to run the manager. This machine need not be one which is itself running an X client though normally would be. Sample Implementation DEC provide a good example of an X implementation as they have used it as a unifying force between VMS and Ultrix. This is illustrated in Fig. 7. As well as the link with Ultrix later versions of VMS will allow interaction between VMS and any Unix implementation supporting X. The structure of the software is also shown with the exposed edge of each layer indicating a programming interface available to users. X Network Performance Fig. 8 illustrates the setup used to measure typical network bandwidths used by X. Figs. 9 and 10 detail the results in packets/sec and kb/s while repeatedly performing the indicated X function. The results indicate that a bandwidth of under 19.2 kb/s will tend to cause delays to the user that could prove unacceptable in practice. Fig. 11 indicates the actual rates generated by a 'real' user on an X terminal over a period of 1 and 2.5 hours. X Windows Terminals X Windows terminals are now making an impact on the marketplace. There are already a wide spread of capabilities and Fig. 12 indicates some of the features that should be taken into consideration when selecting a terminal. Fig. 13 lists four of the more common ones and indicates price and performance. Alternatives X is not the only windowing protocol in the marketplace, although it is the front runner. Fig. 14 lists the advantages and disadvantages of the X 11 protocol, Fig. 15 demonstrates the various competing desk top packages in the marketplace whilest Fig. 16 compares the SUN Network extensible Windowing System (NeWS) to X. Although NeWS is technically preferable to X, there is much more doubt as to whether they would be prepared to put NeWS in the public domain and what remaining licensing problems there would be with Adobe Systems who own the rights to Postscript which is integral to NeWS. Standardisation Work After a long period where the standards bodies have ignored X, the ANSI X3H3.6 committe is now promoting X as an open standard. They have produced a draft which puts X in a standards 'framework' and are promoting this within ISO, proposing that its progress to a standard is accelerated by the 'Fast Track' procedure. BSI, the UK standards body, has considered the proposal and would be prepared to support such a move under the following conditions:- * Defined mapping to the OSI stack, ie over Session, Transport or Network? * Production of Conformance statements * Interface (language bindings) should be produced. Summary X is by no means perfect but its widespread take-up indicates the the academic community cannot afford to ignore it. It will no doubt be replaced but could perform a valuable interim role for a number of years.