All Topics  
X Window System

 

   Email Print
   Bookmark   Link

 

X Window System


 
 



In computingComputing

Originally, the word computing was synonymous with counting and calculating, and a science and technology that deals wit...
, the X Window System (commonly X11 or X) is a windowing systemWindowing system

A windowing system is a graphical user interface which implements windows as one of its primary metaphors....
 which implements the X display protocol and provides windowingWindowing system

A windowing system is a graphical user interface which implements windows as one of its primary metaphors....
 on bitmapRaster graphics

A raster graphics digital image, or bitmap, is a data file or structure representing a generally rectangular gr...
 displays. It provides the standard toolkit and protocol with which to build graphical user interfaceGraphical user interface

A graphical user interface , is a particular case of user interface for interacting with a computer which employs graphical ...
s (GUIs) on most Unix-likeUnix-like

A "Unix-like" operating system is one that behaves in a manner similar to a Unix system, while not necessarily conforming to...
 operating systems and OpenVMSOpenVMS

OpenVMS is the name of a high-end computer server operating system that runs on the VAX and Alpha family of computers devel...
, and has been portedPorting

In computer science, porting is the process of adapting software so that an executable program can be created for a differen...
 to many other contemporary general purpose operating systems.

X provides the basic framework, or primitives, for building GUI environments: drawing and moving windowWindow (computing) Overview

In computing, a window is a visual area, usually rectangular in shape, containing some kind of user interface, displaying th...
s on the screen and interacting with a mouse and/or keyboard. X does not mandate the user interfaceUser interface Overview

The user interface is the aggregate of means by which people interact with a particular machine, device, computer program o...
 — 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 networkComputer network

A computer network is a group of interconnected computers....
 connections rather than on an integral or attached display device. X features network transparencyNetwork transparency

Network Transparency in its most general sense refers to the ability of a protocol to transmit data over the network in a ma...
: the machine where an application program (the client application) runs can differ from the user's local machine (the display server).

X originated at MITMassachusetts Institute of Technology

The Massachusetts Institute of Technology, or MIT, is a private world-leading research university in Cambridge, Massac...
 in 1984. The current protocol version, X11, appeared in September 1987. The X.Org FoundationX.Org Foundation Overview

The X.Org Foundation is the organization holding the stewardship for the development of the X Window System....
 leads the X project, with the current reference implementation, X.org ServerX.Org Server

The X.Org Foundation Open Source Public Implementation of X11 is the official reference implementation of the X Window Syste...
, available as free softwareFree software

Free software, as defined by the Free Software Foundation, is software which can be used, copied, studied, modified and redi...
 under the MIT LicenseMIT License Summary

The MIT License, also called the X License or the X11 License, originated at the Massachusetts Institute of Tech...
 and similar permissive licences.

Design

X uses a client-serverClient-server

Client-server is network architecture which separates the client from the 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 PCPersonal computer Summary

    A personal computer is usually a microcomputer whose price, size, and capabilities make it suitable for personal usage....
  • a dedicated piece of hardware.


This client-server terminology — the user's terminal as the "server", the remote or local applications as the "clients" — often confuses new X users, because the terms appear reversed. But X takes the perspective of the program, rather than that of the end-user or of the hardware: the local X display provides display services to programs, so it acts as a server; any remote program uses these services, thus it acts as a client.

The communication protocol between server and client operates networkComputer network

A computer network is a group of interconnected computers....
-transparently: the client and server may run on the same machine or on different ones, possibly with different architecturesFacts About Computer architecture

In computer engineering, computer architecture is the conceptual design and fundamental operational structure of a computer ...
 and operating systemOperating system

An operating system is a software program that manages the hardware and software resources of a computer....
s, but they run the same in either case. A client and server can even communicate secureComputer security

Computer security is a field of computer science concerned with the control of risks related to computer use....
ly over the InternetInternet

The Internet is the worldwide, publicly accessible network of interconnected computer networks that transmit data by packet ...
 by tunnelingTunneling protocol

A tunneling protocol is a network protocol which encapsulates one protocol or session inside another....
 the connection over an encrypted network session.

An X client itself may contain an X server having display of multiple clients. This is known as "X nesting". Open-source clients such as XnestXnest

Xnest is an X Window System server that shows its output in a window....
 and XephyrXephyr

Xephyr is a kdrive based X server which targets a window on a host X Server as its framebuffer....
 support such X nesting.

To start a remote client program displaying to a local server, the user will typically open a terminal windowTerminal emulator

A terminal emulator, terminal application, term, or tty for short, is a program that emulates a "dumb" vid...
 and telnetTELNET

TELNET is a network protocol used on the Internet or local area network LAN connections....
 or sshSecure Shell

