Debian is a widely used free operating system developed by a group of volunteers from around the world called the Debian Project. The main system, Debian GNU/Linux, uses the Linux kernel, but most of the basic OS tools come from the GNU project; hence the name GNU/Linux.

Debian is especially well-known for its package management system, based on .deb packages handled by the dpkg and APT programs, which allows relatively painless upgrades from older versions of Debian, nearly effortless installs of new packages, and clean removal of old ones.

The name Debian comes from the names of its founder, Ian Murdock, and his wife, Debra. The word "Debian" is thus pronounced as the corresponding syllables of these names are in American English: /deb' ē ən/.

The Debian Project describes Debian as "The Universal Operating System", because Debian isn't an ordinary Linux distribution: it encompasses portss to other kernels such as the Hurd or FreeBSD. Those ports still haven't been officially released, so it's still accurate to describe Debian as a "Linux distribution", without further qualifications at this time.

Debian is supported by donations provided through Software in the Public Interest, a non-profit organization.

Debian celebrated its 10th anniversary on August 16, 2003, with many birthday parties held around the world.

Table of contents
1 Debian Releases
2 Project Organization
3 Developer Recruitment, Motivation, and Resignation
4 Debian package life cycle
5 Distributions based on Debian
6 External links

Debian Releases

The latest released version of Debian is called stable. As of 2003, the stable release has version 3.0. In addition, a stable release gets minor updates (the so-called point releases) marked e.g. 3.0r1.

The code names of Debian releases are based on the characters from the movie Toy Story:

  • 3.1* -- sarge expected in 2004
  • 3.0 -- woody, July 19th, 2002
  • 2.2 -- potato, August 15th, 2000
  • 2.1 -- slink, March 9th, 1999
  • 2.0 -- hamm, July 24th, 1998
  • 1.3 -- bo, June 2nd, 1997
  • 1.2 -- rex, 1996
  • 1.1 -- buzz, 1996
*tentative designation

The release after 3.0 will be sarge; the version number is yet to be determined. It is currently in a state called "testing", which is a staging area for the next release. The day-to-day development takes place in the "unstable" branch which is codenamed sid (permanently).

Several other Linux distributions have been based on Debian, including Knoppix and commercial releases from Lindows and Libranet. See a more complete listing below or at Debian's web pages.

Project Organization

The Debian Project is a volunteer organization with three foundational documents:

  • The Debian Social Contract which defines a set of basic principles by which the members conduct themselves;
  • The Debian Free Software Guidelines, which clarify what is meant by the term "free software", prominently featured in the Social Contract;
  • The Debian Constitution, which describes the organizational structure for formal decision-making within the Project, and enumerates the powers and responsibilities of the Debian Project Leader, the Debian Project Secretary, and the Debian Developers generally.

The project is composed of developers, currently around a thousand (2003). Each of them takes care of their own niche in the project, be it package maintenance, writing documentation or maintaining the infrastructure. Package maintainers have jurisdiction over their own packages and usually only co-maintain packages that aren't easy to handle by a single person, while other tasks are almost always done by smaller groups of collaborating developers.

Developers use many mailing lists to discuss topics of interest, resolve issues and form common policies. They also use a public bug tracking system, both for issues with packages and for problems with project infrastructure or policies.

A Project Leader is elected once per year. The Debian Project Leader has several special powers, but this power is far from absolute and is rarely utilized. The leader can be recalled, or a decision reversed, by a vote of the developers under the General Resolution process, but again this is seldom done in practice.

The Leader sometimes delegates authority to other developers in order for them to perform specialized tasks. Generally this means that a leader delegates someone to start a new group for a new task, and gradually a team gets formed that carries on doing the work and regularly expands or reduces their ranks as they think is best and as the circumstances allow.

Perhaps a more important person to Debian than the Leader is the Release Manager, who sets goals for the next "stable" release, supervises the process, and makes the final decision as to when to release.

