What is X11 exactly?

Like many words, “X11” can have multiple meanings.

“X11” is, strictly speaking, a communication protocol. In the sentences “X primarily defines protocol and graphics primitives …” and “X does not mandate the user interface …”, that's what X refers to. X is a family of protocols, X11 is the 11th version and the only one that's been in use in the last 25 years or so.

The first sentence in your question refers to a software distribution which is the reference implementation of the X11 protocol. The full name of this software distribution is “the X Window System”. This distribution includes programs that act as servers in the X11 protocol, programs that act as clients in the X11 protocol, code libraries that contain code that makes use of the X11 protocol, associated documentation, resources such as fonts and keyboard layouts that can be used with the aforementioned programs and libraries, etc. Historically, this software distribution was made by MIT; today it is maintained by the X.Org Foundation.

The X11 protocol allows applications to create objects such as windows and use basic drawing primitives (e.g. fill a rectangle, display some text). Widgets like buttons, menus, etc. are made by client libraries. The X Window System includes a basic library (the Athena widget set) but most applications use fancier libraries such as GTK+, Qt, Motif, etc.

Some X11 programs don't have a graphical user interface at all, for example command line tools such as xset, xsel and xdotool, key binding programs such as xbindkeys, etc. Most X11 programs do of course have a GUI.


X11, aka X.org Foundation Windowing is basically used by other desktop environments like KDE and GNOME, among many others, to provide the abstract interface to managing a GUI. Without relying on X, KDE/GNOME/others would have to write the code to do low-level coding things themselves. Instead, KDE/GNOME communicate back and forth with X (it runs as a server process that 'clients' connect to).

Tags:

X11