Based on the Linux Master 2 exam syllabusReport an error
| Item | Content |
|---|---|
| Origin | MIT, 1984 (Project Athena) |
| Nature | Both a system and a protocol providing a graphical environment |
| Features | Network-based · platform-independent · does not enforce policy |
A question that asks you to pick "the incorrect feature of the X Window System" flips one of the lines below into a choice.
| Feature | Meaning | Example of a flipped wrong answer |
|---|---|---|
| Network protocol-based | Server and client talk through an agreement called the X protocol. The method is the same whether on the same computer or another | "It works only within the same computer" |
| Client/server structure | The drawing side (server) and the requesting side (client) are separate programs | "Programs draw directly to the screen" |
| Platform-independent | Not tied to a particular operating system or hardware. It works between different kinds of machines too | "It can be used only on Linux" |
| Does not enforce policy | It does not fix the look or operation of windows, providing only the means | "The window look is fixed as one" |
| Separate from the kernel | It is a user-space program | "It is included in the kernel" |
| Open software | The source is public so anyone can implement and distribute it | "Only a specific company can implement it" |
echo $XDG_SESSION_TYPE. It prints x11 or wayland.This is an especially confusing part of the X Window System, so it makes a good exam question.
[ The computer in front of me ] [ A distant server ]
X server X client
screen · keyboard · mouse the actual program
(the side with the hardware) (xterm, gedit ...)
│ │
│◄──── request to draw on the screen ────┤
├───── passes keyboard/mouse input ─────►│| Item | X server | X client |
|---|---|---|
| What it is | The side with the display and input devices | The application |
| What it does | Draws on the screen and passes on input | Requests what to draw |
| Where it is | In front of the user | Anywhere (remote is possible) |
| Example | The screen of my laptop | xterm, xclock, a browser |
It makes sense if you think "the side that provides the resource (the screen) is the server". On the web, the side that holds the data is the server, but in X it is the side that holds the screen that is the server. So the computer in front of me becomes the X server.
X client (xterm) X server (my screen)
│ │
├── ① Request "draw a window here" ────────►│
│◄─ ② Reply "that window's size is this" ─┤
│◄─ ③ Event "the A key was pressed" ──────┤
│◄─ ④ Error "there is no such window" ────┤| Message | Direction | Content |
|---|---|---|
| Request | Client → server | Creating windows, drawing lines and text, asking for info |
| Reply | Server → client | The answer to a request that asked for information |
| Event | Server → client | Keyboard and mouse input, a window being covered or uncovered, etc. |
| Error | Server → client | The request could not be processed |
| Situation | X server | X client |
|---|---|---|
Run gedit on my laptop and display it on my screen | My laptop (its X server program) | gedit running on my laptop |
From a home laptop, connect to the office server and run gedit, with the window appearing on the home laptop | The home laptop | gedit running on the office server |
| On a monitorless server, run a graphical installer, with the window appearing on the administrator's PC | The administrator's PC | The installer running on the server |
| Computer A's program window shows on computer B's monitor | B | A's program |
1984 X Window System started at MIT
│
1987 X11 the version number still in use today
│
1992 XFree86 free implementation for PC Unix. The standard for a long time
│ split apart by a license change in 2004
▼
2004 X.org Server split off from XFree86. The current standard
│
▼
2008~ Wayland the next-generation approach meant to replace X| Name | Nature |
|---|---|
| XFree86 | An X implementation for PCs that was the standard for a long time. It lost leadership over a license issue |
| X.org Server | An implementation split off from XFree86. The current standard |
| Wayland | A next-generation display server protocol that strips away X's complicated structure |
Questions ask the evolution order
XFree86 → X.org Server → Waylandas is. Memorize the order of the three names.
X11 remains in many places.XWayland.The names that appear mixed in the choices are not the same kind. First sort out what each name is a name of.
| Name | Kind | One-line description |
|---|---|---|
| X Window System | The whole system | The name for the protocol and its implementations together |
| X11 | Protocol version | The 11th edition, released in 1987. The R in X11R6 and X11R7 is the release within it |
| XFree86 | X server implementation (project) | A free implementation for PCs. The 86 in the name comes from the Intel x86 family |
| X.org Server | X server implementation | The current standard that split off from XFree86 |
| Wayland | Protocol (different from X) | A new protocol meant to replace X11 |
| XWayland | Compatibility layer | An X server that runs on top of Wayland |
X11 Wayland
application (X client) application (Wayland client)
│ │
X server ◄──► window manager · compositor compositor (display server + window management)
│ │
kernel · graphics card kernel · graphics card| Item | X11 | Wayland |
|---|---|---|
| Appeared | 1987 | Started in 2008 |
| What handles the screen | X server + a separate window manager | A single compositor doubles as both |
| Network transparency | Built into the protocol | Not in the protocol itself |
| Existing X programs | Run as they are | Run through XWayland |
| Representative implementations | X.org Server | Weston (reference implementation), and the compositors of GNOME and KDE |
The X Window System provides only "how to draw" and does not decide "how it will look".
X Window System provides only the basic functions for drawing windows
│
├── window borders · minimize button · moving? → handled by the window manager
├── login screen? → handled by the display manager
└── panel · file manager · integrated environment? → handled by the desktop environment| Term | Meaning |
|---|---|
| X11 | The 11th version of the X Window System. Still in use today |
| Network transparency | The property that a program is displayed on screen the same way whether it is local or remote |
| XWayland | A compatibility layer for running existing X programs in a Wayland environment |
| Display server | A program that manages screen output and input. X server and Wayland compositors fall under it |
Tomorrow we cover the layers of libraries and toolkits used to build X clients.
Click a choice to reveal the answer and explanation.
Question 1
Which of the following is the X server in the X Window System?
Question 2
Which of the following lists the evolution order of X server implementations correctly?
Question 3
Which of the following is not a correct description of the X Window System?
Question 4
Which of the following is the next-generation display server protocol designed to replace X?
Question 5
Which property of the X Window System lets the screen of a program run on a remote computer be displayed in the same way as on the local computer?