(X - X11 - X Window System) Core Protocol
  • X Window System (X11, or simply X)
  • X11 is a windowing-system for bitmap displays, common on UNIX-likeoperating systems
  • X11 is a “major version” of the X protocol, which has evolved since inception
  • X11 is the most recent protocol and the most common
  • X11 is based on a client–server model:
    • a single server controls the input/output hardware, such as the screen, the keyboard, and the mouse
    • all application programs act as clients, interacting with the user and with the other clients via the server

X Protocol - Server Client Model

Server Client

Description

X Server

is a server and can be compared to a “web server” in that it is a process that listens for incoming connections that speak a particular protocol (the X protocol) and it issues answers. The connections come from X clients, which may be on the local host or on a remote host accessed over a network.

  • X requires input and it has a shared responsibility to manage that with the Kernel. Historically, X did a lot of hardware management itself. In modern times, on the Linux platform, X is gradually becoming “smaller” and delegating this responsibility to the Linux kernel. The advantages of this are: smaller X codebase; fewer “crossed-wires” with the kernel and X both trying to manage the same stuff. (an example of this is the Linux event interface, where events from mice etc. are interpreted and translated by the kernel and its drivers into the standard interface at /dev/input/event*, which is consumed by the X server). Note that on other platforms (BSD, Solaris (Oracle Solaris)) X is still quite monolithic

X Client

is a “window manager” that manages windows. It typically has the responsibility to:

  • decorate windows with bevels/borders
  • drop shadows
  • a menu bar containing buttons, etc
  • handle the logic of window placement
  • support windows being dragged, resized or re-arranged, etc

X Protocol - Implementations

Implementations of a X server, X libraries and a collection of clients, all talking X11:

  • XFree86 - largely defunct (deprecated ~2009?)
  • X.org - forked off XFree86 during 2003. fundamental technology underlying both the modern GNOME and KDE desktops and older CDE desktop environment
  • MacX - official X11 implementation for Mac OS X (support removed ~2009)
  • XQuartz - open source community effort to further develop and support X11 on Mac OS X