X.Org Server is the
free and open-source
Free and open-source software (FOSS) is a term used to refer to groups of software consisting of both free software and open-source software where anyone is freely licensed to use, copy, study, and change the software in any way, and the source ...
implementation of the
X Window System
The X Window System (X11, or simply X) is a windowing system for bitmap displays, common on Unix-like operating systems.
X provides the basic framework for a GUI environment: drawing and moving windows on the display device and interacting wit ...
display server
In computing, a windowing system (or window system) is software that manages separately different parts of display screens. It is a type of graphical user interface (GUI) which implements the WIMP (windows, icons, menus, pointer) paradigm for ...
stewarded by the
X.Org Foundation
The X.Org Foundation is a non-profit corporation chartered to research, develop, support, organize, administrate, standardize, promote, and defend a free and open accelerated graphics stack. This includes, but is not limited to, the following p ...
.
Implementations of the client-side
X Window System
The X Window System (X11, or simply X) is a windowing system for bitmap displays, common on Unix-like operating systems.
X provides the basic framework for a GUI environment: drawing and moving windows on the display device and interacting wit ...
protocol exist in the form of ''X11 libraries'', which serve as helpful APIs for communicating with the X server. Two such major X libraries exist for X11. The first of these libraries was
Xlib
Xlib (also known as libX11) is an X Window System protocol client library written in the C programming language. It contains functions for interacting with an X server. These functions allow programmers to write programs without knowing the d ...
, the original C language X11 API, but another C language X library,
XCB
XCB (''X protocol C-language Binding'') is a library implementing the client-side of the X11 display server protocol. XCB is written in the C programming language and distributed under the MIT License. The project was started in 2001 by B ...
, was created later in 2001. Other smaller X libraries exist, both as interfaces for
Xlib
Xlib (also known as libX11) is an X Window System protocol client library written in the C programming language. It contains functions for interacting with an X server. These functions allow programmers to write programs without knowing the d ...
and
XCB
XCB (''X protocol C-language Binding'') is a library implementing the client-side of the X11 display server protocol. XCB is written in the C programming language and distributed under the MIT License. The project was started in 2001 by B ...
in other languages, and as smaller standalone X libraries.
The services with which the X.Org Foundation supports X Server include the packaging of the releases; certification (for a fee); evaluation of improvements to the code; developing the web site, and handling the distribution of monetary donations. The releases are coded, documented, and packaged by global
developer
Developer may refer to:
Computers
* Software developer, a person or organization who develop programs/applications
* Video game developer, a person or business involved in video game development, the process of designing and creating games
* Web d ...
s.
Software architecture
The X.Org Server implements the server side of the
X Window System core protocol
The X Window System core protocolRobert W. Scheifler and James Gettys: ''X Window System: Core and extension protocols, X version 11, releases 6 and 6.1'', Digital Press 1996, RFC 1013Grant EdwardsAn Introduction to X11 User Interfaces/ref> is the ...
version 11 (X11) and extensions to it, e.g. RandR.
Version 1.16.0 integrates support for
systemd
systemd is a software suite that provides an array of system components for Linux operating systems. Its main aim is to unify service configuration and behavior across Linux distributions; Its primary component is a "system and service manager ...
-based launching and management which improved boot performance and reliability.
Device Independent X (DIX)
The Device Independent X (DIX) is the part of the X.Org Server that interacts with clients and implements software rendering. The main loop and the event delivery are part of the DIX.
An X server has a tremendous amount of functionality that must be implemented to support the X core protocol. This includes code tables, glyph rasterization and caching,
XLFDs, and the core rendering API which draws graphics primitives.
Device Dependent X (DDX)
The Device Dependent X (DDX) is the part of the x-server that interacts with the hardware. In the X.Org Server source code, each directory under "hw" corresponds to one DDX. Hardware comprises graphics cards as well as mouse and keyboards. Each driver is hardware specific and implemented as a separate loadable module.
2D graphics driver
For historical reasons the X.Org Server still contains graphics device drivers supporting some form of 2D rendering acceleration. In the past,
mode-setting
Mode setting is a software operation that activates a display mode (screen resolution, color depth, and refresh rate) for a computer's display controller by using VESA BIOS Extensions or UEFI Graphics extensions (on more modern computers).
The d ...
was done by an X-server graphics device driver specific to some
video controller
A graphics card (also called a video card, display card, graphics adapter, VGA card/VGA, video adapter, display adapter, or mistakenly GPU) is an expansion card which generates a feed of output images to a display device, such as a computer moni ...
hardware (''e.g.'', a
GPU
A graphics processing unit (GPU) is a specialized electronic circuit designed to manipulate and alter memory to accelerate the creation of images in a frame buffer intended for output to a display device. GPUs are used in embedded systems, mobil ...
). To this mode-setting functionality, additional support for 2D acceleration was added when such became available with various GPUs. The mode-setting functionality was moved into the
DRM
DRM may refer to:
Government, military and politics
* Defense reform movement, U.S. campaign inspired by Col. John Boyd
* Democratic Republic of Madagascar, a former socialist state (1975–1992) on Madagascar
* Direction du renseignement milita ...
and is being exposed through a DRM mode-setting interface, the new approach being called "kernel mode-setting" (KMS). But the 2D rendering acceleration remained.
In
Debian
Debian (), also known as Debian GNU/Linux, is a Linux distribution composed of free and open-source software, developed by the community-supported Debian Project, which was established by Ian Murdock on August 16, 1993. The first version of D ...
the 2D graphics drivers for the X.Org Server are packaged individually and called ''xserver-xorg-video-*''. After installation the 2D graphics driver-file is found under
/usr/lib/xorg/modules/drivers/
. The package xserver-xorg-video-nouveau installs
nouveau_drv.so
with a size of 215 KiB, the proprietary
Nvidia GeForce driver
GeForce is a brand of graphics processing units (GPUs) designed by Nvidia. As of the GeForce 40 series, there have been eighteen iterations of the design. The first GeForce products were discrete GPUs designed for add-on graphics boards, inten ...
installs an 8 MiB-sized file called
nvidia_drv.so
and
Radeon Software
Radeon () is a brand of computer products, including graphics processing units, random-access memory, RAM disk software, and solid-state drives, produced by Radeon Technologies Group, a division of AMD. The brand was launched in 2000 by ATI Tech ...
installs
fglrx_drv.so
with a size of about 25MiB.
The available
free and open-source graphics device driver
A free and open-source graphics device driver is a software stack which controls computer-graphics hardware and supports graphics-rendering application programming interfaces (APIs) and is released under a free and open-source software license ...
s are being developed inside of the
Mesa 3D
Mesa, also called Mesa3D and The Mesa 3D Graphics Library, is an open source implementation of OpenGL, Vulkan, and other graphics API specifications. Mesa translates these specifications to vendor-specific graphics hardware drivers.
Its most ...
-project. While these can be recompiled as required, the development of the proprietary DDX 2D graphics drivers is greatly eased when the X.Org Server keeps a stable API/ABI across multiple of its versions.
With version 1.17 a generic method for mode-setting was mainlined. The
xf86-video-modesetting
package, the Debian-package being called
xserver-xorg-video-modesetting
, was retired, and the generic modesetting DDX it contained was moved into the server package to become the KMS-enabled default DDX, supporting the vast majority of AMD, Intel and NVidia GPUs.
On April 7, 2016 AMD employee Michel Dänzer released
xf86-video-ati
version 7.7.0 and
xf86-video-amdgpu
version 1.1.0, the latter including support for their
Polaris
Polaris is a star in the northern circumpolar constellation of Ursa Minor. It is designated α Ursae Minoris ( Latinized to ''Alpha Ursae Minoris'') and is commonly called the North Star or Pole Star. With an apparent magnitude that ...
microarchitecture.
= Acceleration architectures
=
There are (at least) XAA (XFree86 Acceleration Architecture),
EXA
A metric prefix is a unit prefix that precedes a basic unit of measure to indicate a multiple or submultiple of the unit. All metric prefixes used today are decadic. Each prefix has a unique symbol that is prepended to any unit symbol. The pre ...
,
UXA and
SNA.
In the
X Window System
The X Window System (X11, or simply X) is a windowing system for bitmap displays, common on Unix-like operating systems.
X provides the basic framework for a GUI environment: drawing and moving windows on the display device and interacting wit ...
, XFree86 Acceleration Architecture (XAA) is a driver architecture to make a video card's 2D
hardware acceleration
Hardware acceleration is the use of computer hardware designed to perform specific functions more efficiently when compared to software running on a general-purpose central processing unit (CPU). Any transformation of data that can be calcula ...
available to the X server.
It was written by
Harm Hanemaayer
Harm is a moral and legal concept.
Bernard Gert construes harm as any of the following:
* pain
* death
* disability
* mortality
* loss of abil ity or freedom
* loss of pleasure.
Joel Feinberg gives an account of harm as setbacks to ...
in 1996 and first released in
XFree86
XFree86 is an implementation of the X Window System. It was originally written for Unix-like operating systems on IBM PC compatibles and was available for many other operating systems and platforms. It is free and open source software under the X ...
version 3.3. It was completely rewritten for XFree86 4.0. It was removed again from X.Org Server 1.13.
Most drivers implement acceleration using the XAA module. XAA is on by default, though acceleration of individual functions can be switched off as needed in the server configuration file (
XF86Config
or
xorg.conf
).
The driver for the
ARK chipset
Ark or ARK may refer to:
Biblical narratives and religion Hebrew word ''teva''
* Noah's Ark, a massive vessel said to have been built to save the world's animals from a flood
* Ark of bulrushes, the boat of the infant Moses
Hebrew ''aron''
* ...
was the original development platform for XAA.
In X.Org Server release 6.9/7.0,
EXA
A metric prefix is a unit prefix that precedes a basic unit of measure to indicate a multiple or submultiple of the unit. All metric prefixes used today are decadic. Each prefix has a unique symbol that is prepended to any unit symbol. The pre ...
was released as a replacement for XAA, as XAA supplies almost no speed advantage for current video cards. EXA is regarded as an intermediate step to converting the entire X server to using
OpenGL
OpenGL (Open Graphics Library) is a cross-language, cross-platform application programming interface (API) for rendering 2D and 3D vector graphics. The API is typically used to interact with a graphics processing unit (GPU), to achieve hardwa ...
.
= Glamor
=
Glamor is a generic, hardware independent, 2D acceleration driver for the X server that translates the X render primitives into
OpenGL
OpenGL (Open Graphics Library) is a cross-language, cross-platform application programming interface (API) for rendering 2D and 3D vector graphics. The API is typically used to interact with a graphics processing unit (GPU), to achieve hardwa ...
operations, taking advantage of any existing 3D OpenGL drivers. In this way, it is functionally similar to Quartz Extreme and QuartzGL (2D performance acceleration) for Apple
Quartz Compositor
Quartz Compositor is the display server (and at the same time the compositing window manager) in macOS. It is responsible for presenting and maintaining rasterized, rendered graphics from the rest of the Core Graphics framework and other render ...
.
The ultimate goal of GLAMOR is to obsolete and replace all the DDX 2D graphics device drivers and acceleration architectures, thereby avoiding the need to write X 2D specific drivers for every supported graphic chipset. Glamor requires a 3D driver with support for
shader
In computer graphics, a shader is a computer program that calculates the appropriate levels of light, darkness, and color during the rendering of a 3D scene - a process known as ''shading''. Shaders have evolved to perform a variety of spec ...
s.
Glamor performance tuning was accepted for
Google Summer of Code
The Google Summer of Code, often abbreviated to GSoC, is an international annual program in which Google awards stipends to contributors who successfully complete a free and open-source software coding project during the summer. , the program is ...
2014. Glamor supports
Xephyr
Xephyr is display server software implementing the X11 display server protocol based on KDrive which targets a window on a host X Server as its framebuffer. It is written by Matthew Allum. Xephyr is an X-on-X implementation and runs on X.Org Se ...
and
DRI3, and can boost some operations by 700–800%. Since its mainlining into version 1.16 of the X.Org Server, development on Glamor was continued and patches for the 1.17 release were published.
= Virtualization
=
There is a distinct and special DDX for instances of the X.Org Server which run on a guest system inside of a
virtualized environment: xf86-video-qxl, a driver for the "QXL video device".
SPICE
A spice is a seed, fruit, root, bark, or other plant substance primarily used for flavoring or coloring food. Spices are distinguished from herbs, which are the leaves, flowers, or stems of plants used for flavoring or as a garnish. Spices a ...
makes use of this driver though it works without it as well.
In the Debian repositories it is called xserver-xorg-video-qxl, cf. https://packages.debian.org/buster/xserver-xorg-video-qxl
Input stack
Under Debian, drivers related to input are found under
/usr/lib/xorg/modules/input/
. Such drivers are named e.g.
evdev_drv.so
,
mouse_drv.so
,
synaptics_drv.so
or
wacom_drv.so
.
With version 1.16, the X.Org Server obtained support for the
libinput
Wayland is a communication protocol that specifies the communication between a display server and its clients, as well as a C library implementation of that protocol. A display server using the Wayland protocol is called a ''Wayland compositor' ...
library in form of a wrapper called
xf86-input-libinput
. At the XDC 2015 in Toronto, libratbag was introduced as a generic library to support configurable mice.
xserver-xorg-input-joystick
is the input module for the X.Org server to handle classic joysticks and gamepads, which is not meant for playing games under X, but to control the cursor with a joystick or gamepad.
Other DDX components
; XWayland
: XWayland is a series of patches over the X.Org server codebase that implement an X server running upon the
Wayland protocol. The patches are developed and maintained by the Wayland developers for compatibility with X11 applications during the transition to Wayland, and was mainlined in version 1.16 of the X.Org Server in 2014.
When a user runs an X application from within
Weston
Weston may refer to:
Places Australia
* Weston, Australian Capital Territory, a suburb of Canberra
* Weston, New South Wales
* Weston Creek, a residential district of Canberra
* Weston Park, Canberra, a park
Canada
* Weston, Nova Scotia
* W ...
, it calls upon XWayland to service the request.
; XQuartz
: XQuartz is a series of patches from
Apple Inc.
Apple Inc. is an American multinational technology company headquartered in Cupertino, California, United States. Apple is the largest technology company by revenue (totaling in 2021) and, as of June 2022, is the world's biggest company ...
to integrate support for the X11 protocol into their
Quartz Compositor
Quartz Compositor is the display server (and at the same time the compositing window manager) in macOS. It is responsible for presenting and maintaining rasterized, rendered graphics from the rest of the Core Graphics framework and other render ...
, in a similar way to how XWayland integrates X11 into
Wayland compositor
Wayland is a communication protocol that specifies the communication between a display server and its clients, as well as a C library implementation of that protocol. A display server using the Wayland protocol is called a ''Wayland compositor' ...
s.
; Xspice
: Xspice is a device driver for the X.Org Server. It supports the QXL framebuffer device and includes a wrapper script which makes it possible to launch an X.Org Server whose display is exported via the
SPICE
A spice is a seed, fruit, root, bark, or other plant substance primarily used for flavoring or coloring food. Spices are distinguished from herbs, which are the leaves, flowers, or stems of plants used for flavoring or as a garnish. Spices a ...
protocol. This enables use of SPICE in a remote desktop environment, without requiring
KVM virtualization.
; Xephyr
:
Xephyr
Xephyr is display server software implementing the X11 display server protocol based on KDrive which targets a window on a host X Server as its framebuffer. It is written by Matthew Allum. Xephyr is an X-on-X implementation and runs on X.Org Se ...
is an X-on-X implementation. Since version 1.16.0, Xephyr serves as the primary development environment for the new 2D acceleration subsystem (Glamor), permitting rapid development and testing on a single machine.
; RandR
: RandR (''resize and rotate'') is a
communications protocol
A communication protocol is a system of rules that allows two or more entities of a communications system to transmit information via any kind of variation of a physical quantity. The protocol defines the rules, syntax, semantics and synchr ...
written as an extension to the
X11
The X Window System (X11, or simply X) is a windowing system for bitmap displays, common on Unix-like operating systems.
X provides the basic framework for a GUI environment: drawing and moving windows on the display device and interacting wi ...
protocol. XRandR provides the ability to resize, rotate and reflect the
root window {{Unreferenced, date=September 2008
In the X Window System, every window is contained within another window, called its parent. This makes the windows form a hierarchy. The root window is the root of this hierarchy. It is as large as the screen/d ...
of a screen. RandR is responsible for setting the screen refresh rate.
It allows for the control of multiple monitors.
IPC
The X.Org Server, and any x-client, each run as distinct processes. On Unix/Linux, a process knows nothing about any other processes. For it to communicate with another process, it is completely and utterly reliant on the kernel to moderate the communication via available
inter-process communication
In computer science, inter-process communication or interprocess communication (IPC) refers specifically to the mechanisms an operating system provides to allow the processes to manage shared data. Typically, applications can use IPC, categori ...
(IPC) mechanisms.
Unix domain socket
A Unix domain socket aka UDS or IPC socket ( inter-process communication socket) is a data communications endpoint for exchanging data between processes executing on the same host operating system. It is also referred to by its address family AF_U ...
s are used to communicate with processes running on the same machine. Special socket function calls are part of the System Call Interface. Although
Internet domain sockets can be used locally, Unix domain sockets are more efficient, since they do not have the
protocol
Protocol may refer to:
Sociology and politics
* Protocol (politics), a formal agreement between nation states
* Protocol (diplomacy), the etiquette of diplomacy and affairs of state
* Etiquette, a code of personal behavior
Science and technology
...
overhead (
checksum
A checksum is a small-sized block of data derived from another block of digital data for the purpose of detecting errors that may have been introduced during its transmission or storage. By themselves, checksums are often used to verify data ...
s, byte orders, etc.).
X.Org Server does not use
D-Bus
In computing, D-Bus (short for "Desktop Bus")
is a message-oriented middleware mechanism that allows communication between multiple processes running concurrently on the same machine. D-Bus was developed as part of the freedesktop.org project, ...
.
Sockets are the most common interprocess communication (IPC) method between the processes of the X server and its various X clients. It provides the Application Programming Interface (API) for communication in the TCP/IP domain and also locally only in the UNIX domain. There are several other APIs described in the X Transport Interface, for instance TLI (Transport Layer Interface). Other options for IPC between for the X client-server, require X Window system extensions, for instance the
MIT Shared Memory Extension (MIT-SHM).
Multiseat configuration
Multi-seat refers to an assembly of a single computer with multiple "seats", allowing multiple users to sit down at the computer, log in, and use the computer at the same time independently. The computer has multiple keyboards, mice, and monitors attached to it, each "seat" having one keyboard, one mouse and one monitor assigned to it. A "seat" consists of all hardware devices assigned to a specific workplace. It consists of at least one graphics device (graphics card or just an output and the attached monitor) and a keyboard and a mouse. It can also include video cameras, sound cards and more.
Due to limitation of the VT system in the Linux kernel and of the X core protocol (in particular, how X defines the relation between the root window and an output of the graphics card), multi-seat does not work out-of-the-box for the usual Linux distribution but necessitates a special configuration.
There are these methods to configure a multi-seat assembly:
* multiple
Xephyr
Xephyr is display server software implementing the X11 display server protocol based on KDrive which targets a window on a host X Server as its framebuffer. It is written by Matthew Allum. Xephyr is an X-on-X implementation and runs on X.Org Se ...
servers over a host xorg-server
* multiple instances of an xorg-server
** one graphics card per seat
** a single graphics card for all seats
The utilized command-line options of the xorg-server are:
*
-isolateDevice bus-id
Restrict device resets (output) to the device at bus-id. The bus-id string has the form bustype:bus:device:function (e.g., ‘PCI:1:0:0’). At present, only isolation of PCI devices is supported; i.e., this option is ignored if bustype is anything other than ‘PCI’.
*
vtXX
the default for e.g. Debian 9 Stretch is 7, i.e. by pressing ++ the user can switch to the VT running the xorg-server.
Only the user on the first monitor has the use of vt consoles and can use ++x to select them. The other users have a
GDM login screen and can use xorg-server normally, but have no vt's.
Even though a single user can utilize multiple monitors connected to the different ports of a single graphics card (cf. RandR), the method which is based on multiple instances of the xorg-server seems to require multiple
PCI
PCI may refer to:
Business and economics
* Payment card industry, businesses associated with debit, credit, and other payment cards
** Payment Card Industry Data Security Standard, a set of security requirements for credit card processors
* Pro ...
graphics cards.
It is possible to configure multi-seat employing only one graphics card, but due to limitations of the X protocol this necessitates the usage of
X Display Manager Control Protocol
In the X Window System, an X display manager is a graphical login manager which starts a login session on an X server from the same or another computer.
A display manager presents the user with a login screen. A session starts when a user ...
XDMCP.
There is also
Xdmx
In computing, the X Window System (commonly: X11, or X) is a network-transparent windowing system for bitmap displays. This article details the protocols and technical structure of X11.
Client–server model and network transparency
X uses a ...
(Distributed Multihead X).
Adoption
; Unix and Linux
: The X.Org Server runs on many free-software
Unix-like
A Unix-like (sometimes referred to as UN*X or *nix) operating system is one that behaves in a manner similar to a Unix system, although not necessarily conforming to or being certified to any version of the Single UNIX Specification. A Unix-li ...
operating systems, including being adopted for use by most
Linux distribution
A Linux distribution (often abbreviated as distro) is an operating system made from a software collection that includes the Linux kernel and, often, a package management system. Linux users usually obtain their operating system by downloading one ...
s and
BSD
The Berkeley Software Distribution or Berkeley Standard Distribution (BSD) is a discontinued operating system based on Research Unix, developed and distributed by the Computer Systems Research Group (CSRG) at the University of California, Berk ...
variants. It is also the X server for the
Solaris
Solaris may refer to:
Arts and entertainment Literature, television and film
* ''Solaris'' (novel), a 1961 science fiction novel by Stanisław Lem
** ''Solaris'' (1968 film), directed by Boris Nirenburg
** ''Solaris'' (1972 film), directed by ...
operating system. X.Org is also available in the repositories of
Minix 3
Minix 3 is a small, Unix-like operating system. It is published under a BSD-3-Clause license and is a successor project to the earlier versions, Minix 1 and 2.
The project's main goal is for the system to be fault-tolerant by detecting and rep ...
.
; Windows
:
Cygwin/X
Cygwin/X is an implementation of the X Window System that runs under Microsoft Windows. It is part of the Cygwin project, and is installed using Cygwin's standard setup system. Cygwin/X is free software, licensed under the X11 License.
Cygwin/ ...
,
Cygwin
Cygwin ( ) is a POSIX-compatible programming and runtime environment that runs natively on Microsoft Windows. Under Cygwin, source code designed for Unix-like operating systems may be compiled with minimal modification and executed.
The Cygwin in ...
's implementation of the X server for
Microsoft Windows
Windows is a group of several proprietary graphical operating system families developed and marketed by Microsoft. Each family caters to a certain sector of the computing industry. For example, Windows NT for consumers, Windows Server for serv ...
, uses the X.Org Server, as do VcXsrv (
Visual C++
Microsoft Visual C++ (MSVC) is a compiler for the C, C++ and C++/CX programming languages by Microsoft. MSVC is proprietary software; it was originally a standalone product but later became a part of Visual Studio and made available in both tria ...
X-server) and
Xming
Xming is an X11 display server for Microsoft Windows operating systems, including Windows XP and later.
Features
Xming provides the X Window System display server, a set of traditional sample X applications and tools, as well as a set of fonts. ...
. SSH clients such as
PuTTY
Putty is a material with high plasticity, similar in texture to clay or dough, typically used in domestic construction and repair as a sealant or filler. Although some types of putty (typically those using linseed oil) slowly polymerise and be ...
allow launching of X applications through X11 forwarding on the condition that it is enabled on both the server and client.
; OS X / macOS
:
OS X
macOS (; previously OS X and originally Mac OS X) is a Unix operating system developed and marketed by Apple Inc. since 2001. It is the primary operating system for Apple's Mac computers. Within the market of desktop and lapt ...
versions prior to
Mac OS X Leopard
Mac OS X Leopard (version 10.5) is the sixth software versioning, major release of macOS, Apple Inc., Apple's desktop and server operating system for Macintosh computers. Leopard was released on October 26, 2007 as the successor of Mac OS X Tig ...
(10.5) shipped with an XFree86-based server, but 10.5's X server adopted the X.Org codebase. Starting with
OS X Mountain Lion
OS X Mountain Lion (version 10.8) is the ninth major release of macOS, Apple Inc.'s desktop and server operating system for Macintosh computers. OS X Mountain Lion was released on July 25, 2012, for purchase and download through Apple's Mac Ap ...
, (10.8) X11 is not bundled in OS X; instead, it has to be installed from, for example, the open source
XQuartz
XQuartz is an open-source version of the X.Org X server, a component of the X Window System (X11, or shortened to simply X, and sometimes informally X-Windows) that runs on macOS. It formally replaced Apple's internal X11 app. The name "XQuart ...
project. As of version 2.7.4, X11.app/XQuartz does not expose support for high-resolution
Retina displays to X11 apps, which run in pixel-doubled mode on high-resolution displays.
; OpenVMS
: Current versions of the DECwindows X11 server for
OpenVMS
OpenVMS, often referred to as just VMS, is a multi-user, multiprocessing and virtual memory-based operating system. It is designed to support time-sharing, batch processing, transaction processing and workstation applications. Customers using Ope ...
are based on X.org Server.
History
The modern
X.Org Foundation
The X.Org Foundation is a non-profit corporation chartered to research, develop, support, organize, administrate, standardize, promote, and defend a free and open accelerated graphics stack. This includes, but is not limited to, the following p ...
came into being in 2004 when the body that oversaw X standards and published the official reference implementation joined forces with former
XFree86
XFree86 is an implementation of the X Window System. It was originally written for Unix-like operating systems on IBM PC compatibles and was available for many other operating systems and platforms. It is free and open source software under the X ...
developers. X11R6.7.0, the first version of the X.Org Server, was
fork
In cutlery or kitchenware, a fork (from la, furca 'pitchfork') is a utensil, now usually made of metal, whose long handle terminates in a head that branches into several narrow and often slightly curved tines with which one can spear foods ei ...
ed from XFree86 4.4 RC2.
The immediate reason for the fork was a disagreement with the new license for the final release version of XFree86 4.4, but several disagreements among the contributors surfaced prior to the split. Many of the previous XFree86 developers have joined the X.Org Server project.
In 2005, a great effort was put in the modularization of the X.Org server source code, resulting in a dual release by the end of the year. The X11R7.0.0 release added a new modular build system based on the
GNU Autotools
The GNU Autotools, also known as the GNU Build System, is a suite of programming tools designed to assist in making source code packages portable to many Unix-like systems.
It can be difficult to make a software program portable: the C compiler ...
, while X11R6.9.0 kept the old
imake
imake is a build automation system written for the X Window System. It was used by X from X11R1 (1987) to X11R6.9 (2005), and continued to be used in XFree86 (last commit 2009). It is implemented on top of the C preprocessor and make. The first ve ...
build system, both releases sharing the same codebase. Since then the X11R6.9 branch is maintained frozen and all the ongoing development is done to the modular branch. The new build system also brought the use of dlloader standard
dynamic linker
In computing, a dynamic linker is the part of an operating system that loads and links the shared libraries needed by an executable when it is executed (at "run time"), by copying the content of libraries from persistent storage to RAM, filling ...
to load plugins and drivers, deprecating the old own method. As a consequence of the modularization, the X11 binaries were moving out of their own
/usr/X11R6
subdirectory tree and into the global
/usr
tree on many
Unix
Unix (; trademarked as UNIX) is a family of multitasking, multiuser computer operating systems that derive from the original AT&T Unix, whose development started in 1969 at the Bell Labs research center by Ken Thompson, Dennis Ritchie, and ot ...
systems.
In June 2006, another effort was done to move the X.Org server source codebase from
CVS to
git
Git () is a distributed version control system: tracking changes in any set of files, usually used for coordinating work among programmers collaboratively developing source code during software development. Its goals include speed, data in ...
. Both efforts had the long-term goal of bringing new developers to the project. In the words of Alan Coopersmith:
In the 7.1 release, the KDrive framework (a small implementation of X written by
Keith Packard
Keith Packard (born April 16, 1963) is a software developer, best known for his work on the X Window System.
Packard is responsible for many X extensions and technical papers on X. He has been heavily involved in the development of X since the l ...
, which was not based on
XFree86
XFree86 is an implementation of the X Window System. It was originally written for Unix-like operating systems on IBM PC compatibles and was available for many other operating systems and platforms. It is free and open source software under the X ...
that X.Org developers used as a testing ground for new ideas, such as
EXA
A metric prefix is a unit prefix that precedes a basic unit of measure to indicate a multiple or submultiple of the unit. All metric prefixes used today are decadic. Each prefix has a unique symbol that is prepended to any unit symbol. The pre ...
) was integrated into the main codebase of X.Org server.
In 2008, the new DRI2, based on the
kernel mode-setting
Mode setting is a software operation that activates a display mode (screen resolution, color depth, and refresh rate) for a computer's display controller by using VESA BIOS Extensions or UEFI Graphics extensions (on more modern computers).
The d ...
(KMS) driver, replaced DRI. This change also set a major milestone in the X.Org server architecture, as the drivers were moved out from the server and
user space
A modern computer operating system usually segregates virtual memory into user space and kernel space. Primarily, this separation serves to provide memory protection and hardware protection from malicious or errant software behaviour.
Kernel ...
(UMS) to the
kernel space
A modern computer operating system usually segregates virtual memory into user space and kernel space. Primarily, this separation serves to provide memory protection and hardware protection from malicious or errant software behaviour.
Kernel ...
.
In 2013, the initial versions of DRI3 and Present extensions were written and coded by Keith Packard to provide a faster and
tearing
Tearing is the act of breaking apart a material by force, without the aid of a cutting tool. A tear in a piece of paper, fabric, or some other similar object may be the result of the intentional effort with one's bare hands, or be accidental. Un ...
-free 2D rendering. By the end of the year the implementation of
GLX
GLX (initialism for "OpenGL Extension to the X Window System") is an extension to the X Window System core protocol providing an interface between OpenGL and the X Window System as well as extensions to OpenGL itself. It enables programs wishing ...
was rewritten by Adam Jackson at
Red Hat
Red Hat, Inc. is an American software company that provides open source software products to enterprises. Founded in 1993, Red Hat has its corporate headquarters in Raleigh, North Carolina, with other offices worldwide.
Red Hat has become ass ...
.
Releases
See also
*
Reference implementation
In the software development process, a reference implementation (or, less frequently, sample implementation or model implementation) is a program that implements all requirements from a corresponding specification. The reference implementation o ...
part of a standard release package
*
X window manager
An X window manager is a window manager that runs on top of the X Window System, a windowing system mainly used on Unix-like systems.
Unlike MacOS Classic, macOS, and Microsoft Windows platforms (excepting Microsoft Windows explorer.exe shel ...
a package that is deliberately kept separate from the X server package
*
X video extension
The X video extension, often abbreviated as XVideo or Xv, is a video output mechanism for the X Window System. The protocol was designed by David Carver; the specification for version 2 of the protocol was written in July 1991. It is mainly use ...
*
evdev
evdev (short for 'event device') is a generic input event interface in the Linux kernel and FreeBSD. It generalizes raw input events from device drivers and makes them available through character devices in the /dev/input/ directory.
The us ...
*
xorg.conf
The file xorg.conf is a file used for configuring the X.Org Server
X.Org Server is the free and open-source implementation of the X Window System display server stewarded by the X.Org Foundation.
Implementations of the client-side X Window ...
*
XQuartz
XQuartz is an open-source version of the X.Org X server, a component of the X Window System (X11, or shortened to simply X, and sometimes informally X-Windows) that runs on macOS. It formally replaced Apple's internal X11 app. The name "XQuart ...
- An X server for macOS
*
Xming
Xming is an X11 display server for Microsoft Windows operating systems, including Windows XP and later.
Features
Xming provides the X Window System display server, a set of traditional sample X applications and tools, as well as a set of fonts. ...
- An X server for Windows
*
Xenocara
Xenocara is the OpenBSD build infrastructure for the project's customised X.Org Server that utilises a dedicated _x11 user by default to drop privileges and perform privilege separation in accordance to OpenBSD's "least privilege" policy.
Unti ...
References
External links
*
- A fully updated X server for Windows
{{Display Servers
X servers
Freedesktop.org
Software forks
Software that uses Meson