X Window System

(redirected from X Windowing System)

X Window System

(operating system, graphics)
A specification for device-independent windowing operations on bitmap display devices, developed initially by MIT's Project Athena and now a de facto standard supported by the X Consortium. X was named after an earlier window system called "W". It is a window system called "X", not a system called "X Windows".

X uses a client-server protocol, the X protocol. The server is the computer or X terminal with the screen, keyboard, mouse and server program and the clients are application programs. Clients may run on the same computer as the server or on a different computer, communicating over Ethernet via TCP/IP protocols. This is confusing because X clients often run on what people usually think of as their server (e.g. a file server) but in X, it is the screen and keyboard etc. which is being "served out" to the applications.

X is used on many Unix systems. It has also been described as over-sized, over-featured, over-engineered and incredibly over-complicated. X11R6 (version 11, release 6) was released in May 1994.

http://x.org/.

See also Andrew project, PEX, VNC, XFree86.

Usenet newsgroups: news:comp.windows.x, news:comp.x, news:comp.windows.x.apps, news:comp.windows.x.intrinsics, news:comp.windows.x.announce, news:comp.sources.x, news:comp.windows.x.motif, news:comp.windows.x.pex.

X Window

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.

Network Transparency
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.


X Window Servers Run on Clients
The X Window server runs on your client, and the X Window client runs on your server. All's fair in love and computers!







An X Window Screen
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.)