X is a software system that allows programmers to develop portable graphical user interface applications. This section will introduce you to X and detail some of its advantages and disadvantages.
The following topics are discussed:
What is X?
Why X?
History of X
Why not X?
The X Window system permits a user sitting at one machine to run programs on a remote machine but still interact with the program locally. X is in effect one way for different systems to interface with each other. It will let a program run on one computer and yet display its out put on another computer, even when the other computer is of a different species. The program will display its output on the local machine, accept keyboard and mouse input from the local machine, but will execute on the CPU of the remote machine.
The local machine will typically be a workstation, Macintosh, PC or a dedicated X terminal. The remote machine may be a workstation, a minicomputer (eg VAX) , a mainframe or even a super computer (eg Cray). It is also possible (and highly likely) that the local machine and the remote machine are in fact the same machine. With X windows you have the flexibility to make this choice, without having to change the program!
In summary, X is a distributed, intelligent, device independent, operating system independent, windowing system.
![]()
As recently as 1984, punched cards were still being used at a major institution (UWA Engineering Faculty). This offered a high degree of independence between the location of the user and the machine that the program was being run on (typically the user would be at the coffee shop or at home in bed), but had some major shortcomings.
Most sites have long been based around the character terminal. These are typically connected to the central host computer via serial lines running at between 1200 and 19200 baud. With fairly basic terminals, such as the DEC VT100, you have a single screen of 80 characters by 24 lines. On a serial line then a complete screen refresh would take between 1 and 16 seconds. Running a program on a remote machine is not difficult, all that you have to do is to log in to the remote machine (eg via telnet or rlogin) and run it. The output will come directly to your screen.
The situation would be somewhat different, however, if you
were wanting to run graphics. A basic graphics terminal with 512
x 512 x 4 bit-planes resolution would require 128 kB of data for
a complete screen refresh. Obviously this would make use of such
a terminal rather tedious over a serial line, requiring over a
minute for each screen refresh even at 19200 baud. Even if the
terminal was directly attached to the host computer via ethernet
(10 Megabit/sec), the network load would be unacceptable. With a
more advanced graphics screen, eg 1280x1024x8 bit-planes
requiring 1280 kB per screen, the situation would be even worse.
The solution to the above problem is to provide an
intelligent terminal that understands how to draw graphics
objects without requiring bit maps to be continuously sent across
the network. In fact, X is so efficient that some vendors claim
that you can run X-windows across a 9600 baud serial line. (See
the faq on X).
In 1984 the Massachusetts Institute of Technology (MIT) formed Project Athena. The goal was to take the existing assortment of incompatible workstations from different vendors and develop a network of graphical workstations that could be used as teaching aids. The solution was a network that could run local applications while being able to call on remote resources. They thus created the first operating environment that was truly hardware and vendor independent - the X Window System.
By 1986 outside organisations were asking for X. In 1988, MIT officially released version 11 release 2. The most recent version is release 5, which was released in September 1991.
X has now reached the level of success that most unix vendors incorporate it as standard into their own windowing systems, and it is widely available for other platforms such as the Macintosh and the PC.
In Perth at the moment X, and X windows applications, is at
the beginning of a strong growth stage. Government Employees
Superannuation Board (GESB) has recently (December 1991)
committed themselves to an Ingres 4GL Windows application (Ingres
4GL Windows is based on X windows). SECWA will be developing
their first Ingres 4GL Windows applications this year. SECWA's
Transmission Branch is looking to establish a project into the
future of the desktop, and X windows will form a part of the
solution there. In short, the next few years will probably see a
demand for people with some knowledge of X (though to put things
in perspective there will probably still be a much greater demand
for people to sit at little boxes writing boring Cobol programs).
Given that X is the universal cure for all ills, why should anyone ever not use X?
The device independence and distributed nature of X does incur an overhead. On most Unix workstations approximately 16 MB of RAM is recommended for good performance in X (DOS PC implementations of X windows normally require 2MB of RAM to even start and recommend 4MB of RAM for reasonable performance).
X also takes up more disk space than custom, hardware dependant windowing systems. On the Sun SPARCstation range, OpenLook plus all the programming libraries takes up about 30MB. Compare this to the fact that the SPARCstation 1 was only sold with a 100MB disk when it first came out, and that this was quite adequate when running the SunView windowing system.
On older systems, X may also incur a performance overhead. An example of this is with the Intergraph range of workstations. Their custom windowing system, EnvironV, had hardware support in their old series of machines (the 100 and 200 series). You can run X windows on these machines, but without the hardware accelerators the windowing system is sloooooooooow.
However, given that disk and memory prices are forever becoming cheaper, these limitations of X are not overwhelming ones. As far as I know all unix workstation vendors are currently selling their machines with an X based windowing system as standard.