In computing, Secure Shell or SSH is a set of standards and an associated network protocol that allows establishing a ...
 to the remote client application or shell and request local display/input service (e.g. export DISPLAY=[user's machine]:0 on a remote machine running bashBash

name = GNU Bourne-Again Shell| screenshot = | caption = Screenshot of a sample bash session...
). The client application or shell then connects to the local server, servicing a display and input session to the local user. Alternatively, the local machine may run a small helper program to connect to a remote machine and start the desired client application there.

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 ScheiflerBob Scheifler

Robert W. Scheifler is a computer scientist....
 and Jim GettysJim Gettys

Jim Gettys is a computer programmer....
 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 betterWorse is better Summary

    Worse is better, also called the New Jersey style, is the name of a computer software design approach in which sim...
    .)
  • 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 since. The reference implementation is developed with a view to extension and improvement of the implementation, whilst remaining almost entirely compatible with the original 1987 protocol.

User interfaces

X deliberately contains no specification as to application user interfaceUser interface

The user interface is the aggregate of means by which people interact with a particular machine, device, computer program o...
, such as buttonButton (computing)

In computing, a button is a widget which provides the user a simple way to trigger an event, such as clearing the display on...
s, menuMenu (computing)

In computing and telecommunications, a menu is a list of commands presented to an operator by a computer or communications s...
s, window title barTitle bar

In computing, the title bar consists of that part of a window where the title of the window appears....
s and so on. Instead, user software – such as window managerWindow manager Overview

A window manager is computer software that controls the placement and appearance of windows within a windowing system in a g...
s, GUI widget toolkitFacts About Widget toolkit

In computer programming, widget toolkits are sets of basic building units for graphical user interfaces....
s and desktop environmentDesktop environment

In graphical computing, a desktop environment offers a graphical user interface to the computer....
s, or application-specific graphical user interfaces – provide/define all such details. As such, it isn't possible to point to a "typical" X interface as at most times several interfaces have been popular among users.

A window managerX window manager

An X window manager is software that controls the placement and appearance of windows under the X Window System, a windowing...
 controls the placement and appearance of application windows. This may have an interface akin to that of Microsoft WindowsMicrosoft Windows

Microsoft Windows is a family of operating systems by Microsoft....
 or of the Macintosh (examples include MetacityMetacity

Metacity is a compositing window manager used by default in the GNOME desktop environment....
 in GNOMEGnome Overview

A gnome is a legendary creature characterized by its very small stature and subterranean lifestyle....
, KWinKWin Overview

In Unix computing, KWin is a window manager for the X Window System....
 in KDEKDE

KDE is a free desktop environment and development platform built with Trolltech's Qt toolkit....
 or XfwmXfwm Overview

In Unix computing, Xfwm is a window manager for the X Window System....
 in XfceXfce

Xfce is a desktop environment for Unix and other Unix-like platforms, such as Linux, Solaris or BSD....
) or have radically different controls (such as a tiling window managerTiling window manager

In computing, in the X Window System, a tiling window manager is a window manager with an organization of the screen into mu...
, like wmiiWmii

wmii is a dynamic window manager for X11....
 or RatpoisonRatpoison

In Unix computing, ratpoison is a free minimalist window manager for the X Window System primarily written by Shawn Betts....
). The window manager may be bare-bones (e.g. twmTwm

In computing, twm is the standard window manager for the X Window System, version X11R4 onwards....
, the basic window manager supplied with X, or evilwmEvilwm

evilwm is a minimalist window manager for the X Window System....
, an extremely light window manager) or offer functionality verging on that of a full desktop environment (e.g. Enlightenment).

Many users use X with a full desktop environmentDesktop environment

In graphical computing, a desktop environment offers a graphical user interface to the computer....
, which includes a window manager, various applications and a consistent interface. GNOMEFacts About Gnome

A gnome is a legendary creature characterized by its very small stature and subterranean lifestyle....
, KDEKDE

KDE is a free desktop environment and development platform built with Trolltech's Qt toolkit....
 and XfceXfce

Xfce is a desktop environment for Unix and other Unix-like platforms, such as Linux, Solaris or BSD....
 are the most popular desktop environments. The Unix standardSingle UNIX Specification

The Single UNIX Specification is the collective name of a family of standards for computer operating systems to qualify for...
 environment is the Common Desktop EnvironmentCommon Desktop Environment

The Common Desktop Environment is a proprietary desktop environment for UNIX, based on the Motif widget toolkit....
 (CDE). The freedesktop.orgFreedesktop.org

freedesktop.org is a project to work on interoperability and shared base technology for desktop environments for the X Windo...
 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 shortcutKeyboard shortcut

A keyboard shortcut is a key or set of keys that performs a predefined function....
s have become associated with X. Control-Alt-Backspace typically terminates the currently running X session, while Control-Alt in conjunction with a function keyFunction key

A function key is a key on a computer or terminal keyboard which can be programmed so as to cause an operating system comman...
 switches to the associated virtual console. Note, however, that this is an implementation detail left to an individual X server and is by no means universal; for example, X server implementations for Windows and Macintosh typically do not provide these shortcuts.

Implementations

The X.Org reference implementation serves as the canonicalCanonical