A list of many important positions in the Debian Project is available at the Debian organization web page.

Developer Recruitment, Motivation, and Resignation

The Debian Project has a steady influx of applicants wishing to become Developers. These applicants must undergo an elaborate vetting process which establishes their identity, motivation, understanding of the Project's goals (embodied in the Social Contract), and technical competence. More information on the "New Maintainer" process is available at the Debian New Maintainer page.

Debian Developers join the Project for any number of reasons; some that have been cited in the past include:

  • a desire to contribute back to the Free Software community (practically all applicants are users of Free Software);
  • a desire to see some specific software task accomplished (some view the Debian user community as a valuable testing or proving ground for new software);
  • a desire to make, or keep, Free Software competitive with proprietary alternatives;
  • a desire to work closely with people that share some of their aptitudes, interests, and goals (there is a very strong sense of community within the Debian Project which some applicants do not experience in their paid jobs);
  • a simple enjoyment of the iterative process of software development and maintenance (some developers have a nearly obsessive level of dedication to refinement and enhancement of software).

Debian Developers may resign their positions at any time by orphaning the packages they were responsible for and sending a notice to the developers and the keyring maintainer (so that their upload authorization can be revoked).

Debian package life cycle

Each Debian package has a maintainer (typically, only one, but occasionally small teams of developers supervise particularly complex pieces of software). It is the maintainer's responsibility to keep pace with the releases of officially-authored versions of the software (called "upstream"), if any exist, to ensure that the package is compliant with Debian Policy thereby making it work on all machine architectures Debian supports (making it portable), easier to use, more configurable, more secure, and so forth, and finally to field any bug reports in the package reported by its users (who may include other Debian developers).

Periodically, a package maintainer makes a release of a package by uploading it to the "incoming" directory of the Debian package archive (or an "upload queue" which periodically batch-transmits packages to the incoming directory). Package uploads are automatically processed to ensure that the upload is well-formed (all the requisite files are in place) and that the package bears the digital signature -- produced with OpenPGP-compatible software -- of a Debian developer. All Debian developers have public keys. Packages are signed to be able to reject uploads from hostile outsiders to the project, and to permit accountability in the event that a package contains a serious bug, a violation of policy, or malicious code.

If the package in incoming is found to be validly signed and well-formed, it is installed into the archive into an area called the "pool" and distributed every day to hundreds of mirrors worldwide. Initially, all package uploads accepted into the archive are only available in the "unstable" suite of packages, which contains the most up-to-date version of each package.

However, new code is also untried code, and those packages are only distributed with clear disclaimers. For packages to become candidates for the next "stable" release of the Debian distribution, they first need to be included in the "testing" suite. The requirements for a package to be included in "testing" is that it:

  • must have been in "unstable" for the appropriate length of time (the exact duration depends on the "urgency" of the upload);
  • must not have a greater number of "release-critical" bugs filed against it than the current version in testing. Release-critical bugs are those bugs which are considered serious enough that they make the package unsuitable for release.
  • must be compiled for all architectures slated to release;
  • must be a package for an architecture that is slated to release (in other words, packages for architectures that aren't scheduled to release with all the rest are never considered for "testing")
  • must not depend on versions of any packages which do not meet the above conditions

Thus, a release-critical bug in a package on which many packages depend, such as a shared library, may prevent many packages from entering the "testing" area, because that library is considered deficient.

Periodically, the Release Manager publishes guidelines to the developers in order to ready the release, and in accordance with them eventually decides to make a release. This occurs when all important software is reasonably up-to-date in the release-candidate suite for all architectures for which a release is planned, and when any other goals set by the Release Manager have been met. At that time, all packages in the release-candidate suite ("testing") become part of the released suite ("stable").

It is possible for a package -- particularly an old, stable, and seldom-updated one -- to belong to more than one suite at the same time. The suites are simply collections of pointers into the package "pool" mentioned above.

Distributions based on Debian

External links