Move over Windows98. There's a new Sheriff in town, and its name is KDE. KDE is shorthand for "K Desktop Environment". It is a project whose goal is the creation of a complete Open Source desktop environment for UNIX-based operating systems (like Linux). The 'K' in "KDE" doesn't stand for anything, much like the 'X' in "X Window System". But what exactly is KDE, and what can it do for you? Well, to some extent that depends on who you are and what you want to do.
If you are an end user, KDE provides you with a slew of applications and configuration utilities that will help you to better use and administer your computer. Among these are a file manager (similar to the Microsoft Windows file manager) and an excellent online help system. This fills a tremendous need as UNIX systems have often been criticized for having lousy help systems.
If you are a programmer, KDE provides an excellent set of programming libraries, including one of the most full-featured Graphical User Interface (GUI) toolkits available (The Qt Toolkit), and an Integrated Development Environment (IDE).
The beauty of KDE is that all of these applications and tools for both users and programmers are designed with a standard user interface, making them easier to learn and use than traditional UNIX applications.
KDE was designed to be friendly and accessible to newbies (Windows users should feel right at home with KDE), while also retaining all the power and customization/flexibility that UNIX hackers have come to expect. This is possible because the KDE libraries and desktop are built on top of the X Window System, which is both extremely powerful and highly configurable. However, since X's tremendous flexibility comes with a great deal of complexity, the designers of KDE sought to simplify and standardize the situation for both users and programmers.
The X Window System, the Linux kernel, and KDE all work together to create a simple, powerful, highly configurable GUI. Most people who are used to Mac or Windows based systems don't really think about their computers as having separate "operating systems" and "desktop environments" (or GUI), but they really are two very separate things.
The way it works is fairly simple. KDE sits on top of both the X Window System and the Linux kernel, and makes requests for services to both of them. The user just interacts with KDE. For example, if KDE needs to draw something on the screen, it talks to X. X then worries about talking to the computer's hardware and drawing windows on the screen. If a user interacts with a GUI program that affects system resources (for example a network configuration utility), then KDE talks to the Linux kernel and makes requests of the system based on the user's input. The user can simply interact with the KDE interface and let the computer do the hard work.
Of course, if you want to make things more complicated, you can. You can configure KDE however you want. If you know a great deal about how X works and how window managers work and you want to configure KDE to use a non-default window manager, you can use any one you prefer. The window manager (WM) is the program that controls the placement of windows and other elements on the screen. It is a separate program from X. X's designers chose to separate the WM from X itself to allow for maximum flexibility (and confusion). KDE comes with the KWM (K Window Manager) installed by default, which interoperates seamlessly with the rest of the 'K' environment. Any other WM will work with KDE, you just have to alter a few configuration files. Part of what makes KDE so great is that new users don't need to know anything at all about this.
Before we explore all that KDE has to offer both users and programmers, let's take a look at how it came to be.