IT lexicon › Infra & Ops › X extension

X extension

Infra & Ops På svenska → Updated: 2026-10-08

The mechanism that has let X11 grow new capabilities for nearly forty years without the core protocol changing once.

The protocol version has been 11 since 1987. Everything added since — shaped windows, shared memory, anti-aliased text, multiple monitors, compositing, OpenGL — has shipped as an extension, each with a name and its own set of requests. A client sends QueryExtension with the name and gets back a major opcode plus the first event and error numbers the extension uses, or a reply saying the server doesn't have it. From then on the extension's requests travel over the same connection as everything else.

The design meant old clients always kept working and new ones could fall back when something was missing; xdpyinfo lists what a given server offers. The downside is that "X11" in practice means some fifty extensions of varying age and quality, several of which overlap and a few of which never quite worked. Wayland kept the idea but not the baggage: there the entire protocol is built from swappable extensions from day one.

← Back to the lexicon