Canonical is an adjective derived from ....
 implementation of X. Due to liberal licensingSoftware license

A software license is a license that grants permission to do things with computer software....
, a number of variations, both freeFree software

Free software, as defined by the Free Software Foundation, is software which can be used, copied, studied, modified and redi...
 and proprietaryProprietary software

Proprietary software is software that has restrictions on using and copying it, usually enforced by a proprietor....
, have appeared. Commercial UNIX vendors have tended to take the reference implementation and adapt it for their hardware, usually customising it heavily and adding proprietary extensions.
|
|-
|
|}

Up to 2004, XFree86XFree86

XFree86 is an implementation of the X Window System ....
 provided the most common X variant on free Unix-likeUnix-like

A "Unix-like" operating system is one that behaves in a manner similar to a Unix system, while not necessarily conforming to...
 systems. XFree86 started as a portPorting

In computer science, porting is the process of adapting software so that an executable program can be created for a differen...
 of X for 386Facts About Intel 80386

The Intel 80386 is a microprocessor which was used as the central processing unit of many personal computers from 1986 unti...
-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 reference implementationX.Org Server

The X.Org Foundation Open Source Public Implementation of X11 is the official reference implementation of the X Window Syste...
, a fork of XFree86, has become predominant.

While computer aficionados most often associate X with Unix, X servers also exist natively within other graphical environments. Hewlett-PackardHewlett-Packard

The Hewlett-Packard Company , commonly known as HP, is one of the world's largest information technology corporations....
's OpenVMSOpenVMS

OpenVMS is the name of a high-end computer server operating system that runs on the VAX and Alpha family of computers devel...
 operating system includes a version of X with CDECommon Desktop Environment

The Common Desktop Environment is a proprietary desktop environment for UNIX, based on the Motif widget toolkit....
, known as DECwindows, as its standard desktop environment. AppleApple Computer

Apple Computer, Inc. is an American computer technology corporation with worldwide annual sales in its fiscal year 2005 of...
's Mac OS X v10.3Mac OS X v10.3

Mac OS X version 10.3 "Panther" is the fourth major release of Apple Computer's Mac OS X operating system....
 (Panther) and up includes X11.appX11.app

name = X11| logo = | screenshot = | caption = X11.app running rootless on Mac OS X....
, based on XFree86 4.3 and X11R6.6, with better Mac OS XMac OS X Summary

Mac OS X is a line of proprietary, graphical operating systems developed, marketed, and sold by Apple Computer, the latest ...
 integration. Third-party servers under Mac OS 7, 8 and 9 included MacXMacX

MacX is an X11 server implementation that ran on System 7, Mac OS 8, and Mac OS 9....
.

Microsoft WindowsMicrosoft Windows

Microsoft Windows is a family of operating systems by Microsoft....
 does not come with support for X, but many third-party implementations exist, both free softwareFree software

Free software, as defined by the Free Software Foundation, is software which can be used, copied, studied, modified and redi...
 such as Cygwin/XCygwin/X

Cygwin/X is an implementation of the X Window System that runs under Microsoft Windows....
, XmingXming

Xming is a free software port of an X Window Server to the Microsoft Windows operating system....
 and WeirdXWeirdX

WeirdX is an X Window System server written in pure Java and licensed under GNU GPL by JCraft....
; and proprietary products such as Xmanager, MKS X/ServerMKS X/Server

MKS X/Server is for a commercial X server product for accessing UNIX/Linux systems from a PC developed by MKS Inc.....
, ExceedFacts About Exceed

Exceed is a commercial X server that runs under Microsoft Windows....
 and X-Win32X-Win32

In computing, X-Win32 is a proprietary X Window System server for Microsoft Windows, produced by StarNet Communications....
. They normally serve to control remote X clients.

When another windowing system (such as those of Microsoft Windows or Mac OS) hosts X, the X system generally runs "rootless", meaning the host windowing environment looks after the root window (the background and associated menus) and manages the geometry of the hosted X windows — although some servers (Xmanager, and Exceed, for example) can also create the root window for the remote clients to display to as a separate window in the host system.

X terminals



An X terminal is a thin clientThin client

A thin client is a computer in client-server architecture networks which depends primarily on the central server for proces...
 that runs an X server. This architecture became popular for building inexpensive terminal parks for many users to simultaneously use the same large server (making programs being run on the server clients of the X terminal). This use very much aligns with the original intention of the MIT project.

X terminals explore the network (the local broadcast domainBroadcast domain

A broadcast domain is a logical network segment in which any computer connected to the network can directly transmit to any...
) using the X Display Manager Control Protocol to generate a list of available hosts that they can run clients from. The initial host needs to run an X display managerX display manager

In the X Window System, an X display manager runs as a program, allowing starting a session on an X server from the same or ...
.

Dedicated (hardware) X terminals have become less common; a PCFacts About Personal computer

A personal computer is usually a microcomputer whose price, size, and capabilities make it suitable for personal usage....
 or modern thin clientThin client

