KDE (K Desktop Environment) is a free graphical desktop environment and framework built with Trolltech's Qt toolkit for Unix. The "K" originally stood for "Kool", but was later changed to stand simply for "K," which is "The first letter before 'L' (which stands for Linux) in the Latin alphabet."

According to the KDE website, "KDE is a network transparent contemporary desktop environment for UNIX workstations. KDE seeks to fill the need for an easy to use desktop for Unix workstations, similar to the desktop environments found under MacOS or Microsoft Windows."

KDE was originally patterned after CDE, the "Common Desktop Environment." CDE is an older Unix desktop environment used by commercial Unix vendors, such as Sun Microsystems and Hewlett-Packard.

Historically, the GNU project had concerns about the licensing of the Qt library, leading to their founding the GNOME Desktop project (and Harmony, a now-abandoned project to duplicate Qt). Qt was re-licensed to provide the GNU General Public License as an option, which has mitigated those concerns.

KDE is highly configurable and features many cosmetic elements such as the translucency in menus and antialiasing, which are comparable to features in Windows and Mac OS X.


A typical KDE session: the main menu (left), kmail (background), konqueror the KDE web browser and file manager (center/right) and noatun (top right), a multimedia player. ()

There is both competition and cooperation between KDE and GNOME, another free graphical desktop environment for Unix.

KDE is developed in conjunction with KDevelop, a software development suite, and KOffice, a suite of office software.

KDE is reported to be in open source development for the x86 (Intel chip) port of the Darwin OS system. Darwin, the foundation of Mac OS X, is based on the Mach kernel and BSD, a family of open source Unices. Though limited with respect to the hardware on which it can run, and as yet without a GUI like KDE, the Darwin port will be first port of KDE to an Apple Computer operating system.

Table of contents
1 Organization of the KDE project
2 Release cycle and version numbers
3 Architecture
4 Project history
5 External links

Organization of the KDE project

Like many open source / free software projects KDE is primarily a volunteer effort. Since several hundreds of individuals contribute to KDE in various ways (e.g. code, translation, artwork), organization of such a project is complex. Most problems are discussed on a number of different mailing lists (see external link below). Important decisions, such as release dates, inclusion of new applications, are made on the "kde-core-devel" list by the so called "core developers". These are developers which have contributed to KDE for a long time. Decisions are not made by a formal voting process, but by discussion on the mailing lists. In most cases this seems to work well, and major discussions, such as the question whether the KDE 2 API should be broken in favor of KDE 3, are rare.

Release cycle and version numbers

As the project history below shows, the KDE team releases new versions on a frequent basis. They are known for sticking to their release plan, and it is rare that a release delays for more than one or two weeks. An exception was KDE 3.1, which was delayed for more than a month because of a number of security issues in the code base. Maintaining a strict release plan for a volunteer project of this size is unusual; the Linux kernel, for instance, is known for its unpredictable delays, and the Gnome project had several times missed the aimed release date. There are two main types of releases:

Major release

A major KDE release has two version numbers, e.g. KDE 1.1. Only a major KDE release will incorporate new features. Up to now there have been 7 major releases, namely: 1.0, 1.1, 2.0, 2.1, 2.2, 3.0, 3.1. All KDE releases in the same major version (e.g. KDE1, KDE2 and KDE3) are both binary and source-compatible. This means for instance that software developed against KDE 3.0.x will work with all KDE3 releases. Changes requiring recompilation or porting never occur except during major version changes; this maintains a stable API for KDE application developers. The changes between KDE 1 and KDE 2 series were large and many, while the API changes between KDE 2 and KDE 3 were comparatively minor, meaning that applications could be easily ported to the new architecture. Up to now the KDE major version numbers follow the Qt release cycle.

As soon as a major release is ready and announced, work on the next major release starts. A major release needs several month to be finished and many bugs that are fixed during this time are "backported" to the stable branch, meaning that these fixes are incorporated to the last stable release.

Minor release (aka "bug-fix release")

For minor releases a shortened release schedule is used. A minor KDE release has three version numbers, e.g. KDE 1.1.1, and the developers focus on fixing bugs, minor glitches and small useability improvements, as opposed to adding new features. A minor release is based on a CVS branch of a previous release and does not affect the "HEAD branch", the branch were the current development of the next major release takes place.

                     new features, 
                   bug fixes
KDE 3.1 released -------------------->  KDE 3.2 (also called HEAD branch)
(new development
 started)          bug fixes only
                 -------------------->  KDE 3.1 BRANCH (becoming a minor release)

The somewhat unusual name "3.0.5a" was used because of a lack of version numbers. Work on KDE 3.1 already started and up to that day the release coordinator used version numbers such as 3.0.5, 3.0.6 internally in the CVS system to mark snapshots of the upcoming 3.1. Then after 3.0.3 suddenly a number of important and unexpected bug fixes were necessary, leading to a conflict, because 3.0.6 was at this time already in use (more recent KDE release cycles have tagged pre-release snapshots with large revision numbers, such as 3.1.95, to avoid these conflicts).

Also note that while development on KDE 2 in general has stopped, very important security fixes are backported to KDE 2 in case someone still uses this version.

Architecture

Several vital pieces of technology make up the advanced infrastructure of KDE:

  • Qt - cross platform graphical widget toolkit
  • KParts - lightweight in-process graphical component framework
  • KWin - window manager
  • DCOP - system for communication between processes
  • aRts - soundserver
  • KHTML - HTML engine

Project history

External links