Table of Contents

A Look Inside Linux series

A series of short topics on how Linux works and how to make it work the way you want it to, which I present during the weekly sessions of the Linux User Net. The target audience is Hams who are new to Linux and want to know more about it, as well as experienced Linux users who can learn more about their chosen operating system. These are my notes for the presentations. (Russ, KC7MM)

10. Linux System Layer 3: Graphics subsystem

Introduction

As we saw last week when we talked about the the Linux application layer, a Linux system doesn't require any video graphics capability. System services, application servers, and even user interfaces work fine without graphics.

However, there are many applications that require graphical rendering on a screen. And users these days expect to work in a graphical user interface.

In Linux, the answer to that demand is to add hardware and software that combine to make graphics capabilities available to applications. The basic components are:

Note that this is a fine example of the modular nature of Linux. Many applications don't use graphics, so they can be run without the complications inherent in graphics cards and their drivers. Plus, system resources are not wasted on unused capabilities. On the other hand, for apps that need graphics, a graphical subsystem can be bolted on without affecting existing, non-graphical, operations.

Two graphical systems are in common use:

What it does

The graphics subsystem includes the basic functions needed to work with computer graphics:

  1. Connects to graphics hardware through device drivers to:
    • Configure video properties such as screen resolution, color saturation.
    • Configure video monitors through HDMI, DisplayPort, VGA. This is part of the graphics hardware.
  2. Connects to and configures user devices: mouse, KB, trackpad, graphics tablet.
  3. Sets up the client/server model that provides graphics to:
    • The local host by running both client and server on it.
    • Remote hosts by connecting client and server over TCP/IP.
  4. Provides a programming interface in the form of graphics primitives, such as movable windows, for building user interfaces.

The overall effect of this is that it allows applications to employ graphical interfaces. These most ofter run within a GUI desktop system (covered next week), but they can provide their own UI if desired.

What you need to know

For everyday use, you need to know very little. GUI desktops include setup utilities that make it easy to configure graphics-related hardware on the host. Also, hardware support in Linux has advanced greatly over the years, to the point where having to do manual editing of X configuration files is an extremely rare occurrence. (I haven't had to resort to that in a decade or more, despite having performed a great number of Linux installations over that time.)

However, there are some things you should at least be aware of that can come in handy in certain situations.

Summing up

Next time, we'll take a look at how the GUIs we know and love are built on top of the graphics subsystem.

Return to series index