Officially the "X Window System," but also called "X Windows," "X11" or simply "X," it is an open source windowing system developed at MIT in the early 1980s. It was created to provide a common graphics rendering engine for Unix applications. Prior to X, CAD and scientific modeling applications that required graphics output used proprietary software to render images. X is also the de facto graphics engine in Linux desktops.|
Version X11 was released in 1987 and remains the current standard, having undergone many revisions. The X.Org Foundation (www.x.org) governs the X Window standards for Unix/Linux desktops, which evolved from XFree86 implementations (www.xfree86.org). Hummingbird's Exceed (www.hummingbird.com) and AttachmateWRQ's Reflection (www.wrq.com) are commercial X Window implementations for Windows desktops.
One of the unique features of X is that it allows applications to run on a network server, but be displayed on a desktop machine. This was very significant in the 1980s and 1990s when servers were far more powerful than user machines. In the early days of X, dedicated X Window hardware, known as "X terminals," were widely used. They accepted input, rendered output and performed no application processing.
The X Window Manager
X Window, by itself, generates borderless windows in fixed screen locations. It requires a "window manager" to add borders and buttons and the ability for users to resize and move the windows on screen. The Tabbed Window Manager (twm) has been the default X window manager, but more than three dozen others have been used, including AfterStep, Blackbox and Enlightenment. The KDE and GNOME user interfaces for Linux use Kwin and Metacity respectively as their window managers.
Server Runs in Client; Client Runs in Server
X Window was designed as a client/server architecture. The application is the "X client," and the software that accepts keyboard and mouse input and renders the images on screen is called the "X server." Communications between X clients and the X server is via the X protocol.
Since the user's machine handles user input and output, the X server always runs in the client machine. Applications (X clients) generally run in the server; however, they can also run in the client machine. For example, all applications in Linux desktops are X clients running in the same machine as the X server. See XIE and thin client.
The X Window server runs on your client, and the X Window client runs on your server. All's fair in love and computers!
Using the twm window manager, the two "xterm" windows (top and bottom) display output from applications in two remote servers. They emulate input/output terminals and provide command lines for launching apps. (Screen shot courtesy of Peter Hermsen.)