A thin client is a computer in client-server architecture networks which depends primarily on the central server for proces...
 with an X server typically provides the same functionality at the same, or lower, cost.

Limitations and criticisms of X

The UNIX-HATERS HandbookThe UNIX-HATERS Handbook

The UNIX-HATERS Handbook is a semi-humorous edited compilation of messages to the UNIX-HATERS mailing list....
(1994) devoted an entire chapter to the problems of X. Why X Is Not Our Ideal Window System (1990) by Gajewska, Manasse and McCormack detailed problems in the protocol with recommendations for improvement.

User interface features

X deliberately contains no specification as to user interface or most inter-application communication. This has resulted in several vastly different interfaces, and in applications that have not always worked well together. The ICCCMInter-Client Communication Conventions Manual

In computing, the Inter-Client Communication Conventions Manual is a standard for X Window System clients to interoperate on...
, a specification for client interoperability, has a reputation as difficult to implement correctly. Further standards efforts such as MotifMotif (widget toolkit)

Motif is a graphical widget toolkit for building graphical user interfaces under the X Window System on Unix and other POSIX...
 and CDEFacts About Common Desktop Environment

The Common Desktop Environment is a proprietary desktop environment for UNIX, based on the Motif widget toolkit....
 did not remedy matters. This has frustrated users and programmers for a long time. Graphics programmers now generally address consistency of application look and feelLook and feel

The look and feel of a graphical user interface comprises aspects of its design, including elements such as colors, shapes, ...
 and communication by coding to a specific desktop environment or to a specific widget toolkit, which also avoids having to deal directly with the ICCCM.

The X protocol provides no facilities for handling audio, leaving it to the operating system or audio systems like OSSFacts About Open Sound System

The Open Sound System is a portable sound interface available in 11 different Unix systems....
 or ALSA to provide support for audio hardware and sound playback. Most programmers simply use local, OS-specific sound APIApplication programming interface Summary

An application programming interface is the interface that a computer system, library or application provides in order to a...
s. The first generation of client-server sound systems included rplay and Network Audio SystemFacts About Network Audio System

The Network Audio System is an open-source, network-transparent, client-server audio transport system....
. More recent efforts have produced EsounDEnlightened Sound Daemon

In computing, the Enlightened Sound Daemon is the sound server for Enlightenment and GNOME....
 (GNOME), aRtsARts

aRts, which stands for analog Real time synthesizer, is an application that simulates an analog synt...
 (KDE), and PulseAudioPulseAudio

PulseAudio is a cross-platform, networked sound server project licensed under the LGPL....
 to name a few. In 2001, the X.orgX.Org

X.Org refers to:* The X.Org Foundation, stewards of the X Window System....
 foundation announced the development of the Media Application Server (MAS) to remedy this problem. However, none of these are generally used as a solution to the problem.

Network


An X client cannot generally be detached from one server and reattached to another, as with Virtual Network ComputingVirtual Network Computing

Virtual Network Computing is a desktop sharing system which uses the RFB protocol to remotely control another computer....
 (VNC), though certain specific applications and toolkits are able to provide this facility.
Workarounds (VNC :0 viewers) also exist to make the current X-server screen available via VNC.

Network traffic between an X server and remote X clients is not encrypted by default. An attacker with a packet snifferPacket sniffer Summary

A Packet sniffer is computer software or computer hardware that can intercept and log traffic passing over a digital netwo...
 can intercept it, making it possible to view anything displayed to or sent from the user's screen. The most common way to encrypt X traffic is to tunnel it over SSHSecure Shell

In computing, Secure Shell or SSH is a set of standards and an associated network protocol that allows establishing a ...
.

Client-server separation

X's design requires the clients and server to operate separately, and device independence and the separation of client and server incur overhead compared to an operating system where the graphics are integrated into the OS, such as early versions of Microsoft WindowsMicrosoft Windows

Microsoft Windows is a family of operating systems by Microsoft....
 or Mac OSMac OS

Mac OS, which stands for Macintosh Operating System, is a series of graphical user interface-based operati...
. X advocates recommended 4 to 8 MBMegabyte

A megabyte is a unit of information or computer storage equal to approximately one million bytes....
 of RAMRam

Depending on context, RAM, Ram or ram may be an acronym or a full word, and it can mean one of the following:...
 for reasonable performance; until the mid-1990s, this seemed bloated compared to Windows or Mac OS.

Current versions of Windows and Mac OS XMac OS X

Mac OS X is a line of proprietary, graphical operating systems developed, marketed, and sold by Apple Computer, the latest ...
 QuartzQuartz (graphics layer)

Quartz is the marketing name of the graphics layer of the Mac OS X operating system....
 have internal subsystem separation similar to the client/server divide in X and comparable performance and higher resource usage to X with GNOMEGnome

A gnome is a legendary creature characterized by its very small stature and subterranean lifestyle....
 or KDEKDE

