X Window System
The X Window System (X, in short) is a platform consisting of a toolkit and a protocol. It is also a specification, a set of documents that teaches you how to do something. That something is a framework upon which graphical user interfaces can be built.
An X implementation, as per the specification, is a server/client system, with X providing the server part, and various other applications being the clients. X can accept clients either locally or remotely, via network connections. In layman terms, this means for example that you can have an entire desktop (or just one window) that displays on your computer and which actually runs on another computer.
By itself, an X implementation doesn't do much that can be percieved by humans. It is a middle-man, a common ground that can be used by other applications to build an interface that can be used by humans. It provides graphical drivers as well as drivers for various types of interfaces: touchscreens, mice, keyboards, screen-readers and so on.
It's important to realise that an X implementation is just another application, running on a computer somewhere. It is not part of the operating system. You can run several X implementations at the same time. You can run implementations alongside a completely different graphical interface (such as under Microsoft Windows).
X implementations can be built for any operating system, and have been, for quite a few.
- Some of the most popular is XFree86*, an open-source implementation which has been used by a wide variety of Linux and BSD distributions as well as Unices since 1992. It has been forked as another implementation, X.org*, in 2004, following disagreements in the community about the licensing and design of XFree86.
- Another well-known X implementation is Cygwin/X*, which runs under Microsoft Windows and is meant to provide an X server for applications ported to MS Windows that expect an X environment to run.
When you run an X server by itself, all you get is a blank screen and a mouse cursor (provided you configured it to use the right video and mouse drivers). You need more applications in order to obtain a working desktop.
Blackbox is such an X client, a window manager. As you can imagine, implementing and managing windows is one of the most important jobs in an X environment, which is why the choice of window manager is important.
Why is X such a tedious approach towards a graphical desktop? Because it follows the UNIX philosophy: interconnecting smaller tools, each of them doing a small part of the work well. The X server does the groundwork and lays the foundation. The X clients can pick up from there and implement any kind of interface, as long as it falls within the rules of the X specification. And it's important to note that indeed any interface can be built, not necessarily a graphical one.