X Window System Article Index for
X Window
Articles about
X Window System
Website Links For
Window
 

Information About

X Window System




2.18]]
3.5]]
4.4]]
In Computing , the X Window System (commonly '''X11''' or '''X''') is a networking and display protocol which provides Windowing on Bitmap displays. It provides the standard toolkit and protocol to build Graphical User Interface s (GUIs) on Unix-like operating systems and OpenVMS , and is supported by almost all other modern operating systems.

X provides the basic framework, or primitives, for building GUI environments: drawing and moving Window s 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. It should be noted that X is not part of the operating system on any of the systems it runs on. Instead it is a user application built as an additional layer on top of whatever the host operating system is. This is a direct consequence of X being designed to be network transparent and operating system independent.

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 , version 11 release 7.3 (September 6 2007), available as Free Software under the MIT License and similar permissive licenses. Introduction to X11R7.0 manual 2005


THE X CLIENT-SERVER MODEL AND NETWORK TRANSPARENCY


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 as the "server", the remote 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.

and a Terminal Emulator run on the user's workstation, and a system updater runs on a remote server but is controlled from the user's machine. Note that the remote application runs just as it would locally.]]

The and Operating System s, but they run the same in either case. A client and server can even communicate Secure ly over the Internet by Tunneling the connection over an Encrypted network session.

To start a remote client program displaying to a local server, the user will typically open a ). 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.



DESIGN PRINCIPLES OF X

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 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 Interface , such as Button s, Menu s, window Title Bar s and so on. Instead, user software – such as Window Manager s, GUI Widget Toolkit s and Desktop Environment s, or application-specific GUIs, such as Point Of Sale – provide/define all such details. As such, the "typical" X interface has varied tremendously over the years.

A Window Manager controls the placement and appearance of application windows. This may have an interface akin to that of Microsoft Windows or of the Macintosh (examples include Metacity in GNOME , KWin in KDE or Xfwm in Xfce ) or have radically different controls (such as a Tiling Window Manager ). The window manager may be bare-bones (''e.g.'' Twm , the basic window manager supplied with X) or offer functionality verging on that of a full desktop environment (''e.g.'' Enlightenment ).

Many users use X with a full Desktop Environment , which includes a window manager, various applications and a consistent 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 Shortcut s 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 . 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 Canonical implementation of X. Due to the liberal Licensing , a number of variations, both Free and Proprietary , 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.

  Running Rootless On Microsoft "http://wwwinformationdelightinfo/information/entry/Windows_XP" class="copylinks">Windows XP The screen shows X applications ( Xeyes , xclock, Xterm ) sharing the screen with native Windows applications (Date and Time, Calculator)]]


  On "http://wwwinformationdelightinfo/information/entry/Unix" class="copylinks">UNIX ( Solaris 8)]]


  { Class "wikitable"