Introduction to X

A GUI (Graphical User Interface) is part and parcel of the Windows and Mac operating systems. It's basically impossible to write an application for those systems that does not use the GUI, and the systems can't be used effectively from the command line. GNU/Linux is more modular, that is, it's made up of many small, independent components that can be used or not according to one's needs and preferences. One of these components is the X Window system, or simply X.

This component is also sometimes called X11. Please note that ``X Windows'' is not correct.

X itself is a means for programs to talk to your mouse and video card without knowing what kind of mouse and video card you have. That is, it's an abstraction of the graphics hardware. User applications talk to X in X's language; X then translates into the language of your particular hardware. This means that programs only have to be written once, and they work on everyone's computer.

In X jargon, the program that speaks to the hardware is known as an X server. User applications that ask the X server to show windows or graphics on the screen are called X clients. The X server includes a video driver, so you must have an X server that matches your video card.

The X server doesn't provide any of the features one might expect from a GUI, such as resizing and rearranging windows. A special X client, called a window manager, draws borders and title bars for windows, resizes and arranges windows, and provides facilities for starting other X clients from a menu. Specific window managers may have additional features.

Window managers available on a Debian system include fvwm, fvwm2, icewm, afterstep, olvwm, wmaker, twm, and enlightenment. You'll probably want to try them all and pick your favorite.

Neither the X server nor the window manager provide a file manager; that is, there aren't any windows containing icons for your files and directories. You can launch a file manager as a separate application, and there are many of them available. The GNOME desktop project is developing an icon-based file manager and other GUI facilities. See the GNOME homepage for the latest news on this.

A final feature of X is its network transparency, meaning that X clients don't care if they're talking to an X server on the same machine or an X server somewhere on the network. In practical terms, this means you can run a program on a more powerful remote machine but display it on your desktop computer.

John Goerzen / Ossama Othman