X Window System - Purpose and Abilities

Purpose and Abilities

X is an architecture-independent system for remote graphical user interfaces and rich input device capabilities which allows many people to share the processing power of a time-sharing computer and to collaborate with each other through client applications running on remote computers. Each person using a networked terminal has the ability to interact with the display with any type of user input device. Due to the ubiquity of support for X software on Unix, Linux and Mac OS X, X is commonly used to run client applications on personal computers even when there is no need for time-sharing.

X provides windowing on computer displays and manages keyboard, pointing device control functions and touchscreens. In its standard distribution it is a complete, albeit simple, display and interface solution which 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.

X provides the basic framework, or primitives, for building such GUI environments: drawing and moving windows on the display and interacting with a mouse, keyboard or touchscreen. X does not mandate that the user interface be present – individual client programs known as window managers handle this. The window manager is not necessary and programs may use X's graphical abilities with no user interface. 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) abstraction layer on top of the operating system kernel.

Unlike most earlier 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's network protocol is based on X command primitives and, with GLX, OpenGL 3D primitives rather than on a more basic framebuffer copying paradigm. This approach allows both 2D and 3D operations to be fully accelerated on the remote X server.

When used across the network, bandwidth and latency can both be significant issues in the usability of certain software models. Bandwidth is a key factor both in watching video in 2D and in transferring textures for 3D. Latency can be a concern in interactive applications – most obviously games – but for high levels of latency even basic menu manipulation can become difficult.

X provides no support for audio, although several projects exist in this niche, some also providing transparent network support. Some are PulseAudio, Advanced Linux Sound Architecture (ALSA), Open Sound System (OSS), and JACK Audio Connection Kit (JACK).

X also lacks support for user-defined stored procedures on the X server, which might have allowed for the dynamic construction of higher order primitives as seen in NeWS, which could reduce bandwidth demands from requiring fewer primitives to be sent, and improve certain types of interaction by removing round trips to the remote X client program in some varieties of menu interactions, picking, window management, and so on.

X is often used in conjunction with an X session manager to implement sessions. Usually, a session is started by the X display manager. However, the user can also start a session by manually running the xinit or startx programs.

Read more about this topic:  X Window System

Famous quotes containing the words purpose and/or abilities:

    Whoever considers morality the main objective of human existence, seems to me like a person who defines the purpose of a clock as not going wrong. The first objective for a clock, is, however, that it does run; not going wrong is an additional regulative function. If not a watch’s greatest accomplishment were not going wrong, unwound watches might be the best.
    Franz Grillparzer (1791–1872)

    We should spend less time ranking children and more time helping them to identify their natural competencies and gifts and cultivate these. There are hundreds and hundreds of ways to succeed and many, many different abilities that will help you get there.
    Howard Gardner (20th century)