The X Protocol was developed in the mid 1980's to provide a network-transparent graphical user interface (GUI) for the UNIX operating system. The X server represents the display server, while X clients are software applications started by the user. Although X clients may talk to Xlib directly (as illustrated on the left), it is now much more common to use a GUI toolkit such as GTK+1 or QT2 (right).
Historically, the X client application would typically run on a remote machine, such as a computational server which had greater computing power than the local display machine. Nowadays, with the ubiquity of PCs, applications are often run on the same machine as the X server. Regardless of whether an application is run remotely or locally, X uses an asynchronous network protocol for communication between the X client and the X server. All the details of the hardware and operating system are hidden from the application. This greatly simplifies the development of X client applications and makes X-based apps highly portable across numerous operating systems. This portability is one reason for X Windows continuing appeal –“resurgence” might be more accurate -- despite the age of the technology.
Although network transparency and application portability have continued to be highly desired, other aspects of X Windows, such as the original graphics drawing and font-handling systems, could not meet the demands of modern desktops like KDE and Gnome. As a result, a number of extensions to X have been created to resolve serious shortcomings in the original technology. In the next few slides, we will look at the XRender and XFT extensions which are partially responsible for the resurgence of X and the wider acceptance of Linux as a desktop OS.
1. The Gimp Toolkit, http://www.gtk.org. The Gimp toolkit is used in both Gnome and Firefox.
2. Trolltech's QT toolkit, http://www.trolltech.com. QT is used as the foundation of the KDE desktop.