KDE is a free desktop environment and development platform built with Trolltech's Qt toolkit....
. Most of the overhead comes from network round-trip delay timeFacts About Round-trip delay time

In telecommunications, the term round-trip delay time or round-trip time has the following meanings:...
 between client and server|latency]] rather than from the protocol itself): the best solutions to performance issues involve paying attention to application design. A common criticism of X is that its network features result in excessive complexity and decreased performance if only used locally. That used to be the case, but modern X implementations are able to use unix domain sockets and shared memoryShared memory

In HardwareIn computer hardware, shared memory refers to a large block of random access memory that can be accessed by seve...
 (the MIT-SHMMIT-SHM

The MIT Shared Memory Extension or MIT-SHM is a X Window System extension for exchange of image data between client an...
 extension) to work around the network overhead. The programmer must still explicitly activate and use those extensions in order to improve performance and must also provide fallback paths in order to stay compatible with older implementations.

Competitors to X

For graphics, Unix-likeUnix-like

A "Unix-like" operating system is one that behaves in a manner similar to a Unix system, while not necessarily conforming to...
 systems use X almost universally. However, some people have attempted writing alternatives to and replacements for X. Historical alternatives include SunSun Microsystems

company_name = Sun Microsystems | company_type = Public |...
's NeWSNews

News is new information or current events....
, which failed in the market, and NeXTNeXT

NeXT was a computer company headquartered in Redwood City, California, that developed and manufactured two computer workstat...
's Display PostScriptDisplay PostScript

Display PostScript is an on-screen display system....
, which was discarded in favor of AppleApple Computer

Apple Computer, Inc. is an American computer technology corporation with worldwide annual sales in its fiscal year 2005 of...
's entirely new QuartzQuartz (graphics layer)

Quartz is the marketing name of the graphics layer of the Mac OS X operating system....
 in Mac OS XMac OS X

Mac OS X is a line of proprietary, graphical operating systems developed, marketed, and sold by Apple Computer, the latest ...
.

Mike Paquette, one of the authors of Quartz, explained why Apple did not move from Display PostScript to X, and chose instead to develop its own window server, by saying that once Apple added support for all the features it wanted to include in to X11, it would not bear much resemblance to X11 nor be compatible with other servers anyway.

Other attempts to address criticisms of X by replacing it completely include Berlin/FrescoFresco (computing)

In computing, Fresco is a windowing system....
 and the Y Window SystemY Window System

The Y Window System is a windowing system, consisting of a window server and a client library for writing applications....
. These alternatives have seen negligible take-up, however, and commentators widely doubt the viability of any replacement that does not preserve backward compatibility with X.

Other competitors attempt to avoid the overhead of X by working directly with the hardware. Such projects include DirectFBDirectFB

DirectFB is a software library for the GNU/Linux operating system that provides "hardware graphics acceleration, input devi...
 and the very small FBUI. The Direct Rendering InfrastructureDirect Rendering Infrastructure

In computing, the Direct Rendering Infrastructure is an interface used in the X Window System to securely allow user applica...
 (DRI), which aims to provide a reliable kernel-level interface to the framebufferFramebuffer

...
, may make these efforts redundant. However, in Linux embedded systems requiring real-time capabilities (e.g. using RTAIRTAI

RTAI stands for Real-Time Application Interface....
), the use of hardware acceleration via DRI is discouraged; X may be unsuitable for such applications.

Other ways to achieve network transparency for graphical services include:
  • the , a protocol to update Scalable Vector GraphicsScalable Vector Graphics

    Scalable Vector Graphics is an XML markup language for describing two-dimensional vector graphics, both static and animated...
     (SVG) content in a browser in near-real-time
  • Virtual Network ComputingVirtual Network Computing

    Virtual Network Computing is a desktop sharing system which uses the RFB protocol to remotely control another computer....
     (VNC), a very low-level system which sends compressed bitmaps across the network; the Unix implementation includes an X server
  • Citrix XenApp, an X-like product for Microsoft Windows
  • TarantellaTarantella, Inc. Summary

    Tarantella, Inc. is a Santa Cruz, CA based company that develops and sells the Secure Global Desktop range of terminal s...
    , which provides a Java client for use in web browsers
  • RAWT, IBM's Java-only , which implements a Java "server" and simple hooks for any remote Java client

History

Predecessors

Several bitmap display systems preceded X. From XeroxXerox

Xerox Corporation is an American document management company, which manufactures and sells a range of color and black-and-...
 came the AltoXerox Alto

The Xerox Alto, developed at Xerox PARC in 1973, was an early minicomputer and the first computer to use the desktop metapho...
 (1973) and the StarXerox Star

The Star workstation, officially known as the 8010 Star Information System, was introduced by Xerox Corporation in 198...
 (1981). From AppleApple Computer

Apple Computer, Inc. is an American computer technology corporation with worldwide annual sales in its fiscal year 2005 of...
 came the LisaApple Lisa

The Apple Lisa was a revolutionary personal computer designed at Apple Computer during the early 1980s....
 (1983) and the Macintosh (1984). The UnixUnix

