Debian
|
Openlogo-nd-100.png
The Debian logo is a red swirl.
Template:Infobox OS Debian, created by the Debian Project, is a widely used distribution of free software developed through the collaboration of volunteers from around the world. Since its inception, the released system, Debian GNU/Linux, has been based on the Linux kernel with many basic tools of the operating system from the GNU project.
Debian is known for its adherence to the Unix and free software philosophies. It is also known for its abundance of options: the current release contains over fifteen thousand software packages for eleven computer architectures, ranging from the ARM architecture commonly found in embedded systems and the IBM s390 mainframe architecture to the more common x86 and PowerPC architectures found in modern personal computers.
Debianaptget.jpg
Debian is also known for its package management system and APT, the Advanced Packaging Tool in particular, its strict policies regarding the quality of its packages and releases, and its open development and testing process. These practices afford easy upgrades between releases without rebooting and easy installation and removal of packages.
Debian is supported by donations through Software in the Public Interest, a non-profit umbrella organization for free software projects.
Contents |
History
Debian was founded in 1993 by Ian Murdock, then a student at Purdue University, who wrote the Debian Manifesto which called for the creation of a Linux distribution to be maintained in an open manner, in the spirit of Linux and GNU. He chose the name by combining the first name of his then-girlfriend (now wife) Debra with his own first name "Ian", forming the portmanteau "Debian", pronounced as the corresponding syllables of these names are in American English: .
The Debian Project grew slowly at first and released its first 0.9x versions in 1994 and 1995. The first ports to other architectures started being made in 1995, and the first 1.x version of Debian was released in 1996. In 1996, Bruce Perens replaced Ian Murdock as the project leader. At the suggestion of fellow developer Ean Schuessler, he guided the editing process of the Debian Social Contract and the Debian Free Software Guidelines. He also initiated the creation of the legal umbrella organization Software in the Public Interest.
Bruce Perens left in 1998 before the release of the first glibc-based Debian, 2.0. The Project proceeded to elect new leaders and make two more 2.x releases, each including more ports and more packages. APT was deployed during this time and the Debian GNU/Hurd was started as well. The year 1999 brought the first other Linux distributions based on Debian, Corel Linux and Stormix's Storm Linux, neither of which is developed any more but which started what is now a notable trend of basing distributions on Debian.
In late 2000, the project switched to the use of the package pools and began the "testing" distribution, marking a major change in archive and release management. In 2001, developers began holding an annual conference called Debconf with talks, workshops, and technical users welcome. The 3.0 release of 2002 included more than double the number of packages of the previous release and supported five new architectures. Debian celebrated its tenth anniversary on August 16, 2003, with parties held around the world.
On 6 June 2005, after three continuous years of development, release 3.1, codenamed sarge, was released (http://www.debian.org/News/2005/20050606).
- See A Brief History of Debian (http://www.debian.org/doc/manuals/project-history/) for a more comprehensive history.
Debian releases
The latest released version of Debian is called stable. As of 2005, the latest stable release is version 3.1, also called sarge. In addition, a stable release gets minor updates (so-called point releases) marked, for example, like 3.0r1.
The code names of Debian releases are names of characters from the movie Toy Story:
- 3.2 -- etch, release date unknown
- 3.1 -- sarge, 6 June 2005
- 3.0 -- woody, 19 July 2002
- 2.2 -- potato, 15 August 2000
- 2.1 -- slink, 9 March 1999
- 2.0 -- hamm, 24 July 1998
- 1.3 -- bo, 2 June 1997
- 1.2 -- rex, 12 December 1996
- 1.1 -- buzz, 17 June 1996
Because a CD vendor made an unofficial, broken release labeled "1.0", an official "1.0" release was never made.
Day-to-day development takes place in the branches known as unstable and experimental. The unstable branch is permanently codenamed sid1, after the boy next door who broke toys. The software in the "unstable" branch is not necessarily unstable, only that the packaging and other Debian-specific modifications may be new and untested. Software which is itself unstable is generally placed in "experimental".
Many people use sid as their main operating system, contrary to the advice from Debian, because they feel that it's the only Debian release with reasonably up-to-date software (this was mostly due to Debian 3.1 being released three years after the previous stable release). Debian maintainers discourage the novice users from using the unstable distribution and there is generally little or no support offered officially by Debian for such use(altough most of the support is done via unofficial means, like irc, mail lists, forums, etc.), only by means of the bug tracking system, etc.
Unreleased systems
The Project describes itself as creating "The Universal Operating System" and develops ports of the entire userland to various kernels:
- Debian GNU/Linux, the original version, on the Linux kernel
- Debian GNU/Hurd, on GNU Hurd
- Debian GNU/NetBSD, on the NetBSD kernel
- Debian GNU/kFreeBSD, on the FreeBSD kernel.
The non-Linux ports have yet to be officially released so, currently, Debian is exclusively a GNU/Linux distribution. The effort to combine the GNU-based userland with BSD kernels is also controversial among some of the developers of the BSD systems, who do not consider their kernel to be a separable component from the userland.
Project organization
The Debian Project is a volunteer organization with three foundational documents:
- The Debian Social Contract defines a set of basic principles by which the project and its developers conduct affairs.
- The Debian Free Software Guidelines define the criteria for "free software" and so what software is permissible in the distribution, as referenced in the Social Contract. These guidelines have also been adopted as the basis of the Open Source Definition.
- The Debian Constitution (http://www.debian.org/devel/constitution) 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.
Currently, the project includes more than a thousand developers. Each of them sustains some niche in the project, be it package maintenance, software documentation, maintaining the project infrastructure, quality assurance, or release coordination. Package maintainers have jurisdiction over their own packages, although packages are increasingly co-maintained. Other tasks are usually the domain of smaller, more collaborative groups of developers.
The project maintains official mailing lists and conferences for communication and coordination between developers. For issues with single packages or domains, a public bug tracking system is used by developers and end-users both. Informally, Internet Relay Chat channels (primarily on the OFTC and Freenode networks) are used for communication among developers and users as well.
Together, the Developers may make binding general decisions by way of a General Resolution or election. All voting is conducted by Cloneproof Schwartz Sequential Dropping, a Condorcet method of voting. A Project Leader is elected once per year by a vote of the Developers. The Debian Project Leader has several special powers, but this power is far from absolute and is rarely utilized. Under a General Resolution, the Developers may, among other things, recall the leader, reverse a decision by him or his delegates, and amend the constitution and other foundational documents.
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 (http://www.debian.org/intro/organization).
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 (http://www.debian.org/devel/join/newmaint).
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
Debian-package-cycle.png
Each Debian package has a maintainer who keeps track of releases by the "upstream" authors of the software and ensures that the package is compliant with Debian Policy, coheres with the rest of the distribution, and meets the standards of quality of Debian. In relations with users and other developers, the maintainer uses the bug tracking system to follow up on bug reports and fix bugs. Typically, there is only one maintainer for a single package, but increasingly small teams of developers "co-maintain" larger and more complex packages and groups of packages.
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.
Criticisms
Technical Criticisms
The main technical criticism of Debian is that the released, stable branch can get too old to be useful for some purposes. This criticism is countered to some degree by the existence of:
- Repositories of backported packages (updated package versions compiled in stable environment), like those on backports.org (http://www.backports.org/) and apt-get.org (http://www.apt-get.org)
- The testing branch of Debian, which contains updated software that is more stable than its name indicates, but does not have official security or other support from the Debian Project. Distributions such as Kanotix and Knoppix, based on debian, use the testing branch, and have gained some popularity by providing useful LiveCD's containing very new features of different applications, and also offer an option to install this to the user's harddisc if wanted.
There is also a "Hardened Debian (http://sourceforge.net/projects/debianhardened)," a project that aims to add high security & hardening features, hardened kernels, packages and enhanced toolchain, the DHKP kernel patches and other cryptography & security related enhancements.
Organizational Criticisms
Another major criticism of Debian is social and political. The "attitude" of hard-line Debian users can be oppressive and daunting to users. Examples include:
- Newcomers who may have questions may expect to be flamed or "bashed" on certain Debian support forums if they ask what may seem to be a "newbie" question
- The chat server irc.debian.org, which is semi-famous for its hostile stance towards users who fail to first RTFM
Footnotes
Note 1: Some refer to sid as an acronym for Still In Development, but this is an unofficial backronym that is not often used.
See also
- List of Linux distributions
- Comparison of Linux distributions
- Comparison of operating systems (security)
External links
Official Project resources
- Official Project website (http://www.debian.org/)
- Installation Manual (http://www.debian.org/releases/stable/installmanual) for the current stable release
- Debian Reference (http://www.debian.org/doc/manuals/reference/reference.en.html) Manual
- A Brief History of Debian (http://www.debian.org/doc/manuals/project-history/)
- Debian Policy Manual (http://www.debian.org/doc/debian-policy/)
Community sites
- Debian Planet (http://www.debianplanet.org/) news and discussion site
- Planet Debian (http://planet.debian.org/) developer weblogs
- Debian User Forums (http://forums.debian.net/)
- Debian User Forums (http://www.debianforum.de/) (german language)
- Debian User Forums (http://www.debianforum.dk/) (danish language)
- Debian collaboration Wiki (http://wiki.debian.net/)
- DebianPT (http://www.debianPT.org) (portuguese language)
Guides and additional documentation
- Newbie assistance and documentation (http://newbiedoc.sourceforge.net/)
Other distributions based on Debian
- Kanotix (http://www.kanotix.com/) Kanotix is a Live CD and Debian installer in one. It is possibly the easiest way in existence to install a pure Debian system.
- Knoppix (http://www.knoppix.org/) Knoppix is a Live CD based on Debian, which in turn has several derivatives (including Morphix, Whoppix, and Xfld).
- LibraNet (http://www.libranet.com/) Libranet
- Mepis (http://www.mepis.com/) Mepis, a KDE distro for newbies.
- Ubuntu (http://www.ubuntulinux.org) Ubuntu is a Gnome centered distribution based on Debian. A Live CD is available along with several derivatives (including Kubuntu).
- Xandros (http://www.xandros.com/) Xandros
see also (http://www.debian.org/misc/children-distros.html)
Miscellaneous
- Distrowatch review (http://distrowatch.com/dwres.php?resource=review-debian)
- Overview of Debian installers (http://linuxmafia.com/faq/Debian/installers.html)
- Debian Jr. Project (http://www.debian.org/devel/debian-jr/index.en.html) to ensure suitability for children
- Map of the Debian organization (http://people.debian.org/~madduck/organigram/organisation.png)
- Debian vs Gentoo (http://www.tomvergote.be/writings/Linux/Debian-Gentoo-production-environment.html)
- Debian Pure64 for AMD64 (http://wiki.debian.net/?DebianAMD64)bg:Дебиан
ca:Debian cs:Debian da:Debian de:Debian GNU/Linux es:Debian fr:Debian ko:데비안 hr:Debian ia:Debian it:Debian hu:Debian nl:Debian ja:Debian no:Debian pl:Debian pt:Debian ro:Debian GNU/Linux ru:Debian simple:Debian sk:Debian fi:Debian sv:Debian GNU/Linux vi:Debian tr:Debian uk:Debian zh:Debian