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[1] for the latest news
on this.
[1] http://www.gnome.org/
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.