Unix or UNIX is a computer operating system originally developed in the 1960s and 1970s by a group of AT&T Bell Labs e...
 world had the Andrew ProjectAndrew Project

The Information Technology CenterThe Information Technology Center was a joint project of...
 (1982) and Rob PikeRob Pike

Rob Pike is a software engineer and author....
's BlitBlit (computer terminal)

In computing, the Blit is a programmable bitmap graphics terminal designed by Rob Pike and Bart Locanthi of Bell Labs in 19...
 terminal (1982).

X derives its name as a successor to a pre-1983 window system called WW Window System

The W Window System is a graphical windowing system and precursor in name and concept to the modern X Window System....
 (the letter X directly following W in the Latin alphabetLatin alphabet

The Latin alphabet, also called the Roman alphabet, is the most widely used alphabetic writing system in the world tod...
). W Window System ran under the V operating systemV (operating system)

The V operating system is a microkernel operating system that was developed by faculty and students in the Distributed Syste...
. W used a network protocol supporting terminal and graphics windows, the server maintaining display lists.

Origin and early development

The original idea of X emerged at MIT in 1984 as a collaboration between Jim GettysJim Gettys

Jim Gettys is a computer programmer....
 (of Project AthenaProject Athena

Project Athena was a joint project of MIT, Digital Equipment Corporation, and IBM....
) and Bob ScheiflerBob Scheifler

Robert W. Scheifler is a computer scientist....
 (of the MIT Laboratory for Computer Science). Scheifler needed a usable display environment for debugging the Argus system. Project Athena (a joint project between Digital Equipment CorporationDigital Equipment Corporation

Digital Equipment Corporation was an American pioneering company in the computer industry....
 (DEC), MIT and IBMIBM

company_name = International Business Machines Corporation |...
 to provide easy access to computing resources for all students) needed a platform-independent graphics system to link together its heterogeneous multiple-vendor systems; the window system then under development in Carnegie Mellon UniversityCarnegie Mellon University

Carnegie Mellon University is a private research university located in Pittsburgh, Pennsylvania....
's Andrew ProjectAndrew Project

The Information Technology CenterThe Information Technology Center was a joint project of...
 did not make licenses available, and no alternatives existed.

The project solved this by creating a protocol that could both run local applications and call on remote resources. In mid-1983 an initial port of W to Unix ran at one-fifth of its speed under V; in May 1984, Scheifler replaced the synchronous protocolProtocol (computing)

In computing, a protocol is a convention or standard that controls or enables the connection, communication, and data transf...
 of W with an asynchronous protocol and the display lists with immediate mode graphics to make X version 1. X became the first windowing system environment to offer true hardware-independence and vendor-independence.

Scheifler, Gettys and Ron NewmanRon Newman (computer programmer)

Ron Newman is a computer programmer....
 set to work and X progressed rapidly. They released Version 6 in January 1985. DEC, then preparing to release its first UltrixUltrix Overview

Ultrix was the brand name of Digital Equipment Corporation's native Unix systems....
 workstation, judged X the only windowing system likely to become available in time. DEC engineers ported X6 to DEC's QVSS display on MicroVAXMicroVAX

MicroVAX was a line of VAX computer systems which were manufactured by the Digital Equipment Corporation during the 1980s....
.

In the second quarter of 1985 X acquired colorX11 color names

In computing, on the X Window System, X11 color names are represented in a simple text file, which maps certain strings to R...
 support to function in the DEC VAXstation-II/GPX, forming what became version 9.

A group at Brown UniversityBrown University

Brown University is a university located in Providence, Rhode Island....
 ported version 9 to the IBMIBM

company_name = International Business Machines Corporation |...
 RT/PC, but problems with reading unaligned data on the RT forced an incompatible protocol change, leading to version 10 in late 1985. By 1986, outside organizations had started asking for X. The release of X10R2 took place in January 1986; that of X10R3 in February 1986. Although MIT had licensed X6 to some outside groups for a fee, it decided at this time to license X10R3 and future versions under what became known as the MIT LicenseMIT License

The MIT License, also called the X License or the X11 License, originated at the Massachusetts Institute of Tech...
, intending to popularize X further and in return, hoping that many more applications would become available. X10R3 became the first version to achieve wide deployment, with both DEC and Hewlett-PackardHewlett-Packard

The Hewlett-Packard Company , commonly known as HP, is one of the world's largest information technology corporations....
 releasing products based on it. Other groups ported X10 to ApolloApollo Computer Overview

Apollo Computer, Inc., founded 1980 in Chelmsford, Massachusetts by William Poduska, developed and produced Apollo/Domain wo...
 and to SunSun Microsystems

company_name = Sun Microsystems | company_type = Public |...
 workstations and even to the IBM PC/AT. Demonstrations of the first commercial application for X (a mechanical computer-aided engineering system from Cognition Inc. that ran on VAXes and displayed on PCs running an X server) took place at the Autofact trade show at that time. The last version of X10, X10R4, appeared in December 1986.

