18

I'm reading Wikipedia about X11 and it says that:

In its standard distribution it is a complete, albeit simple, display and interface solution which delivers a standard toolkit and protocol stack for building graphical user interfaces on most Unix-like operating systems...

But later it says that:

X primarily defines protocol and graphics primitives - it deliberately contains no specification for application user-interface design, such as button, menu, or window title-bar styles.

So, do X11 provide widgets like a button or a window panel/frame, etc or not? What is a graphic primitive? What does X11 provide exactly?

It is also stated that:

X does not mandate the user interface; individual client programs handle this. Programs may use X's graphical abilities with no user interface.

What does this mean?

  • 4
    I think you should probably go to the conversation page corresponding to that page in Wikipedia and start a conversation aiming for the authors to clarify their article. – RealSkeptic Apr 13 '16 at 12:47
23

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.

| improve this answer | |
2

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).

| improve this answer | |
  • 2
    Also this help explain it, as well as provide some insight into why Wayland and other X replacements are being built: art.net/~hopkins/Don/unix-haters/x-windows/disaster.html – crajun Apr 13 '16 at 13:42
  • That is a rant. – Stefan Skoglund Feb 29 at 21:02
  • And it also in another way explains Ken Olsen's characterization of UNIX as snake oil peddler's products, but that IS capitalism ! The claim is design for MOTIF and run everywhere, nowadays it's more like design for MS windows and run everywhere (this a monopoly not a market.) Ken Olsen knew very well that design-for-MOTIF and run-on-everything is not in the producers interest - ergo it won't really happen. – Stefan Skoglund Feb 29 at 21:06
1

Some concepts:
- X Windows System Windowsing system. (make it possible for moving windows on display device and interacting with mouse and keyboard)
- X.Org Server An open-source implementation of X Windows System by X.Org Foundation.
- xterm terminal emulator for X Windows System.
- X Client: an application runs on an X server. X windows system requires the clients and server to operate separately. Applications, such QT, GTK and other X clients need the cooperation from X server to work successfully.

Previously, I also feel very confused on this problem. Initially, I installed linux system aside with windows, for many times I encountered issues with Xorg errors.
Recently, I use xclip on remote server. The software needs an environment variable DISPLAY to be set, which is not the case in my remote server. There is no monitor, mouse or keyboard, and the variable is managed by X server.

| improve this answer | |
1

The X11 window system had support (with manufacturers special support) for a fair number of rather complicated constructions/designs.

The usage of DisplayPostscript in NeWS (Sun/Sony) meant that the server had a complete and rather nice (Display)Postscript support built in. This support was remotely employed by the application for example a program running on an cray x-mp could with the same constraints/interface/abilities display a seismic chart on the computer in the same way as if the same chart were being printed out on an high-end laser printer/photocopier.

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.