Skip to main content
Library homepage
Engineering LibreTexts

08-B.4: GUI Configuration

  • Page ID
  • \( \newcommand{\vecs}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \) \( \newcommand{\vecd}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash {#1}}} \)\(\newcommand{\id}{\mathrm{id}}\) \( \newcommand{\Span}{\mathrm{span}}\) \( \newcommand{\kernel}{\mathrm{null}\,}\) \( \newcommand{\range}{\mathrm{range}\,}\) \( \newcommand{\RealPart}{\mathrm{Re}}\) \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\) \( \newcommand{\Argument}{\mathrm{Arg}}\) \( \newcommand{\norm}[1]{\| #1 \|}\) \( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\) \( \newcommand{\Span}{\mathrm{span}}\) \(\newcommand{\id}{\mathrm{id}}\) \( \newcommand{\Span}{\mathrm{span}}\) \( \newcommand{\kernel}{\mathrm{null}\,}\) \( \newcommand{\range}{\mathrm{range}\,}\) \( \newcommand{\RealPart}{\mathrm{Re}}\) \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\) \( \newcommand{\Argument}{\mathrm{Arg}}\) \( \newcommand{\norm}[1]{\| #1 \|}\) \( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\) \( \newcommand{\Span}{\mathrm{span}}\)\(\newcommand{\AA}{\unicode[.8,0]{x212B}}\)

    2.8 Compare and contrast Linux graphical user interfaces.


    The graphical user interface (GUI) is a form of user interface that allows users to interact with electronic devices through graphical icons and audio indicator such as primary notation, instead of text-based user interfaces, typed command labels or text navigation. GUIs were introduced in reaction to the perceived steep learning curve of command-line interfaces (CLI), which require commands to be typed on a computer keyboard.

    A variety of thumbnail images showing some of the numerous Linux graphical user interface implementations
    Figure \(\PageIndex{1}\): Linux GUI. ("GUI" by Patrick McClanahan is licensed under CC BY-SA 4.0)

    The actions in a GUI are usually performed through direct manipulation of the graphical elements. Beyond computers, GUIs are used in many handheld mobile devices such as MP3 players, portable media players, gaming devices, smartphones and smaller household, office and industrial controls. The term GUI tends not to be applied to other lower-display resolution types of interfaces, such as video games, or not to include flat screens like volumetric displays. The term is restricted to the scope of two-dimensional display screens able to describe generic information, in the tradition of the computer science research at the Xerox Palo Alto Research Center.

    Display Servers

    A display server or window server is a program whose primary task is to coordinate the input and output of its clients to and from the rest of the operating system, the hardware, and each other. The display server communicates with its clients over the display server protocol, a communications protocol, which can be network-transparent or simply network-capable.

    The display server is a key component in any graphical user interface, specifically the windowing system.

    This diagram shows the logical ordering of: the kernel interfaces with the hardware, the display server interfaces with the kernel, the graphical interface interfaces with the display server and the user interacts with the graphical interface.
    Figure \(\PageIndex{1}\): Layers of a GUI based on a windowing system.
    ("Schema_of_the_layers_of_the_graphical_user_interface.svg" by ScotXWWikimedia Commons is licensed under CC BY-SA 3.0)


    X Window System

    The X Window System (X11, or simply X) is a windowing system for bitmap displays, common on Unix-like operating systems.

    X provides the basic framework for a GUI environment: drawing and moving windows on the display device and interacting with a mouse and keyboard. X does not mandate the user interface – this is handled by individual programs. As such, the visual styling of X-based environments varies greatly; different programs may present radically different interfaces.

    X originated at the Project Athena at Massachusetts Institute of Technology (MIT) in 1984. The X protocol has been at version 11 (hence "X11") since September 1987. The X.Org Foundation leads the X project, with the current reference implementation, X.Org Server, available as free and open-source software under the MIT License and similar permissive licenses.

    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. Instead, application software – such as window managers, GUI widget toolkits and desktop environments, or application-specific graphical user interfaces – define and provide such details. As a result, there is no typical X interface and several different desktop environments have become popular among users.

    The keyboard, display monitor and mouse are connected to the X Server. All applications also need to communicate to the user's peripheral devices through the X Server. If a remote X-Window client needs to access a local system it must also communicate with the remote X Server
    Figure \(\PageIndex{1}\): A graphic depicting how the X Window System operates.
    ("X_client_server_example.svg" by EfituWikimedia Commons is licensed under CC BY-SA 3.0)


    A window manager controls the placement and appearance of application windows. This may result in desktop interfaces reminiscent of those of Microsoft Windows or of the Apple Macintosh (examples include GNOME 2, KDE, Xfce) or have radically different controls (such as a tiling window manager, like wmii or Ratpoison). Some interfaces such as Sugar or Chrome OS eschew the desktop metaphor altogether, simplifying their interfaces for specialized applications. Window managers range in sophistication and complexity from the bare-bones (e.g., twm, the basic window manager supplied with X, or evilwm, an extremely light window-manager) to the more comprehensive desktop environments such as Enlightenment and even to application-specific window-managers for vertical markets such as point-of-sale.

    Many users use X with a desktop environment, which, aside from the window manager, includes various applications using a consistent user-interface. Popular desktop environments include GNOME, KDE Software Compilation and Xfce. The UNIX 98 standard environment is the (CDE). The initiative addresses interoperability between desktops and the components needed for a competitive X desktop.

    The X.Org Project

    The X.Org project provides an open source implementation of the X Window System. The development work is being done in conjunction with the community. The X.Org Foundation is the educational non-profit corporation whose Board serves this effort, and whose members lead this work.

    Xorg (commonly referred as simply X) is the most popular display server among Linux users. Its ubiquity has led to making it an ever-present requisite for GUI applications, resulting in massive adoption from most distributions. See the Xorg Wikipedia article or visit the Xorg website for more details.


    Wayland is a communication protocol that specifies the communication between a display server and its clients, as well as a C library implementation of that protocol. A display server using the Wayland protocol is called a Wayland compositor, because it additionally performs the task of a compositing window manager.

    Wayland is developed by a group of volunteers as a free and open-source community-driven project with the aim of replacing the X Window System with a modern, secure, simpler windowing system in Linux and other Unix-like operating systems. The project's source code is published under the terms of the MIT License, a permissive free software license.

    As part of its efforts, the Wayland project also develops a reference implementation of a Wayland compositor called Weston.

    Within the Linux community there are those who support X.Org, and those who support the use of Wayland. If you search for "X.Org vs Wayland" you can find numerous articles that discuss the comparison from different viewpoints.

    Adapted from:
    "Graphical user interface" by Multiple ContributorsWikipedia is licensed under CC BY-SA 3.0
    "Display server" by Multiple ContributorsWikipedia is licensed under CC BY-SA 3.0
    "X Window System" by Multiple ContributorsWikipedia is licensed under CC BY-SA 3.0
    "Xorg" by Multiple Contributors, Wikipedia is in the Public Domain, CC0

    08-B.4: GUI Configuration is shared under a CC BY-NC license and was authored, remixed, and/or curated by LibreTexts.

    • Was this article helpful?