Servers and Window Managers

The X Window System was originally designed to work transparently across a network. One large server would actually run the X programs, but they would get displayed on various clients machines elsewhere on the network. The ability to remotely display programs can be a great advantage. The main disadvantage to this networking concept is that it is less secure than running applications on the local machine, and it takes a lot of network bandwidth to do. This is discussed later on in the section called Exporting displays.

Even when you're running X on your own machine, you are still dealing with the client-server model. The server is the video-card specific portion. When you configured X and told it what kind of video card you had, that was telling it what server program to use. The client portion is all other programs you run under X. A special client, called the window manager, is responsible for the look and feel of your particular X session. The window manager is discussed in detail later.

The job of a window manager is to handle drawing windows on the screen with programs in them, as well as handling input from the mouse and keyboard. The first window managers did that and not much else. Today's window managers are much more complicated programs and are customizable in just about any way imaginable. They have all sorts of fancy options that let your desktop look different from anyone else's.

Having several window managers really separates Linux from Windows on the desktop. Under Windows, you have the one basic windowing environment. Under Linux, you can run one of many different window managers, each with a different look and different features. Some people would call this a weakness, because there is no consistent look. However, most Linux users would call this a strength because you can configure your system as much as you want.