What is the X Window System? (X, Xorg, X11)

Featured Image - X Window System

From its beginning, Unix and all the operating systems based on it were text-based. It means that you have to learn a set of commands and use them to perform various operations. With the passage of time, Graphical User Interfaces (GUI) were included in almost all operating systems. Soon GUI get popular as they are user-friendly and easy to understand and use, especially for beginners.

The X window system (also known as X11 or simply X) provides GUI facilities both to a local desktop and in a network environment. In this tutorial, you will learn about the X window system, how it works, its elements, and some of its advantages.

What is the X system?

X is a windowing system used to display bitmaps in Unix-based operating systems. In other words, the X system provides the base for implementing a GUI in Linux. For instance, the X system allows you

  • to run an application in windows
  • to move windows around the screen
  • click on items

So, without X you will have to interact with the operating system using a text-based interface in which you would need to type commands. X will give your Linux-based operating system a similar look and feel that you see in Microsoft Windows.

[powerkit_alert type=”info” dismissible=”false” multiline=”false”]
Note: X11 is another name of the X window system that is also called X for short, or formally as X-Windows.

The X window system was started as a project at MIT (Massachusetts Institute of Technology) back in 1984. This project is led and managed by the X.Org organization as open-source. X.Org server is available as free and open-source software under the MIT license.

How does X System work?

In an X system, the underlying engine is the X protocol, which manages displays on local as well as remote systems. This protocol follows a client-server model. Clients are simply programs whereas the X server is responsible for displaying everything on the demand of clients, even if they are not residing on the same machine.

[powerkit_alert type=”info” dismissible=”false” multiline=”false”]
Note: the traditional roles of client/server are reversed in an X system. The server runs on a local computer offering display and other services to client programs running either locally or remotely over distributed networks.

It is worth mentioning here that X by itself is not sufficient for a graphical user interface. Its main objective is to draw rectangles, lines, bitmaps, and other several shapes and to deals with font settings. X does not mandate the user interface; this is handled by individual programs.

Components of Linux GUI

One of the great things about the Linux GUI is that it is modular in nature. This modularity allows the flexibility of selecting and using different components for customization of the GUI. This option is not present in other operating systems. The Linux GUI is composed of the following components that work together to provide a graphical experience.

X Server

It is called the heart of Linux GUI, as it is responsible for drawing windows, dialog boxes, and buttons graphically on the display screen.

Another job of X Server is that it manages the concerned hardware devices (such as keyboard, mouse) as well. For the sake of proper functioning of the system, it helps in providing a display, video, sound driver, and all types of hardware configuration settings such as keyboard, mouse, etc.

The question is why is it called a server?

The answer is that it is capable of displaying its output not only on the local desktops but also on remote computers present somewhere in the network. However, the remote computer must also be running X server software.

[powerkit_alert type=”info” dismissible=”false” multiline=”false”]
Note: You can use the Display Environment variable on your system to set the IP Address of the remote computer, where the X server is going to send its output.

About X.org

Over the years multiple X server software packages have been implemented on the Linux system. X.org-X11 is currently the most commonly implemented (and the default) X server system, you will find in modern Linux distributions.

X.org is developed from the XFree86 package, which was the default X server in most Linux distributions before 2004. The Linux community migrated from XFree86 to X.org because of some licensing issues. But, both of them are very much similar and work in pretty much the same way. You can say X.org is like an advanced form of XFree86.

Windows Manager

While the X server creates a window, the windows manager customizes the looks of a window and how it behaves. The window manager is responsible for controlling all types of graphics through which a user can interact with the system. The window manager helps in providing graphics of buttons, borders, colors of background, etc.

You can say that the X server is responsible to manage all the software and hardware configuration whereas the window manager works on the graphics-related items e.g., colors, other such graphics, etc.

There is a long list of different window managers that you can use in Linux, each one offers a different look and feel for the GUI environment.

Some of the most popular are presented below

  • enlightenment
  • fvwm (feeble virtual window manager)
  • kwin
  • sawfish
  • twm (tab window manager)
  • wmaker (window maker)

Now you may have a question rising in your mind about which one of the above mentioned is the best, well the answer is that it depends on your choice.

Some window managers are very elegant and are fully featured such as enlightenment, kwin, and sawfish. Whereas other window managers are minimal in nature such as fvwm, twm, and wmaker. Now it depends on different users and their preferences to select a particular window manager.

Minimal window managers are not very fancy, whereas others (e.g., enlightenment or kwin) are more advanced. The advanced window managers are full-featured managers available on your system that helps Microsoft Windows users to easily understand and use Linux.

Desktop environment

The desktop environment leverages the looks of the windows created by the windows manager. Then it adds a series of tools and utilities to make the GUI truly useful. The desktop environment basically ties all the GUI components together into a single cohesive environment.

The desktop environment is optional but it is also highly recommended. There are some Linux distributions, which do not have a desktop environment installed (e.g., those designed for security). But those distributions which are designed for end-users need to have a very nice desktop environment configured.

Similar to the X server and window managers, the desktop environment you might use on your Linux system is modular which means you can try out different environments and find out which one you like.

The two most common desktop environments currently used with the Linux system include.

  • KDE

KDE is a useful desktop environment that provides several functionalities you are used to with Microsoft Windows. It is the default desktop environment in many Linux distributions. Other distributions such as Red Hat use GNOME as a default desktop environment.

All the above-mentioned components work hand-in-hand to create an overall graphical user interface environment on a Linux system. And you can mix and match all these components to customize the system according to your taste and preferences.

Advantages of X windows system

  1. X provides a stable and cost-efficient model where legacy systems can be used with powerful computers.
  2. X works with any type of hardware-based graphic system, making it portable. So, it can be used with high-end PCs as well as with tiny embedded devices.
  3. The networking capabilities of X allow easy management of thousands of computers, deployment of thin clients, and remote launching of applications.
Notify of
Receive notifications when your comment receives a reply. (Optional)
Your username will link to your website. (Optional)

Inline Feedbacks
View all comments
You May Also Like