Bookmark this page

Chapter 4. Adapting to Core System Changes

Abstract

Goal Manage core system components that have had significant changes, including the graphical desktop infrastructure, user authentication configuration, the NTP service, and Python version selection.
Objectives
  • Explain the difference between Wayland and the legacy X Window System, and configure a server or user session to use either Wayland or X.

  • Manage user authentication settings in PAM, NSS, and dconf with Authselect, and explain the differences between Authselect and Authconfig.

  • Maintain NTP time synchronization using Chrony, and configure the time zone with timedatectl.

  • Identify, install, and control the specific versions of Python available to a server.

Sections
  • Displaying the Desktop with Wayland and X (and Guided Exercise)

  • Managing User Authentication with Authselect (and Guided Exercise)

  • Configuring NTP with Chrony (and Guided Exercise)

  • Managing Python Versions in RHEL 8 (and Guided Exercise)

Lab

Adapting to Core System Changes

Displaying the Desktop with Wayland and X

Objectives

After completing this section, students should be able to:

  • Explain the difference between Wayland and the legacy X Window System

  • Configure a server or user session to use either Wayland or X

Wayland Windowing System

Wayland is a client/server windowing system designed to replace X11. The performance improvements of Wayland over X11 are derived from the simplification of the architecture.

Wayland Components

  • Wayland Compositor - combines the display server and compositor roles.

  • Wayland Client - the graphical application communicating with the Wayland Compositor. Wayland clients are responsible for performing their own rendering.

  • Linux Kernel - responsible for communicating between the Wayland Compositor, the event device driver handling input and output devices (evdev), and the kernel mode-setting API (KMS) for resolution, depth and refresh.

Switching to Wayland

Wayland is not an extension of the X11 window system, but a replacement for it.

Figure 4.1: The Wayland architecture

Reasons to Switch to Wayland

  • The X display server has become a bottleneck between clients, the compositor, and the kernel.

  • X has legacy code such as the rendering API that is rarely used but must remain to conform to the X11 protocol.

  • Most graphical desktops have a choice of compositor, which adds latency because the X display server must send the content to the compositor process for rendering, then return the rendered content to the X server to be displayed.

X11 Application Compatibility

X11 applications that have not been migrated to Wayland can still run in a Wayland compositor. XWayland is an Xorg server that runs as a Wayland client. When an X11 application is launched, the Wayland Compositor will call XWayland to handle the application's requests. XWayland is provided by the xorg-x11-server-Xwayland package.

Remote Rendering

Wayland is not network transparent, and does not support remote rendering. Instead, a remote rendering server, such as RDP or VNC desktop protocols, can be run on top of Wayland. It is also expected that upstream Wayland compositors will be created that include a remoting protocol.

Verify Wayland is Being Used

Use the following steps to determine whether your desktop is using Wayland.

[user@demo ~]$ loginctl
SESSION  UID USER  SEAT  TTY
      2 1000 user  seat0 tty2
     c1   42 gdm   seat0 tty1

2 sessions listed.

[user@demo ~]$ loginctl show-session 2 -p Type
Type=wayland

Gnome 3 uses Wayland by default. However, not all applications in Red Hat Enterprise Linux 8 have been migrated. Unmigrated applications are managed with an XWayland driver to provide their X server requirements.

If Wayland is incompatible with your graphics hardware or application, it is a simple process to revert to using Xorg. Uncomment the following line in /etc/gdm/custom.conf and then reboot your machine.

#WaylandEnable=false

This forces GDM to use Xorg and also sets the default session to Xorg.

Revision: rh354-8.0-0e36520