Attempts were made to enable X servers as real-time collaboration devices, much as Virtual Network ComputingVirtual Network Computing

Virtual Network Computing is a desktop sharing system which uses the RFB protocol to remotely control another computer....
 (VNC) would later allow a desktop to be shared. One such early effort was Philip J. Gust's SharedXFacts About SharedX

SharedX was a tool developed at HP in the mid 1980s to allow X servers to "shared" a window, thus allowing users at multiple w...
 tool.

Although X10 offered interesting and powerful functionality, it had become obvious that the X protocol could use a more hardware-neutral redesign before it became too widely deployed; but MIT alone would not have the resources available for such a complete redesign. As it happened, DEC's Western Software Laboratory found itself between projects with an experienced team. Smokey Wallace of DEC WSL and Jim Gettys proposed that DEC WSL build X11 and make it freely available under the same terms as X9 and X10. This process started in May 1986, with the protocol finalized in August. Alpha-testing of the software started in February 1987, beta-testing in May; the release of X11 finally occurred on September 15, 1987.

The X11 protocol design, led by Scheifler, was extensively discussed on open mailing lists on the nascent InternetInternet

The Internet is the worldwide, publicly accessible network of interconnected computer networks that transmit data by packet ...
 that were bridged to USENET newsgroups. Gettys moved to California to help lead the X11 development work at WSL from DEC's Systems Research Center, where Phil Karlton and Susan Angebrandt led the X11 sample server design and implementation. X therefore represents one of the first very large-scale distributed free softwareFree software

Free software, as defined by the Free Software Foundation, is software which can be used, copied, studied, modified and redi...
 projects.

The MIT X Consortium and the X Consortium, Inc.

In 1987, with the success of X11 becoming apparent, MIT wished to relinquish the stewardship of X, but at a June 1987 meeting with nine vendors, the vendors told MIT that they believed in the need for a neutral party to keep X from fragmenting in the marketplace. In January 1988, the MIT X Consortium formed as a non-profit vendor group, with Scheifler as director, to direct the future development of X in a neutral atmosphere inclusive of commercial and educational interests. Jim Fulton joined in January 1988 and Keith PackardKeith Packard

Keith Packard is a software developer, best known for his work on the X Window System....
 in March 1988 as senior developers, with Jim focusing on XlibXlib Overview

Xlib is an X Window System protocol client library in the C programming language....
, fonts, window managers, and utilities; and Keith re-implementing the server. Donna Converse and Chris D. Peterson joined later that year, focusing on toolkits and widget sets, working closely with Ralph Swick of MIT Project Athena. The MIT X Consortium produced several significant revisions to X11, the first (Release 2 - X11R2) in February 1988.
|
|-
|
|}

In 1993, the X Consortium, Inc. (a non-profit corporation) formed as the successor to the MIT X Consortium. It released X11R6 on May 16, 1994. In 1995 it took over stewardship of the MotifMotif (widget toolkit)

Motif is a graphical widget toolkit for building graphical user interfaces under the X Window System on Unix and other POSIX...
 toolkit and of the Common Desktop EnvironmentCommon Desktop Environment

The Common Desktop Environment is a proprietary desktop environment for UNIX, based on the Motif widget toolkit....
 for Unix systems. The X Consortium dissolved at the end of 1996, producing a final revision, X11R6.3, and a legacy of increasing commercial influence in the development.

The Open Group

In mid-1997 the X Consortium passed stewardship of X to The Open GroupThe Open Group

The Open Group is an industry consortium to set vendor- and technology-neutral open standards for computing infrastructure....
, a vendor group formed in early 1996 by the merger of the Open Software FoundationOpen Software Foundation

The Open Software Foundation was an organization founded in 1988 to create an open standard for an implementation of the Uni...
 and X/OpenX/Open

X/Open Company, Ltd. was a consortium founded by several European UNIX systems manufacturers in 1984 to identify and promote...
.

The Open Group released X11R6.4 in early 1998. Controversially, X11R6.4 departed from the traditional liberal licensing terms, as the Open Group sought to assure funding for X's development. The new terms would have prevented its adoption by many projects (such as XFree86XFree86

XFree86 is an implementation of the X Window System ....
) and even by some commercial vendors. After XFree86 seemed poised to fork, the Open Group relicensed X11R6.4 under the traditional license in September 1998. The Open Group's last release came as X11R6.4 patch 3.

The X.Org Foundation

In early 2004 various people from X.Org and freedesktop.org formed the X.Org FoundationX.Org Foundation Summary

The X.Org Foundation is the organization holding the stewardship for the development of the X Window System....
, and the Open Group gave it control of the x.org domain nameDomain name

The term domain name has multiple meanings, all related to the:...
. This marked a radical change in the governance of X. Whereas the stewards of X since 1988 (including the previous X.Org) had been vendor organizations, the Foundation was led by software developers and used community development based on the bazaarThe Cathedral and the Bazaar

