Previous Section  < Day Day Up >  Next Section

15.1. Introduction

The X Window System is the foundation of Linux's graphical interface. All those nice window managers and desktop environments—XFce, Enlightenment, KDE, Gnome, and so forth—run on top of X.

The X Window System is an amazing piece of work. You can run in a graphical environment, have text consoles open at the same time, and easily switch back and forth between them. The X Window System does more than draw pretty pictures; it's a networking protocol as well. You can even log in to remote systems via X. (This is covered in Chapter 17.)

While the X Window System has been the Linux standard forever, there is a new windowing system finding acceptance: It is a fork of the XFree86© project that found sudden popularity when the 4.4 release of XFree86 adopted a licensing change that was possibly incompatible with the GPL. Fedora and Mandrake were the first on board with By the time you read this, everyone may have kissed and made up, or it may all be a jumble, with yet another distribution difference to trap the unwary. You'll need to know which one is on your system. This command gives the version number for XFree86:

$ XFree86 -version

And this is for

$ -version currently mirrors XFree86 very closely; the primary differences are in the configuration filenames and locations. However, the two will probably diverge more with time.

There is a lot of confusing terminology around the X Window System, as well as inconvenient capitalizations. Here are a few definitions:

XFree86 Project, Inc.

The organization that produces XFree86, which is a freely redistributable open source implementation of the X Window System.

XFree86 4.x

The current version of XFree86 on Linux.

X Window System

The original network-aware windowing environment for Unix. It is also called "a network protocol that draws pictures."


The eleventh version of the X Window System.


The specifications for the X Window System.

X.Org Foundation

A fork of the XFree86 project.

Make it easy on yourself, and just call it "X."

15.1.1 Hardware

All video adapters will work in Linux; even the most obscure card will work at a generic VGA level (640 480, 16 colors). All the major Linux distributions come with good video configuration tools that will detect your hardware and find drivers automatically. It is unlikely you'll ever need to edit XF86Config, except perhaps to enable hardware acceleration or to customize multihead displays.

The majority of video adapters have Linux drivers and will deliver good 2D performance, which means that for everyday tasks—email, web surfing, spreadsheets, word processing, and so forth—most any adapter will do. Getting 3D hardware acceleration support can take a little more effort, but if you play games like Tux Racer and Quake, or do 3D computer-aided design (CAD) or 3D modeling, hardware acceleration is essential.

Modern video cards are more powerful than PCs of yesteryear: a high-end model has 256 MB of RAM, a 256-bit bus, a 256-MHz GPU, and often even has its own cooling fan.

Video-card performance is limited by the type of motherboard slot it is plugged into. PCI cards are the slowest. AGP is much faster, and is found on all modern boards. There are several flavors of AGP:

AGP 1.0

1X = 266 MB/sec

2X = 533 MB/sec

AGP 2.0

1X = 266 MB/sec

2X = 533 MB/sec

4X = 1.066 GB/sec

AGP 3.0

1X = 266 MB/sec

2X = 533 MB/sec

4X = 1.066 GB/sec

8X = 2 GB/sec

The AGP standards are backward- and forward-compatible; you can mix up new cards and old motherboards and old cards and new motherboards. However, putting a new, high-end card on an older board means you won't get all the performance you paid for.

15.1.2 Drivers

One way to get hardware video acceleration in Linux is by using Direct Rendering Infrastructure (DRI) and a Linux-supported video card. DRI is built in to XFree86. Currently, XFree86/DRI support is available for these chipsets: 3dfx, Gamma, Intel i8x0 motherboard chipsets, Matrox, ATI Rage, ATI Radeon, Mach64, and Sis300. Visit and for up-to-date information on supported chipsets and howtos.

The other way to get hardware video acceleration is by using drivers supplied by the manufacturer. For example, nVidia supplies their own binary-only drivers and kernel modules, which are currently the only way to get hardware acceleration for nVidia adapters. You can use the the open source nv driver for nonaccelerated 2D operation.

ATI and Matrox both have some cards that are fully supported by open source drivers and some that require proprietary binary drivers to get full functionality. As always, do your homework before buying.

15.1.3 Terminology

Here's some terminology:


Digital-to-analog converter. Usually a single chip that converts digital data to analog, for example in modems.


Random Access Memory digital-to-analog converter. The chip that converts digital signals to analog, for analog displays.


Graphics processing unit. The processor that does the intense computations required for 3D video.


Static Random Access Memory. It's "static" because it does not need to be refreshed, unlike DRAM (Dynamic Random Access Memory). SRAM is considerably faster than DRAM, with access times as low as 10 nanoseconds, compared to 60 nanoseconds for DRAM.


Accelerated graphics port. AGP is based on the PCI bus. It is a dedicated channel to system memory, and it is considerably faster than PCI, which tops out at 133 MB/sec. Currently the fastest AGP slot is 8X, or 2 GB/sec.

    Previous Section  < Day Day Up >  Next Section