X is implemented using a client/server model. X servers and clients can be located on the same computer or separated across a network, so that computation is handled separately from display rendering. While X servers manage hardware, they do not define the look of the display and they offer no tools to manipulate clients. The X server is responsible for rendering various shapes and colors on screen. Examples of X Servers include:
Software from XFree86, which controls your Linux PC's video card.
XFree86 software on a separate networked system, displaying output from a program running on your system.
Other networked Unix systems running their own X server software.
X implementations for other operating systems, such as Microsoft Windows.
An X Terminal, which is a hardware device with no computational ability of its own, built solely for display purposes.
X clients are user programs, such as spreadsheets or CAD tools, which display graphical output. Examples of X clients are:
A browser, such as Mozilla or Konqueror.
A mail program, such as Evolution or Kmail.
Office applications, such as OpenOffice, Gnumeric, or AbiWord.
A terminal emulator, such as xterm, running within an X window.
A special client program called a window manager is responsible for these functions and provides windows, window sizing, open and close buttons, and so forth. The window manager controls the other clients running under an X server. Multiple window managers are available for XFree86, allowing you to choose an interface style that suits your needs and personal taste.
A few complete graphical desktop environments are also available. These packages can include a window manager and additional applications that work together to create a complete, unified working environment. Most Linux distributions ship with either the KDE or GNOME, or both, along with a number of standalone window managers. There is no standard window manager or environment for Linux. The selection is entirely up to the user.