“The version of X we know today is X11. There were nine
predecessor versions (one got skipped), but the first version to
escape widely was X10, which was released in 1986. Companies were
shipping it, and the vendors which [Keith Packard] formed the X
Consortium were starting to think that the job was done, but the X
developers successfully pleaded for the opportunity to make one
more “small” set of revisions to the X protocol. The result was X11
– a complete reworking of the whole system – which was released on
September 15, 1987; it is still running today.“There was a wealth of new ideas in X11, some of which made more
sense than others. One of those ideas was the notion of an external
window manager. In X, the window manager is just another process
working with the same API. This approach helped to create a
consistent API across windows, and it also made it possible to
manage broken (non-responding) applications in a way that some
other systems still can’t do. On the other hand, the external
window manager created a lot of on-screen flashing – a problem
which still pops up today – and it does not work entirely well with
modern compositing techniques, getting in the way of the
page-flipping operations needed to make things fast.” The use of selections for cut-and-paste operations was another
early X11 innovation. With selections, the source of selected data
advertises its availability, and the destination requests it in the
desired format. This mechanism allows data to be selected and moved
between applications in almost any format. Unfortunately, the “cut
buffer” concept was left in, so applications had to support both
modes; the fact that Emacs was not updated to use selections for a
very long time did not help. The existence of multiple selections
created interoperability problems between applications. On the
other hand, the selection mechanism proved to be a very nice
foundation for drag-and-drop interfaces, and it handled the
transition to Unicode easily.”
LPC: 25 years of X
By
Jonathan Corbet
Get the Free Newsletter!
Subscribe to Developer Insider for top news, trends, & analysis