Debian
From Wikipedia, the free encyclopedia
Website: | debian.org |
OS family: | GNU/Linux |
Supported platforms: | i386, x86-64, PowerPC, 68k, SPARC, Alpha, ARM, MIPS, HPPA, S390, IA-64 |
Working state: | Current |
Debian, organized 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, and for its abundance of options — the current release includes 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. Debian GNU/Linux is the basis for several other distributions, including Knoppix, Linspire, and Ubuntu.
Debian is also known for its package management system, especially APT, for its strict policies regarding the quality of its packages and releases, and for its open development and testing process. These practices afford easy upgrades between releases without rebooting and easy automated installation and removal of packages.
Debian is supported by donations through Software in the Public Interest, Inc., a non-profit umbrella organization for free software projects.
Contents |
[edit] History
The Debian distribution was first announced on August 16, 1993 by Ian Murdock, then a student at Purdue University. Murdock initially called his system the "Debian Linux Release".[1] In the Debian Manifesto he had called for the creation of a GNU/Linux distribution to be maintained in an open manner, in the spirit of Linux and GNU. He formed the name "Debian" by combining the first name of his then-girlfriend (now wife) Debra with his own first name. So, it is pronounced as the corresponding syllables of these names in American English: /'dɛbiːjən/.[2]
The Debian Project grew slowly at first and released its first 0.9x versions in 1994 and 1995. The first ports to other architectures were begun 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. In the same year, fellow developer Ean Schuessler suggested that Debian establish a social contract between the project and its users. Perens distilled the resulting discussion on Debian mailing lists into the Debian Social Contract and the Debian Free Software Guidelines, defining fundamental commitments for the development of the distribution. 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 made two more 2.x releases, each including more ports and more packages. APT was deployed during this time and the first port to a non-Linux kernel, Debian GNU/Hurd, was started as well. The first Linux distributions based on Debian, Corel Linux and Stormix's Storm Linux, were started in 1999. Though no longer developed, these distributions were the first of many distributions based on Debian.
In late 2000, the Project made major changes to archive and release management, reorganizing software archive processes with new "package pools" and creating a testing branch as an ongoing, relatively stable staging area for the next release. Also in that year, developers began holding an annual conference called Debconf with talks and workshops for developers and technical users.[3]
[edit] Development versions
Software packages in development are uploaded to project branches named unstable (alias sid) and experimental. Software packages uploaded to unstable are normally stable versions released by the original upstream developer, but with packaging and other Debian-specific modifications introduced by Debian developers that may be new and untested. Unstable software or software otherwise not ready for the unstable branch is typically placed in experimental.
After a software package has remained in unstable for a certain length of time (depending on the urgency of the software's changes), that package is automatically migrated to the testing branch. Though, the package's migration to testing occurs only if no serious (release-critical) bugs in the package are reported and if other software needed for package functionality qualifies for inclusion in testing.
Since updates to Debian software packages between official releases do not contain new features, some choose to use the testing and unstable branches for their newer packages. However, these branches are less tested than stable, and neither receive timely security updates.[4] In particular, incautious upgrades to working unstable packages can sometimes seriously break software functionality.
After the packages in testing have matured and the goals for the next release are met, the testing branch becomes the next stable release. The latest stable release of Debian (sarge) is 3.1. The last update to this release was made on November 5th, 2006.
[edit] 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. Although it can be considered a separate document for all practical purposes, it formally is part of the Social Contract.
- The Debian 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; in April 2006, Anthony Towns was voted into this position, succeeding Branden Robinson. 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.
[edit] 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).
[edit] Debian package life cycle
Each Debian software 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 that 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.
[edit] Debian releases
The latest released version of Debian is called stable. As of September 2006, the latest stable release is version 3.1, code name sarge. When a new version is released, the previous stable is labeled oldstable; currently, this is version 3.0, code name woody.
In addition, a stable release gets minor updates (called point releases) marked, for example, like 3.0r1.
The list of Debian releases, their code names and release dates includes:
- 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
Upcoming releases:
- 4.0 – etch, currently planned for December of 2006
- ?.? – lenny [2]
Due to an incident involving a CD vendor who made an unofficial and broken release labeled "1.0", an official "1.0" release was never made.
The code names of Debian releases are names of characters from the movie Toy Story.
The unstable, developmental distribution is nicknamed sid, named after the emotionally unstable next-door neighbour boy who destroyed toys on a regular basis from the first Toy Story.
- See http://debian.semistable.com/releases.gif for a graph of release dates, updates, and security support.
[edit] Ports to various kernels
The Project describes itself as creating a "Universal Operating System" and several ports of all userland software to various operating system kernels are under development:
- Debian GNU/Linux, on Linux — the original, officially released port
- Debian GNU/Hurd, on GNU Hurd
- Debian GNU/NetBSD, on the NetBSD kernel
- Debian GNU/kFreeBSD, on the FreeBSD kernel
Although these are official Debian projects, there have been no official releases of the non-Linux ports yet, so currently Debian is exclusively a Linux distribution.
[edit] Criticism
One technical criticism of Debian is that, due to Debian's longer release cycles, the released stable branch can become too old to be useful for some purposes, as it is intended to be an unmoving platform, such as for servers or development, that only receives security updates. This criticism is countered to some degree by the existence of:
- Repositories of backported packages (updated package versions compiled in the stable environment), like those on backports.org and apt-get.org. However, in some cases these packages may not be as well integrated into the system, possibly resulting in, for example, problems upgrading.
- The testing branch of Debian often contains updated software that is more stable than its name might indicate. However this branch can become turbulent after a new release of the stable environment.
Another criticism is that some software and documentation is not available in the official Debian software repository because it does not satisfy the Debian Project's strict requirements of freeness. The project has deemed documents using the GNU Free Documentation License with sections that the author does not permit to be altered or removed as non-free. In such cases, the software or documentation may be obtained from third-party sources or from the auxiliary non-free section of Debian fileservers, or there may be alternative software in the Debian distribution that serves the same purpose. For example, the proprietary Adobe Acrobat reader is not distributed by Debian, but other free PDF readers are, and the Acrobat reader can be downloaded from Adobe and installed manually on a Debian system.
The Debian Project is criticized by some in the free software community for making available certain proprietary software in the non-free section, rather than excluding it entirely. Similarly, Debian has in the past included free packages with non-free components in its main distribution, but now separates software such as proprietary device drivers in the Linux kernel.
The administration of Debian has also been criticized as being too chaotic, leading to a slow development process, with decision making being slowed by endless consultations. In September 2006, developer Matthew Garrett, who had also been working on Ubuntu, resigned also citing a lack of civility.[5].
[edit] See also
[edit] Distributions based on Debian
- A more comprehensive list is available at http://www.debian.org/misc/children-distros.html.
- Knoppix - a Live CD, with several derivatives (such as Morphix, Kanotix and KnoppMyth).
- Linspire and Freespire - derivatives designed specifically for desktop use by non-technical users.
- Mepis - a Live CD designed for novices, which can also be installed.
- Ubuntu - a full distribution, also available as a Live CD and in many other versions, including Kubuntu, Xubuntu, and Edubuntu.
- Xandros - a commercially supported derivative of Corel Linux.
- Elive - a customized Debian system using Enlightenment.
[edit] References
- ^ Murdock, Ian A. (1993-08-16). "New release under development; suggestions requested". comp.os.linux.development. (Google Groups).
- ^ About Debian.
- ^ Debian Documentation Team. A Brief History of Debian.[1]
- ^ http://www.debian.org/security/faq#testing
- ^ Maintainer's resignation highlights problems in Debian project
[edit] External links
[edit] Official Project resources
- Official Project website
- Official Debian Wiki
- Installation Manual for the current stable release
- Debian Reference Manual
- A Brief History of Debian
- Debian Policy Manual
[edit] Community sites
- Debian Administration System Administration Tips and Resources
- Planet Debian developer blogs
- Debian User Forums
- Official Debian.org collaboration Wiki
[edit] Guides and additional documentation
- Debian GNU/Linux on CDs, DVDs or CD/net Official guide to obtaining/creating installation CDs/DVDs.
- Debian GNU/Linux on floppies/net You can boot the Debian installation system from floppy disks, and then proceed with installing the rest of Debian from the network.
- Building a Custom Debian CD Set
- Installing Debian on a small partition This NewbieDOC HOWTO explains how to install desktop Debian GNU/Linux 3.1 (Sarge) from CD/DVD onto a small hard disk or partition (as small as 1 GB)
- Learning Debian GNU/Linux, by Bill McCarty
[edit] Published Books on Debian
- Krafft, Martin F. The Debian System. Published by Open Source Press (Germany) and No Starch Press (United States), 2005. (ISBN 3-937514-07-4) / (ISBN 1-59327-069-0) / (Website)
- Hill, Benjamin Mako et al. Debian GNU/Linux 3.1 Bible. Published by John Wiley & Sons, 2005. (ISBN 0-7645-7644-5)
[edit] Miscellaneous
- Debian GNU/Linux at DistroWatch (review)
- Screenshots of Debian GNU/Linux at OSDir.com
- Overview of Debian installers
- Embedded debian and its Wiki.
- Debian Jr. Project to improve suitability for children
- Debian for AMD64
- Debian Women Project to increase the participation of women in Debian
- Chronology of Debian releases
- Debian-Unofficial.org Repository for packages not available within the official Debian repository
- Debian APT Browsable database of software ported to Debian's APT
- Debian Multimedia Christian Marillat's Multimedia packages
Linux distributions |
---|
CentOS • Debian • Fedora • Gentoo • Knoppix • Mandriva Linux • Red Hat Enterprise Linux • Slackware • SUSE Linux • Ubuntu • more… • comparison… |