The X Window System (commonly X or X11 ) is a computer software system and network protocol that provides a graphical user interface (GUI) for networked computers, and was initially developed as part of Project Athena. It implements the X display protocol and provides windowing on raster graphics (bitmap) computer displays and manages keyboard and pointing device control functions. In its standard distribution, it is a complete, albeit simple, display and human interface solution, but also delivers a standard toolkit and protocol stack for building graphical user interfaces on most Unix-like operating systems and OpenVMS, and has been ported to many other contemporary general purpose operating systems. Desktop environments such as OpenWindows, CDE, GNOME, KDE, and Xfce, use the X Window System.
X provides the basic framework, or primitives, for building such GUI environments: drawing and moving windows on the screen and interacting with a mouse and/or keyboard. X does not mandate the user interface — individual client programs handle this. As such, the visual styling of X-based environments varies greatly; different programs may present radically different interfaces. X is built as an additional application layer on top of the operating system kernel.
Unlike previous display protocols, X was specifically designed to be used over network connections rather than on an integral or attached display device. X features network transparency: the machine where an application program (the client application) runs can differ from the user's local machine (the display server ).
X originated at MIT in 1984. The current protocol version, X11, appeared in September 1987. The X.Org Foundation leads the X project, with the current reference implementation, X.Org Server, available as free and open source software under the MIT License and similar permissive licenses.
Design
For more details on this topic, see X Window System protocols and architecture.For more details on this topic, see X Window System core protocol.X uses a client-server model: an X server communicates with various client programs. The server accepts requests for graphical output (windows) and sends back user input (from keyboard, mouse, or touchscreen). The server may function as:
- an application displaying to a window of another display system
- a system program controlling the video output of a PC
- a dedicated piece of hardware.
This client-server terminology — the user's terminal being the server and the applications being the clients — often confuses new X users, because the terms appear reversed. But X takes the perspective of the application, rather than that of the end-user: X provides display and I/O services to applications, so it is a server; applications use these services, thus they are clients.
The communication protocol between server and client operates network-transparently: the client and server may run on the same machine or on different ones, possibly with different architectures and operating systems. A client and server can even communicate securely over the Internet by tunneling the connection over an encrypted network session.
An X client itself may emulate an X server by providing display services to other clients. This is known as "X nesting". Open-source clients such as Xnest and Xephyr support such X nesting.
To use an X client program on a remote machine, the user does the following:
- On the local machine, open a terminal window
- use telnet or ssh to connect to the remote machine
- request local display/input service (e.g., export DISPLAY= :0 if not using SSH with X tunneling enabled)
The remote X client will then make a connection to the user's local X server, providing display and input to the user.
Alternatively, the local machine may run a small program that connects to the remote machine and starts the client application.
Practical examples of remote clients include:
- administering a remote machine graphically
- running a computationally intensive simulation on a remote Unix machine and displaying the results on a local Windows desktop machine
- running graphical software on several machines at once, controlled by a single display, keyboard and mouse.
Principles
In 1984, Bob Scheifler and Jim Gettys set out the early principles of X:
- Do not add new functionality unless an implementor cannot complete a real application without it.
- It is as important to decide what a system is not as to decide what it is. Do not serve all the world's needs; rather, make the system extensible so that additional needs can be met in an upwardly compatible fashion.
- The only thing worse than generalizing from one example is generalizing from no examples at all.
- If a problem is not completely understood, it is probably best to provide no solution at all.
- If you can get 90 percent of the desired effect for 10 percent of the work, use the simpler solution. (See also Worse is better.)
- Isolate complexity as much as possible.
- Provide mechanism rather than policy. In particular, place user interface policy in the clients' hands.
The first principle was modified during the design of X11 to: "Do not add new functionality unless you know of some real application that will require it."
X has largely kept to these principles. The sample implementation is developed with a view to extension and improvement of the implementation, while remaining compatible with the original 1987 protocol.
User interfaces
X is primarily a protocol and graphics primitives definition and it deliberately contains no specification for application user interface design, such as button, menu, or window title bar styles. Instead, application software – such as window managers, GUI widget toolkits and desktop environments, or application-specific graphical user interfaces - define and provide such details. As a result, there is no typical X interface and several desktop environments have been popular among users.
A window manager controls the placement and appearance of application windows. This may result in interfaces akin to those of Microsoft Windows or the Macintosh (examples include Metacity in GNOME, KWin in KDE, Xfwm in Xfce, or Compiz) or have radically different controls (such as a tiling window manager, like wmii or Ratpoison). Window managers range in sophistication and complexity from the bare-bones (e.g., twm, the basic window manager supplied with X, or evilwm, an extremely light window manager) to the more comprehensive desktop environments such as Enlightenment.
Many users use X with a desktop environment, which, aside from the window manager, include various applications using a consistent user interface. GNOME, KDE and Xfce are the most popular desktop environments. The Unix standard environment is the Common Desktop Environment (CDE). The freedesktop.org initiative addresses interoperability between desktops and the components needed for a competitive X desktop.
As X is responsible for keyboard and mouse interaction with graphical desktops, certain keyboard shortcuts have become associated with X. Control-Alt-Backspace typically terminates the currently running X session, while Control-Alt in conjunction with a function key switches to the associated virtual console. However, this is an implementation detail left to the design of an X server implementation and is not universal; for example, X server implementations for Windows and Macintosh typically do not provide these keyboard shortcuts.
Implementations
The X.Org implementation serves as the canonical implementation of X. Due to liberal licensing, a number of variations, both free and open source and proprietary, have appeared. Commercial UNIX vendors have tended to take the open source implementation and adapt it for their hardware, usually customizing it and adding proprietary extensions.
Up to 2004, XFree86 provided the most common X variant on free Unix-like systems. XFree86 started as a port of X for 386-compatible PCs and, by the end of the 1990s, had become the greatest source of technical innovation in X and the de facto standard of X development. Since 2004, however, the X.Org Server, a fork of XFree86, has become predominant.
While it is common to associate X with Unix, X servers also exist natively within other graphical environments. Hewlett-Packard's OpenVMS operating system includes a version of X with CDE, known as DECwindows, as its standard desktop environment. Apple's Mac OS X v10.3 (Panther) and Mac OS X v10.4 (Tiger) includes X11.app, based on XFree86 4.3 and X11R6.6, with better Mac OS X integration, on Mac OS X v10.5 (Leopard) Apple included X.org (X11R7.2 Codebase) instead of XFree86 (X11R6.8). Third-party servers under Mac OS 7, 8 and 9 included White Pine Software's eXodus and Apple's MacX.
Microsoft Windows is not shipped with support for X, but many third-party implementations exist, both free and open source software such as Cygwin/X, Xming (free up to 6.9.0.31) and WeirdX; and proprietary pr
Windows X Server, PC X Server. WinXServ - the X Server for Windows ...
Super-fast lightweight X-Server for Windows ... WinXServ - The new blazingly fast Windows X Server. Need to access Unix or Linux programs from your Windows PC?
X Window System - Wikipedia, the free encyclopedia
The X Window System (commonly X or X11) is a computer software system and network protocol that provides a graphical user interface (GUI) for networked computers, and was initially ...
X.Org Server - Wikipedia, the free encyclopedia
The X.Org Server (officially the X.Org Foundation Open Source Public Implementation of X11) is the X server in the official reference implementation of the X Window System.
AAEX.COM - Corporate Information
X-Server.net Network Information NS1.X-SERVER.NET: 65.110.6.100 NS2.X-SERVER.NET: 65.110.6.102 NTP.X-SERVER.NET: 65.110.6.103 DNS.X-SERVER.NET: 65.110.6.104
Windows X Server, Run Linux with WinaXe Windows X Server
WinaXe Windows X Server : Products : Download Price & Order Support Company Tutorials Sitemap : WinaXe is Windows X Server for Your Needs
XSERVER(1) manual page
Table of Contents. Name Xserver - X Window System display server Synopsis X [option ...] Description X is the generic name for the X Window System display server.
Apple - Mac OS X Server Snow Leopard
Up to 2x faster than its predecessor, Mac OS X Server v10.6 Snow Leopard is a full 64-bit UNIX server OS with dozens of new and updated features.
Apple - Server
Discover Apple Server solutions. From Mac OS X Server, Xserve, Remote Desktop, Xsan and more, Apple has what you need to meet your network and storage demands and the tools to ...
X.Org Wiki - Server14Branch
X server version 1.4 release plans. 1.4.1. 1.4.1 will be released on November 11th, 2007. It is scheduled to contain some random minor fixups, as well as a load of input fixes for ...
Cygwin/X
Cygwin/X runs on all recent consumer and business versions of Windows. Cygwin/X consists of an X Server, X libraries, and nearly all of the standard X clients, such as xterm ...