The Cathedral and the Bazaar is an essay by Eric S....
 model, which relies on outside involvement. Membership was opened to individuals, with corporate membership being in the form of sponsorship. Several major corporations such as Hewlett-PackardHewlett-Packard

The Hewlett-Packard Company , commonly known as HP, is one of the world's largest information technology corporations....
 and Sun MicrosystemsSun Microsystems

company_name = Sun Microsystems | company_type = Public |...
 currently support the X.Org Foundation.

The Foundation takes an oversight role over X development: technical decisions are made on their merits by achieving rough consensus among community members. Technical decisions are not made by the board of directors; in this sense, it is strongly modelled on the technically non-interventionist GNOME FoundationGNOME Foundation

The GNOME Foundation is a non-profit organization based in Boston, Massachusetts, coordinating the efforts in the GNOME proj...
. The Foundation does not employ any developers.

The Foundation released X11R6.7, the X.Org ServerX.Org Server

The X.Org Foundation Open Source Public Implementation of X11 is the official reference implementation of the X Window Syste...
, in April 2004, based on XFree86 4.4RC2 with X11R6.6 changes merged. Gettys and Packard had taken the last version of XFree86 under the old license and, by making a point of an open development model and retaining GPL compatibility, brought many of the old XFree86 developers on board.

X11R6.8 came out in September 2004. It added significant new features, including preliminary support for translucent windows and other sophisticated visual effects, screen magnifiers and thumbnailers, and facilities to integrate with 3D immersive display systems such as Sun's Project Looking GlassProject Looking Glass

In computing, Project Looking Glass is a free software project under the GPL to create an innovative 3D desktop environment ...
 and the Croquet projectCroquet Project

The Croquet Project is an international effort to promote the continued development of Croquet, a new open source software p...
. External applications called compositing window managerCompositing window manager

In X Window System, a compositing window manager is a unified X window manager and compositing manager program....
s
provide policy for the visual appearance.

On December 21, 2005
, X.Org released X11R6.9, the monolithic sourceSource code

Source code is any series of statements written in some human-readable computer programming language....
 tree for legacy users, and X11R7.0, the same source code separated into independent modules, each maintainable in separate projects. The Foundation released X11R7.1 on May 22, 2006, about four months after 7.0, with considerable feature improvements.

Future directions

With the X.Org Foundation and freedesktop.org, the main line of X development has started to progress rapidly once more. The developers intend to release present and future versions as usable finished products, not merely as bases for vendors to build a product upon.

For sufficiently capable combinations of hardware and operating systems, X.Org plans to access the video hardware only via OpenGLOpenGL

OpenGL is a standard specification defining a cross-language cross-platform API for writing applications that produce 3D co...
 and the Direct Rendering InfrastructureDirect Rendering Infrastructure

In computing, the Direct Rendering Infrastructure is an interface used in the X Window System to securely allow user applica...
 (DRI). The DRI first appeared in XFree86 version 4.0 and became standard in X11R6.7 and later. Many operating systems have started to add kernel support for hardware manipulation. This work proceeds incrementally.

Nomenclature

People in the computer trade commonly shorten the phrase "X Window System" to "X Window", "X11" (for version 11, used since 1987) or simply to "X". The term "X-Windows" (in the manner of "Microsoft Windows") is not officially endorsed, though it has been in common use since early in the history of X and has been used deliberately for literary effect, for example in the UNIX-HATERS Handbook.

See also

  • History of the graphical user interfaceHistory of the graphical user interface

    The graphical user interface, or "GUI" , is a computer interface that uses graphic icons and controls in addition to t...
  • X11 color namesX11 color names

    In computing, on the X Window System, X11 color names are represented in a simple text file, which maps certain strings to R...
  • XglXgl

    Xgl is an X server architecture designed to take advantage of modern graphics cards via their OpenGL drivers, layered on top...
  • General Graphics InterfaceGeneral Graphics Interface

    General Graphics Interface, is an active Free software project that aims to develop a reliable, stable and fast FOSS graphic...
  • VirtualGLVirtualGL

    VirtualGL is an open source program which redirects the 3D rendering commands from Unix and Linux OpenGL applications to 3D ...
  • rio (program)Rio (program) Overview

    rio is Plan 9 from Bell Labs's windowing system. ...
  • List of Unix programsList of Unix programs

    This is a list of Unix programs. Some of these programs are standard utilities that will be found on any Unix or Unix-like o...
  • DESQview/X
  • Cairo (graphics)Cairo (graphics)

    Cairo is a free software graphics library with multiple backends that provides a vector-based device-independent API for sof...
  • Y Window SystemY Window System

    The Y Window System is a windowing system, consisting of a window server and a client library for writing applications....
  • XFree86XFree86

    XFree86 is an implementation of the X Window System ....


External links

  • Official website
  • (Jon Smirl, 30 August 2005)
  • RFC 1198 - FYI on the X Window System