This is a good article. Click here for more information.

Debian

From Infogalactic: the planetary knowledge core
Jump to: navigation, search
Debian
Debian OpenLogo
Desktop screenshot
Debian 8.2 (Jessie) with GNOME 3
Developer Debian Project (Software in the Public Interest)
Written in {{#property:p277}}
OS family Unix-like
Working state Current
Source model Open source
Initial release September 15, 1993; 30 years ago (1993-09-15)
Latest release 8.2 (Jessie) (September 5, 2015; 8 years ago (2015-09-05)) [±]
Available in 73 languages
Update method APT (several front-ends available)
Package manager dpkg
Platforms ARM, IA-32, IA-64, MIPS, PowerPC, x86-64, z/Architecture
Kernel type Monolithic: Linux, kFreeBSD
Micro: Hurd (unofficial)
Userland GNU
Default user interface GNOME
License DFSG-compliant
(free software licenses)
Official website www.debian.org

Debian (/ˈdɛbiən/)[1] is a Unix-like computer operating system that is composed entirely of free software, most of which is under the GNU General Public License, and packaged by a group of individuals known as the Debian Project. Three main branches are offered: Stable, Testing and Unstable.

The Debian Stable distribution is one of the most popular for personal computers and network servers, and has been used as a base for several other Linux distributions. The Debian Testing and Unstable branches are rolling release and eventually become the stable distribution after development and testing (Unstable becomes Testing, and Testing becomes Stable).[2]

Debian was first announced in 1993 by Ian Murdock, Debian 0.01 was released in August 1993, and the first stable release was made in 1996. The development is carried out over the Internet by a team of volunteers guided by a project leader and three foundational documents: the Debian Social Contract, the Debian Constitution, and the Debian Free Software Guidelines. New distributions are updated continually, and the next candidate is released after a time-based freeze.

As one of the earliest Linux distributions, it was envisioned that Debian was to be developed openly in the spirit of the GNU Project. This vision drew the attention and support of the Free Software Foundation, which sponsored the project for one year from November 1994 to November 1995.[3] Upon the ending of the sponsorship, the Debian project formed the non-profit organisation Software in the Public Interest.

<templatestyles src="Template:TOC limit/styles.css" />

Features

Text version of the Debian Installer
Graphical version of the Debian Installer
Debian console login and welcome message

Debian has access to online repositories that contain over 43,000 software packages[4] making it one of the largest software compilations.[5] Debian officially contains only free software, but non-free software can be downloaded from the Debian repositories and installed.[6] Debian includes popular free programs such as LibreOffice,[7] Iceweasel (Firefox) web browser, Evolution mail, K3b disc burner, VLC media player, GIMP image editor and Evince document viewer.[6] Debian is a popular choice for web servers.[8][9]

The cost of developing all of the packages included in Debian 5.0 Lenny (323 million lines of code) has been estimated to be about US$ 8 billion, using one method based on the COCOMO model.[5] As of 2016, Black Duck Open Hub estimates that the current codebase (74 million lines of code) would cost about US$ 1.4 billion to develop, using a different method based on the same model.[10][11]

The current stable release, Debian 8.2 code-named Jessie, is officially supported on ten architecture ports.[12] Notable changes in this release include using systemd as the default init system.[13]

Kernels

Debian supports Linux officially, offered kFreeBSD for version 7 but not 8,[14] and GNU Hurd unofficially.[15] GNU/kFreeBSD was released as a technology preview for IA-32 and x86-64 architectures,[14] and lacked the amount of software available in Debian's Linux distribution.[16] Official support for kFreeBSD was removed for version 8, which did not provide a kFreeBSD-based distribution.

There are several flavors of the Linux kernel for each port; for instance, the i386 port has flavors for IA-32 PCs supporting Physical Address Extension and real-time computing, for older PCs, and for x86-64 PCs.[17] The Linux kernel does not officially contain firmware without sources, although such firmware is available in non-free packages and alternative installation media.[18][19]

Installation and Live images

Debian offers DVD and CD images for installation that can be downloaded using BitTorrent or jigdo. Physical disks can also be bought from retailers.[20] The full sets are made up of several discs (the amd64 port consists of 10 DVDs or 69 CDs),[21] but only the first disc is required for installation, as the installer can retrieve software not contained in the first disc image from online repositories.[22]

Debian offers different network installation methods. A minimal install of Debian is available via the "netinst" CD, whereby Debian is installed with just a base and later additional software can be downloaded from the Internet. Another option is to boot the installer from the network.[23]

Installation images are hybrid on some architectures and can be used to create a bootable USB drive (Live USB).[24]

The default desktop may be chosen from the DVD boot menu among GNOME, KDE Software Compilation, Xfce and LXDE, and from special disc 1 CDs.[25][26]

Desktop environments

docky on Gnome Shell of Gnome 3, Debian
Debian KDE desktop

Debian offers CD images specifically built for GNOME (the default in Wheezy), KDE Software Compilation, Xfce and LXDE.[27] MATE is officially supported,[28] while Cinnamon support was added with Debian 8.0 Jessie.[29] Less common window managers such as Enlightenment, Openbox, Fluxbox, IceWM, Window Maker and others are available.[30]

The default desktop environment of version 7.0 Wheezy was temporarily switched to Xfce, because GNOME 3 did not fit on the first CD of the set.[31] The default for the version 8.0 Jessie was changed again to Xfce in November 2013,[32] and back to GNOME in September 2014.[33]

Debian Live

Debian releases live install images for CDs, DVDs and USB thumb drives, for IA-32 and x86-64 architectures, and with a choice of desktop environments. These "Debian Live" images allow the user to boot from removable media and run Debian without affecting the contents of their computer.

A full install of Debian to the computer's hard drive can be initiated from the live image environment.[34]

Personalized images can be built with the live-build tool for discs, USB drives and for network booting purposes.[35]

Package management

Package management operations can be performed with different tools available on Debian, from the lowest level command dpkg to graphical front-ends like Synaptic. The recommended standard for administering packages on a Debian system is the apt toolset.[36]

dpkg provides the low-level infrastructure for package management.[37] The dpkg database contains the list of installed software on the current system. The dpkg command tool does not know about repositories. The command can work with local .deb package files as well as information from the dpkg database.[38]

APT tools

Using Aptitude to view Debian package details
Package installed with Aptitude

An APT tool allows administration of an installed Debian system for retrieving and resolving package dependencies from repositories. APT tools share dependency information and cached packages.[36]

  • Aptitude is a command line tool that also offers a text-based user interface. The program comes with enhancements such as better search on package metadata.[36]
  • apt-get and apt-cache are command tools of the standard apt package. apt-get installs and removes packages, and apt-cache is used for searching packages and displaying package information.[36]
GDebi and other front-ends

GDebi is an APT tool which can be used in command-line and on the GUI.[39] GDebi can install a local .deb file via the command line like the dpkg command, but with access to repositories to resolve dependencies.[40] Other graphical front-ends for APT include Software Center,[41] Synaptic[42] and Apper.[43]

Branches

A Debian 4.0 Etch box cover

Three branches of Debian (also called releases, distributions or suites) are regularly maintained:[44]

  • Stable is the current release and targets stable and well-tested software needs.[45] Stable is made by freezing Testing for a few months where bugs are fixed and packages with too many bugs are removed; then the resulting system is released as Stable. It is updated only if major security or usability fixes are incorporated.[46] This branch has an optional backports service that provides more recent versions of some software.[47] Stable's CDs and DVDs can be found in the Debian website.[21]
  • Testing is the preview branch that will eventually become the next major release. The packages included in this branch have had some testing in Unstable but they may not be fit for release yet. It contains newer packages than Stable but older than Unstable. This branch is updated continually until it is frozen.[46] Testing's CDs and DVDs can be found on the Debian website.[21]
  • Unstable, always codenamed Sid, is the trunk. Packages are accepted without checking the distribution as a whole.[46] This branch is usually run by software developers who participate in a project and need the latest libraries available, and by those who prefer bleeding-edge software.[44] Debian does not provide Sid installation discs. This branch can be installed through a system upgrade from Testing.[48]

Other branches in Debian:

  • Oldstable is the prior Stable release.[46] It is supported by the Debian Security Team until one year after a new Stable is released, and since the release of Debian 6, for an additional 2 years through the Long Term Support project.[49] Eventually, Oldstable is moved to a repository for archived releases.[46]
  • Oldoldstable is the prior Oldstable release. It is supported by the Long Term Support community. Eventually, Oldoldstable is moved to a repository for archived releases.
  • Experimental is a temporary staging area of highly experimental software that is likely to break the system. It is not a full distribution and missing dependencies are commonly found in Unstable, where new software without the damage chance is normally uploaded.[46]

The snapshot archive provides older versions of the branches. They may be used to install a specific older version of some software.[50]

Numbering scheme

Stable and Oldstable get minor updates, called point releases; as of September 2015, the Stable release is version 8.2,[51] and the Oldstable release is version 7.9.[52]

The numbering scheme for the point releases up to Debian 4.0 was to include the letter r (for revision)[53] after the main version number and then the number of the point release; for example, the latest point release of version 4.0 is 4.0r9.[54] This scheme was chosen because a new dotted version would make the old one look obsolete and vendors would have trouble selling their CDs.[55]

From Debian 5.0, the numbering scheme of point releases was changed, conforming to the GNU version numbering standard;[56] the first point release of Debian 5.0 was 5.0.1 instead of 5.0r1.[57] The numbering scheme was once again changed for the first Debian 7 update, which was version 7.1.[52] The r scheme is no longer in use, but point release announcements include a note about not throwing away old CDs.[58]

Code names

The code names of Debian releases are names of characters from the Toy Story films. Debian 8 was named Jessie, after the cowgirl in Toy Story 2 and Toy Story 3. The Testing branch is currently named Stretch, after the toy rubber octopus in Toy Story 3. The Unstable trunk is permanently nicknamed Sid, after the emotionally unstable boy next door who regularly destroyed toys.[59]

This naming tradition came about because Bruce Perens was involved in the early development of Debian while working at Pixar.[60]

Blends

Debian Pure Blends are subsets of a Debian release configured out-of-the-box for users with particular skills and interests.[61] For instance, Debian Jr. is targeted at children, while Debian Science aims at researchers and scientists.[62] The complete Debian distribution includes all available Debian Pure Blends.[61] "Debian Blend" (without "Pure") is a term for a Debian-based distribution that strives to become part of mainstream Debian, and have its extra features included in future releases.[63]

The Debian "swirl" logo was designed by Raul Silva[64][65] in 1999 as part of a contest to replace the semi-official logo that had been used.[66] The winner of the contest received an @debian.org email address, as well as a set of Debian 2.1 install CDs for the architecture of their choice. There has been no official statement from the Debian project on the logo's meaning, but at the time of the logo's selection, it was suggested that the logo represented the magic smoke that made computers work.[67][68]

One theory about the origin of the Debian logo is based on an interesting detail: Buzz Lightyear, the chosen character for the first named Debian release, has a swirl in his chin.[69][70] Stefano Zacchiroli also suggested that this swirl is the Debian one.[71]

Archive areas

The Debian Free Software Guidelines (DFSG) define the distinctive meaning of the word "free" as in "free and open-source software".[72] Packages which comply with these guidelines, usually under the GNU General Public License, Modified BSD License or Artistic License,[73] are included inside the main area;[46] otherwise, they are included inside the non-free and contrib areas. These last two areas are not distributed within the official installation media, but they can be adopted manually.[72]

Non-free includes packages which do not comply with the DFSG,[74] such as documentation with invariant sections and proprietary software,[75][76] and legally questionable packages.[74] Contrib includes packages which do comply with the DFSG but fail other requirements; for instance, they may depend on packages which are in non-free or requires such for building them.[74]

Richard Stallman and the Free Software Foundation have criticized the Debian project for hosting the non-free repository and because the contrib and non-free areas are easily accessible,[77][78] an opinion echoed by some in Debian including the former project leader Wichert Akkerman.[79] The internal dissent in the Debian project regarding the non-free section has persisted,[80] but the last time it came to a vote in 2004, the majority decided to keep it.[81]

Multimedia support

Multimedia support has been problematic in Debian regarding codecs threatened by possible patent infringements, without sources or under too restrictive licenses,[82] and regarding technologies such as Adobe Flash.[83] Even though packages with problems related to their distribution could go into the non-free area, software such as libdvdcss is not hosted at Debian.[84]

There is a notable third party repository, formerly known as debian-multimedia.org,[85][86][87] providing software not present in Debian such as Windows codecs, libdvdcss and the Adobe Flash Player.[88] Even though this repository is maintained by Christian Marillat, a Debian developer, it is not part of the project and is not hosted on a Debian server. The repository provides packages already included in Debian, interfering with the official maintenance. Eventually, project leader Stefano Zacchiroli asked Marillat to either settle an agreement about the packaging or to stop using the "Debian" name.[89] Marillat chose the latter and renamed the repository to deb-multimedia.org. The repository was so popular that the switchover was announced by the official blog of the Debian project.[90]

Hardware support

Hardware requirements

Hardware requirements are at least those of the kernel and the GNU toolsets. Debian supports uniprocessor and symmetric multiprocessor systems.[91] Debian's recommended system requirements depend on the level of installation, which corresponds to increased numbers of installed components:[92]

Type Minimum RAM size Recommended RAM size Minimum processor clock speed (IA-32) Hard drive capacity
Non desktop 64 MB 256 MB GB
Desktop 128 MB 512 MB 1 GHz 5 GB

The real minimum memory requirements depend on the architecture and may be much less than the numbers listed in this table. It is possible to install Debian with 60 MB of RAM for x86-64;[92] the installer will run in low memory mode and it is recommended to create a swap partition.[25] The installer for z/Architecture requires about 20 MB of RAM, but relies on network hardware.[92][93] Similarly, disk space requirements, which depend on the packages to be installed, can be reduced by manually selecting the packages needed.[92] As of August 2014, there is no Pure Blend that would lower the hardware requirements easily.[94]

It is possible to run graphical user interfaces on older or low-end systems, but the installation of window managers instead of desktop environments is recommended, as desktop environments are more resource-intensive. Requirements for individual software vary widely and must be considered as well as those of the base operating environment.[92]

Architecture ports

HP 9000 C110 PA-RISC workstation booting Debian Lenny
Official ports

As of the Jessie release, the official ports are:[95]

  • amd64: x86-64 architecture with 64-bit userland and supporting 32-bit software
  • arm64: ARMv8-A architecture[96]
  • armel: Little-endian ARM architecture (ARMv4T instruction set)[97] on various embedded systems (EABI)
  • armhf: ARM hard-float architecture (ARMv7 instruction set) requiring hardware with a floating-point unit
  • i386: IA-32 architecture with 32-bit userland, compatible with x86-64 machines[91]
  • mips: Big-endian MIPS architecture
  • mipsel: Little-endian MIPS architecture
  • powerpc: PowerPC architecture
  • ppc64el: Little-endian PowerPC64 architecture supporting POWER7+ and POWER8 CPUs[96]
  • s390x: z/Architecture with 64-bit userland, intended to replace s390[98]
Unofficial ports

Unofficial ports are available as part of the Unstable distribution:[95][99]

Embedded systems

Debian supports a variety of ARM-based NAS devices. The NSLU2 was supported by the installer in Debian 4.0 and 5.0,[101] and Martin Michlmayr is providing installation tarballs since version 6.0.[102] Other supported NAS devices are the Buffalo Kurobox Pro,[103] GLAN Tank, Thecus N2100[104] and QNAP Turbo Stations.[103]

Devices based on the Kirkwood SoC are supported too, such as the SheevaPlug plug computer and OpenRD products.[105] There are efforts to run Debian on mobile devices, but this is not a project goal yet since the Debian Linux kernel maintainers would not apply the necessary patches.[106] Nevertheless, there are packages for resource-limited systems.[107]

There are efforts to support Debian on wireless access points.[108] Debian is known to run on set-top boxes.[109] There is an ongoing work to support the AM335x processor,[110] which is used in electronic point of service solutions.[111] Debian may be customized to run on cash machines.[112]

BeagleBoard, a low-power open-source hardware single-board computer (Produced by Texas Instruments) has switched to Debian Linux pre-loaded on its Beaglebone Black board's flash.

Support for communities

Localization

Several parts of Debian are translated into languages other than English, including package descriptions, configuration messages, documentation and the website.[113] The level of software localization depends on the language, ranging from the highly supported German and French to the hardly translated Creek and Samoan.[114] The installer is available in 73 languages.[115]

Virtual communities

Debian provides packages targeted at virtual communities. The Facebook and Twitter application interfaces are available to programmers;[116][117] the Pidgin messaging client used a custom plugin for Facebook until the networking site added support for XMPP.[118] Debian 5.0 Lenny was the last release supporting Tencent QQ.[119][120] Communication with Skype is possible using software in the contrib area.[121]

Policies

Debian is known for its manifesto,[122][123] social contract,[123][124][125] and policies.[126] Debian's policies and team efforts focus on collaborative software development and testing processes.[1] As a result of its policies, a new major release tends to occur every two years with revision releases that fix security issues and important problems.[53][127]

Organization

Lua error in package.lua at line 80: module 'strict' not found.Lua error in package.lua at line 80: module 'strict' not found.Lua error in package.lua at line 80: module 'strict' not found.Lua error in package.lua at line 80: module 'strict' not found.Lua error in package.lua at line 80: module 'strict' not found.Lua error in package.lua at line 80: module 'strict' not found.Lua error in package.lua at line 80: module 'strict' not found.Lua error in package.lua at line 80: module 'strict' not found.
Simplified organizational structure

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.[72]
  • The Debian Free Software Guidelines define the criteria for "free software" and thus what software is permissible in the distribution. These guidelines have been adopted as the basis of the Open Source Definition. Although this document can be considered separate, it formally is part of the Social Contract.[72]
  • The Debian Constitution describes the organizational structure for formal decision-making within the project, and enumerates the powers and responsibilities of the Project Leader, the Secretary and other roles.[128]
Historical population
Year DD ±%
1999 347 —    
2000 347 +0.0%
2001 ? —    
2002 939 —    
2003 831 −11.5%
2004 911 +9.6%
2005 965 +5.9%
2006 972 +0.7%
2007 1,036 +6.6%
2008 1,075 +3.8%
2009 1,013 −5.8%
2010 886 −12.5%
2011 911 +2.8%
2012 948 +4.1%
2013 988 +4.2%
2014 1,003 +1.5%
Source: Debian Voting Information

Debian developers are organized in a web of trust.[129] There are at present about one thousand active Debian developers,[130][131] but it is possible to contribute to the project without being an official developer.[132]

The project maintains official mailing lists and conferences for communication and coordination between developers.[46][133] For issues with single packages and other tasks,[134] a public bug tracking system is used by developers and end users. Internet Relay Chat channels (primarily on the OFTC and freenode networks) are also used for communication among developers[46] and to provide real time help.[135]

Debian is supported by donations made to organizations authorized by the leader.[128] The largest supporter is Software in the Public Interest, the owner of the Debian trademark, manager of the monetary donations[136] and umbrella organization for various other community free software projects.[137]

A Project Leader is elected once per year by the developers. The leader has special powers, but they are not absolute, and appoints delegates to perform specialized tasks. Delegates make decisions as they think is best, taking into account technical criteria and consensus. By way of a General Resolution, the developers may recall the leader, reverse a decision made by the leader or a delegate, amend foundational documents and make other binding decisions.[128] The voting method is based on the Cloneproof Schwartz Sequential Dropping.[138]

1993 —
1994 —
1995 —
1996 —
1997 —
1998 —
1999 —
2000 —
2001 —
2002 —
2003 —
2004 —
2005 —
2006 —
2007 —
2008 —
2009 —
2010 —
2011 —
2012 —
2013 —
2014 —
2015 —
2016 —
Wichert Akkerman
Ben Collins
Branden Robinson
Anthony Towns
Steve McIntyre
Lucas Nussbaum
Neil McGovern
The Project Leader is the public face of Debian and defines its direction.[139][140]

Project leadership is distributed occasionally. Branden Robinson was helped by the Project Scud, a team of developers that assisted the leader,[141] but there were concerns that such leadership would split Debian into two developer classes.[142] Anthony Towns created a supplemental position, Second In Charge (2IC), that shared some powers of the leader.[143] Steve McIntyre was 2IC and had a 2IC himself.[144]

One important role in Debian's leadership is that of a release manager.[145] The release team sets goals for the next release, supervises the processes and decides when to release. The team is led by the next release managers and stable release managers.[146] Release assistants were introduced in 2003.[147]

Developer recruitment, motivation, and resignation

The Debian project has an influx of applicants wishing to become developers.[148] These applicants must undergo a vetting process which establishes their identity, motivation, understanding of the project's principles, and technical competence.[149] This process has become much harder throughout the years.[150]

Debian developers join the project for a number of reasons; some that have been cited include:

  • Debian is their main operating system and they want to promote Debian[151]
  • To improve the support for their favorite technology[152]
  • They are involved with a Debian derivative[153]
  • A desire to contribute back to the free-software community[154]
  • To make their Debian maintenance work easier[155]

Debian developers may resign their positions at any time or, when deemed necessary, they can be expelled.[128] Those who follow the retiring protocol are granted the "emeritus" status and they may regain their membership through a shortened new member process.[156]

Development procedures

upstream
packaging
package
upload
incoming
checks
unstable
migration
testing
freeze
stable
Flowchart of the life cycle of a Debian package

Each software package has a maintainer that may be either one person or a team of Debian developers and non-developer maintainers.[157][158] The maintainer keeps track of upstream releases, and ensures that the package coheres with the rest of the distribution and meets the standards of quality of Debian. Packages may include modifications introduced by Debian to achieve compliance with Debian Policy, even to fix non-Debian specific bugs, although coordination with upstream developers is advised.[156]

The maintainer releases a new version by uploading the package to the "incoming" system, which verifies the integrity of the packages and their digital signatures. If the package is found to be valid, it is installed in the package archive into an area called the "pool" and distributed every day to hundreds of mirrors worldwide. The upload must be signed using OpenPGP-compatible software.[46] All Debian developers have individual cryptographic key pairs.[159] Developers are responsible for any package they upload even if the packaging was prepared by another contributor.[160]

Initially, an accepted package is only available in the Unstable branch.[46] For a package to become a candidate for the next release, it must migrate to the Testing branch by meeting the following:[161]

  • It has been in Unstable for a certain length of time that depends on the urgency of the changes.
  • It does not have "release-critical" bugs, except for the ones already present in Testing. Release-critical bugs are those considered serious enough that they make the package unsuitable for release.
  • There are no outdated versions in Unstable for any release ports.
  • The migration does not break any packages in Testing.
  • Its dependencies can be satisfied by packages already in Testing or by packages being migrated at the same time.
  • The migration is not blocked by a freeze.

Thus, a release-critical bug in a new version of a shared library on which many packages depend may prevent those packages from entering Testing, because the updated library must meet the requirements too.[162] From the branch viewpoint, the migration process happens twice per day, rendering Testing in perpetual beta.[46]

Periodically, the release team publishes guidelines to the developers in order to ready the release. A new release occurs after a freeze, when all important software is reasonably up-to-date in the Testing branch and any other significant issues are solved. At that time, all packages in the Testing branch become the new Stable branch.[46] Although freeze dates are time-based,[127] release dates are not, which are announced by the release managers a couple of weeks beforehand.[163]

A version of a package can belong to more than one branch, usually Testing and Unstable. It is possible for a package to keep the same version between stable releases and be part of Oldstable, Stable, Testing and Unstable at the same time.[164] Each branch can be seen as a collection of pointers into the package "pool" mentioned above.[46]

Security

The Debian project handles security through public disclosure rather than through obscurity. Debian security advisories are compatible with the Common Vulnerabilities and Exposures dictionary, are usually coordinated with other free software vendors and are published the same day a vulnerability is made public.[165][166] There used to be a security audit project that focused on packages in the stable release looking for security bugs;[167] Steve Kemp, who started the project, retired in 2011 but resumed his activities and applied to rejoin in 2014.[168][169]

The Stable branch is supported by the Debian security team; Oldstable is supported for one year.[49] Although Squeeze is not officially supported, Debian is coordinating an effort to provide long-term support until February 2016, five years after the initial release, but only for the IA-32 and x86-64 platforms.[170] Testing is supported by the Testing security team, but does not receive updates in as timely a manner as Stable.[171] Unstable's security is left for the package maintainers.[49]

The Debian project offers documentation and tools to harden a Debian installation both manually and automatically.[172] Security-Enhanced Linux and AppArmor support is available but disabled by default.[103] Debian provides an optional hardening wrapper, and does not harden all of its software by default using gcc features such as PIE and buffer overflow protection, unlike operating systems such as OpenBSD,[173] but tries to build as many packages as possible with hardening flags.[14]

2008 OpenSSL vulnerability

In May 2008, it was revealed that a Debian developer discovered that the OpenSSL package distributed with Debian and derivatives such as Ubuntu, made a variety of security keys vulnerable to a random number generator attack, since only 32,767 different keys were generated.[174][175][176] The security weakness was caused by changes made in 2006 by another Debian developer in response to memory debugger warnings.[176][177] The complete resolution procedure was cumbersome because patching the security hole was not enough; it involved regenerating all affected keys and certificates.[178] Being introduced by Debian, the vulnerability caused anger and embarrassment among Debian developers.[179][180]

Derivatives

Debian is one of the most popular Linux distributions, and many other distributions have been created from the Debian codebase, including Ubuntu and Knoppix.[181] As of 2016, DistroWatch lists 126 active Debian derivatives.[182] The Debian project provides its derivatives with guidelines for best practices and encourages derivatives to merge their work back into Debian.[183][184] A sign of cooperation with Ubuntu can be seen in the Debian package tracker.[185]

History

<templatestyles src="Module:Hatnote/styles.css"></templatestyles>

Birth (1993–1998)

Debian was first announced on August 16, 1993, by Ian Murdock, who initially called the system "the Debian Linux Release".[186][187] The word "Debian" was formed as a combination of the first name of his then-girlfriend Debra Lynn and his own first name.[188] Prior to Debian's release, the Softlanding Linux System (SLS) had been a popular Linux distribution and the basis for Slackware.[189] The perceived poor maintenance and prevalence of bugs in SLS motivated Murdock to launch a new distribution.[190]

Debian 0.01, released on September 15, 1993, was the first of several internal releases.[191] Version 0.91 was virtually the first public release,[192] providing support through mailing lists hosted at Pixar.[193] The release included the Debian Linux Manifesto, outlining Murdock's view for the new operating system. In it he called for the creation of a distribution to be maintained openly, in the spirit of Linux and GNU.[194]

The Debian project released the 0.9x versions in 1994 and 1995.[195] During this time it was sponsored by the Free Software Foundation for one year.[196] Ian Murdock delegated the base system, the core packages of Debian, to Bruce Perens and Murdock focused on the management of the growing project.[192] The first ports to non-IA-32 architectures began in 1995, and Debian 1.1 was released in 1996.[197] By that time and thanks to Ian Jackson, the dpkg package manager was already an essential part of Debian.[198]

In 1996, Bruce Perens assumed the project leadership. Perens was a controversial leader, regarded as authoritarian and strongly attached to Debian.[60] He drafted a social contract and edited suggestions from a month-long discussion into the Debian Social Contract and the Debian Free Software Guidelines.[199] After the FSF withdrew their sponsorship in the midst of the free software vs. open source debate,[200] Perens initiated the creation of the legal umbrella organization Software in the Public Interest instead of seeking renewed involvement with the FSF.[197] He led the conversion of the project from a.out to ELF.[201] He created the BusyBox program to make it possible to run a Debian installer on a single floppy, and wrote a new installer.[202] By the time Debian 1.2 was released, the project had grown to nearly two hundred volunteers.[201] Perens left the project in 1998.[203]

Ian Jackson became the leader in 1998.[204] Debian 2.0 introduced the second official port, m68k.[195] During this time the first port to a non-Linux kernel, Debian GNU/Hurd, was started.[205] On December 2, the first Debian Constitution was ratified.[128]

Leader election (1999–2005)

From 1999, the project leader was elected yearly.[138] The Advanced Packaging Tool was deployed with Debian 2.1.[195] The amount of applicants was overwhelming and the project established the new member process.[206][207] The first Debian derivatives, namely Libranet,[208] Corel Linux and Stormix's Storm Linux, were started in 1999.[197] The 2.2 release in 2000 was dedicated to Joel Klecker, a developer who died of Duchenne muscular dystrophy.[209]

In late 2000, the project reorganized the archive with new package "pools" and created the Testing distribution, made up of packages considered stable, to reduce the freeze for the next release.[197] In the same year, developers began holding an annual conference called DebConf with talks and workshops for developers and technical users.[210] In May 2001, Hewlett-Packard announced plans to base its Linux development on Debian.[211]

In July 2002, the project released version 3.0, code-named Woody, the first release to include cryptographic software, a free licensed KDE and internationalization.[212] During these last release cycles, the Debian project drew considerable criticism from the free software community because of the long time between stable releases.[213][214][215]

Some events disturbed the project while working on Sarge, as Debian servers were attacked by fire and hackers.[197][216] One of the most memorable was the Vancouver prospectus.[217][218][219] After a meeting held in Vancouver, release manager Steve Langasek announced a plan to reduce the number of supported ports to four in order to shorten future release cycles.[220] There was a large reaction because the proposal looked more like a decision and because such a drop would damage Debian's aim to be "the universal operating system".[221][222][223]

Sarge and later releases (2005–2015)

Debian 4.0 Etch (2007)

The 3.1 Sarge release was made in June 2005. This release updated 73% of the software and included over 9,000 new packages. A new installer with a modular design, Debian-Installer, allowed installations with RAID, XFS and LVM support, improved hardware detection, made installations easier for novice users, and was translated into almost forty languages. An installation manual and release notes were in ten and fifteen languages respectively. The efforts of Skolelinux, Debian-Med and Debian-Accessibility raised the number of packages that were educational, had a medical affiliation, and ones made for people with disabilities.[197][224]

Iceweasel logo

In 2006, as a result of a much-publicized dispute, Mozilla software was rebranded in Debian, with Firefox becoming Iceweasel and Thunderbird becoming Icedove. The Mozilla Corporation stated that software with unapproved modifications could not be distributed under the Firefox trademark. Two reasons that Debian modifies the Firefox software are to change the non-free artwork and to provide security patches.[225][226]

A fund-raising experiment, Dunc-Tank, was created to solve the release cycle problem and release managers were paid to work full-time;[227] in response, unpaid developers slowed down their work and the release was delayed.[228] Debian 4.0 (Etch) was released in April 2007, featuring the x86-64 port and a graphical installer.[195] Debian 5.0 (Lenny) was released in February 2009, supporting Marvell's Orion platform and netbooks such as the Asus Eee PC.[83] The release was dedicated to Thiemo Seufer, a developer who died in a car accident.[229]

Debian 6.0 Squeeze (2011)

In July 2009, the policy of time-based development freezes on a two-year cycle was announced. Time-based freezes are intended to blend the predictability of time based releases with Debian's policy of feature based releases, and to reduce overall freeze time.[127] The Squeeze cycle was going to be especially short; however, this initial schedule was abandoned.[230] In September 2010, the backports service became official, providing more recent versions of some software for the stable release.[47]

Debian 6.0 (Squeeze) was released in February 2011, introduced Debian GNU/kFreeBSD as a technology preview, featured a dependency-based boot system, and moved problematic firmware to the non-free area.[27] Debian 7.0 (Wheezy) was released in May 2013, featuring multiarch support[231] and Debian 8.0 (Jessie) was released in April 2015, using systemd as the new init system.[232] At present, Debian is still in development and new packages are uploaded to Unstable every day.[233]

Throughout Debian's lifetime, both the Debian distribution and its website have won various awards from different organizations,[234] including Server Distribution of the Year 2011,[235] The best Linux distro of 2011,[236] and a Best of the Net award for October 1998.[237]

See also

Notes

  1. 1.0 1.1 Lua error in package.lua at line 80: module 'strict' not found.
  2. Lua error in package.lua at line 80: module 'strict' not found.
  3. Lua error in package.lua at line 80: module 'strict' not found.
  4. Lua error in package.lua at line 80: module 'strict' not found.
  5. 5.0 5.1 Amor, J. J.; Robles, G.; González-Barahona, J. M.; Rivas, F.: Measuring Lenny: the size of Debian 5.0 ResearchGate
  6. 6.0 6.1 Lua error in package.lua at line 80: module 'strict' not found.
  7. Lua error in package.lua at line 80: module 'strict' not found.
  8. Lua error in package.lua at line 80: module 'strict' not found.
  9. Lua error in package.lua at line 80: module 'strict' not found.
  10. Lua error in package.lua at line 80: module 'strict' not found.
  11. Lua error in package.lua at line 80: module 'strict' not found.
  12. Lua error in package.lua at line 80: module 'strict' not found.
  13. Lua error in package.lua at line 80: module 'strict' not found.
  14. 14.0 14.1 14.2 Lua error in package.lua at line 80: module 'strict' not found.
  15. Lua error in package.lua at line 80: module 'strict' not found.
  16. Lua error in package.lua at line 80: module 'strict' not found.
  17. Lua error in package.lua at line 80: module 'strict' not found.
  18. Lua error in package.lua at line 80: module 'strict' not found.
  19. Lua error in package.lua at line 80: module 'strict' not found.
  20. Lua error in package.lua at line 80: module 'strict' not found.
  21. 21.0 21.1 21.2 Lua error in package.lua at line 80: module 'strict' not found.
  22. Lua error in package.lua at line 80: module 'strict' not found.
  23. Lua error in package.lua at line 80: module 'strict' not found.
  24. Lua error in package.lua at line 80: module 'strict' not found.
  25. 25.0 25.1 Lua error in package.lua at line 80: module 'strict' not found.
  26. Lua error in package.lua at line 80: module 'strict' not found.
  27. 27.0 27.1 Lua error in package.lua at line 80: module 'strict' not found.
  28. Lua error in package.lua at line 80: module 'strict' not found.
  29. Lua error in package.lua at line 80: module 'strict' not found.
  30. Lua error in package.lua at line 80: module 'strict' not found.
  31. Lua error in package.lua at line 80: module 'strict' not found.
  32. Lua error in package.lua at line 80: module 'strict' not found.
  33. Lua error in package.lua at line 80: module 'strict' not found.
  34. Lua error in package.lua at line 80: module 'strict' not found.
  35. Lua error in package.lua at line 80: module 'strict' not found.
  36. 36.0 36.1 36.2 36.3 Lua error in package.lua at line 80: module 'strict' not found.
  37. Lua error in package.lua at line 80: module 'strict' not found.
  38. Lua error in package.lua at line 80: module 'strict' not found.
  39. Lua error in package.lua at line 80: module 'strict' not found.
  40. Lua error in package.lua at line 80: module 'strict' not found.
  41. Lua error in package.lua at line 80: module 'strict' not found.
  42. Lua error in package.lua at line 80: module 'strict' not found.
  43. Lua error in package.lua at line 80: module 'strict' not found.
  44. 44.0 44.1 Lua error in package.lua at line 80: module 'strict' not found.
  45. Lua error in package.lua at line 80: module 'strict' not found.
  46. 46.00 46.01 46.02 46.03 46.04 46.05 46.06 46.07 46.08 46.09 46.10 46.11 46.12 46.13 Lua error in package.lua at line 80: module 'strict' not found.
  47. 47.0 47.1 Lua error in package.lua at line 80: module 'strict' not found.
  48. Lua error in package.lua at line 80: module 'strict' not found.
  49. 49.0 49.1 49.2 Lua error in package.lua at line 80: module 'strict' not found.
  50. Lua error in package.lua at line 80: module 'strict' not found.
  51. Lua error in package.lua at line 80: module 'strict' not found.
  52. 52.0 52.1 Lua error in package.lua at line 80: module 'strict' not found.
  53. 53.0 53.1 Lua error in package.lua at line 80: module 'strict' not found.
  54. Lua error in package.lua at line 80: module 'strict' not found.
  55. Lua error in package.lua at line 80: module 'strict' not found.
  56. Lua error in package.lua at line 80: module 'strict' not found.
  57. Lua error in package.lua at line 80: module 'strict' not found.
  58. Lua error in package.lua at line 80: module 'strict' not found.
  59. Lua error in package.lua at line 80: module 'strict' not found.
  60. 60.0 60.1 Hertzog 2013, p. 9.
  61. 61.0 61.1 Lua error in package.lua at line 80: module 'strict' not found.
  62. Lua error in package.lua at line 80: module 'strict' not found.
  63. Lua error in package.lua at line 80: module 'strict' not found.
  64. Lua error in package.lua at line 80: module 'strict' not found.
  65. Lua error in package.lua at line 80: module 'strict' not found.
  66. Lua error in package.lua at line 80: module 'strict' not found.
  67. Lua error in package.lua at line 80: module 'strict' not found.
  68. Lua error in package.lua at line 80: module 'strict' not found.
  69. Krafft 2005, p. 66.
  70. Lua error in package.lua at line 80: module 'strict' not found.
  71. Lua error in package.lua at line 80: module 'strict' not found.
  72. 72.0 72.1 72.2 72.3 Lua error in package.lua at line 80: module 'strict' not found.
  73. Lua error in package.lua at line 80: module 'strict' not found.
  74. 74.0 74.1 74.2 Lua error in package.lua at line 80: module 'strict' not found.
  75. Lua error in package.lua at line 80: module 'strict' not found.
  76. Lua error in package.lua at line 80: module 'strict' not found.
  77. Lua error in package.lua at line 80: module 'strict' not found.
  78. Lua error in package.lua at line 80: module 'strict' not found.
  79. Lua error in package.lua at line 80: module 'strict' not found.
  80. Lua error in package.lua at line 80: module 'strict' not found.
  81. Lua error in package.lua at line 80: module 'strict' not found.
  82. Lua error in package.lua at line 80: module 'strict' not found.
  83. 83.0 83.1 Lua error in package.lua at line 80: module 'strict' not found.
  84. Lua error in package.lua at line 80: module 'strict' not found.
  85. Lua error in package.lua at line 80: module 'strict' not found.
  86. Lua error in package.lua at line 80: module 'strict' not found.
  87. Lua error in package.lua at line 80: module 'strict' not found.
  88. Lua error in package.lua at line 80: module 'strict' not found.
  89. Lua error in package.lua at line 80: module 'strict' not found.
  90. Lua error in package.lua at line 80: module 'strict' not found.
  91. 91.0 91.1 Lua error in package.lua at line 80: module 'strict' not found.
  92. 92.0 92.1 92.2 92.3 92.4 Lua error in package.lua at line 80: module 'strict' not found.
  93. Lua error in package.lua at line 80: module 'strict' not found.
  94. Lua error in package.lua at line 80: module 'strict' not found.
  95. 95.0 95.1 Lua error in package.lua at line 80: module 'strict' not found.
  96. 96.0 96.1 Lua error in package.lua at line 80: module 'strict' not found.
  97. Lua error in package.lua at line 80: module 'strict' not found.
  98. Lua error in package.lua at line 80: module 'strict' not found.
  99. Lua error in package.lua at line 80: module 'strict' not found.
  100. Lua error in package.lua at line 80: module 'strict' not found.
  101. Lua error in package.lua at line 80: module 'strict' not found.
  102. Lua error in package.lua at line 80: module 'strict' not found.
  103. 103.0 103.1 103.2 Lua error in package.lua at line 80: module 'strict' not found.
  104. Lua error in package.lua at line 80: module 'strict' not found.
  105. Lua error in package.lua at line 80: module 'strict' not found.
  106. Lua error in package.lua at line 80: module 'strict' not found.
  107. Lua error in package.lua at line 80: module 'strict' not found.
  108. Lua error in package.lua at line 80: module 'strict' not found.
  109. Lua error in package.lua at line 80: module 'strict' not found.
  110. Lua error in package.lua at line 80: module 'strict' not found.
  111. Lua error in package.lua at line 80: module 'strict' not found.
  112. Lua error in package.lua at line 80: module 'strict' not found.
  113. Lua error in package.lua at line 80: module 'strict' not found.
  114. Lua error in package.lua at line 80: module 'strict' not found.
  115. Lua error in package.lua at line 80: module 'strict' not found.
  116. Lua error in package.lua at line 80: module 'strict' not found.
  117. Lua error in package.lua at line 80: module 'strict' not found.
  118. Lua error in package.lua at line 80: module 'strict' not found.
  119. Lua error in package.lua at line 80: module 'strict' not found.
  120. Lua error in package.lua at line 80: module 'strict' not found.
  121. Lua error in package.lua at line 80: module 'strict' not found.
  122. Lua error in package.lua at line 80: module 'strict' not found.
  123. 123.0 123.1 Lua error in package.lua at line 80: module 'strict' not found.
  124. Lua error in package.lua at line 80: module 'strict' not found.
  125. Lua error in package.lua at line 80: module 'strict' not found.
  126. Lua error in package.lua at line 80: module 'strict' not found.
  127. 127.0 127.1 127.2 Lua error in package.lua at line 80: module 'strict' not found.
  128. 128.0 128.1 128.2 128.3 128.4 Lua error in package.lua at line 80: module 'strict' not found.
  129. Coleman 2013, p. 143.
  130. Lua error in package.lua at line 80: module 'strict' not found.
  131. Lua error in package.lua at line 80: module 'strict' not found.
  132. Lua error in package.lua at line 80: module 'strict' not found.
  133. Lua error in package.lua at line 80: module 'strict' not found.
  134. Lua error in package.lua at line 80: module 'strict' not found.
  135. Lua error in package.lua at line 80: module 'strict' not found.
  136. Lua error in package.lua at line 80: module 'strict' not found.
  137. Lua error in package.lua at line 80: module 'strict' not found.
  138. 138.0 138.1 Lua error in package.lua at line 80: module 'strict' not found.
  139. Lua error in package.lua at line 80: module 'strict' not found.
  140. Lua error in package.lua at line 80: module 'strict' not found.
  141. Lua error in package.lua at line 80: module 'strict' not found.
  142. Krafft 2005, p. 34.
  143. Lua error in package.lua at line 80: module 'strict' not found.
  144. Lua error in package.lua at line 80: module 'strict' not found.
  145. Lua error in package.lua at line 80: module 'strict' not found.
  146. Lua error in package.lua at line 80: module 'strict' not found.
  147. Lua error in package.lua at line 80: module 'strict' not found.
  148. Lua error in package.lua at line 80: module 'strict' not found.
  149. Lua error in package.lua at line 80: module 'strict' not found.
  150. Hertzog 2013, p. 13.
  151. Lua error in package.lua at line 80: module 'strict' not found.
  152. Lua error in package.lua at line 80: module 'strict' not found.
  153. Lua error in package.lua at line 80: module 'strict' not found.
  154. Lua error in package.lua at line 80: module 'strict' not found.
  155. Lua error in package.lua at line 80: module 'strict' not found.
  156. 156.0 156.1 Lua error in package.lua at line 80: module 'strict' not found.
  157. Lua error in package.lua at line 80: module 'strict' not found.
  158. Lua error in package.lua at line 80: module 'strict' not found.
  159. Lua error in package.lua at line 80: module 'strict' not found.
  160. Lua error in package.lua at line 80: module 'strict' not found.
  161. Lua error in package.lua at line 80: module 'strict' not found.
  162. Lua error in package.lua at line 80: module 'strict' not found.
  163. Lua error in package.lua at line 80: module 'strict' not found.
  164. Lua error in package.lua at line 80: module 'strict' not found.
  165. Lua error in package.lua at line 80: module 'strict' not found.
  166. Lua error in package.lua at line 80: module 'strict' not found.
  167. Lua error in package.lua at line 80: module 'strict' not found.
  168. Lua error in package.lua at line 80: module 'strict' not found.
  169. Lua error in package.lua at line 80: module 'strict' not found.
  170. Lua error in package.lua at line 80: module 'strict' not found.
  171. Lua error in package.lua at line 80: module 'strict' not found.
  172. Lua error in package.lua at line 80: module 'strict' not found.
  173. Lua error in package.lua at line 80: module 'strict' not found.
  174. Lua error in package.lua at line 80: module 'strict' not found.
  175. Lua error in package.lua at line 80: module 'strict' not found.
  176. 176.0 176.1 Lua error in package.lua at line 80: module 'strict' not found.
  177. Lua error in package.lua at line 80: module 'strict' not found.
  178. Lua error in package.lua at line 80: module 'strict' not found.
  179. Lua error in package.lua at line 80: module 'strict' not found.
  180. Lua error in package.lua at line 80: module 'strict' not found.
  181. Lua error in package.lua at line 80: module 'strict' not found.
  182. Lua error in package.lua at line 80: module 'strict' not found.
  183. Lua error in package.lua at line 80: module 'strict' not found.
  184. Hertzog 2013, p. 429.
  185. Lua error in package.lua at line 80: module 'strict' not found.
  186. Lua error in package.lua at line 80: module 'strict' not found.
  187. Lua error in package.lua at line 80: module 'strict' not found.
  188. Lua error in package.lua at line 80: module 'strict' not found.
  189. Lua error in package.lua at line 80: module 'strict' not found.
  190. Scheetz 1998, p. 17.
  191. Lua error in package.lua at line 80: module 'strict' not found.
  192. 192.0 192.1 Scheetz 1998, p. 18.
  193. Lua error in package.lua at line 80: module 'strict' not found.
  194. Lua error in package.lua at line 80: module 'strict' not found.
  195. 195.0 195.1 195.2 195.3 Lua error in package.lua at line 80: module 'strict' not found.
  196. Lua error in package.lua at line 80: module 'strict' not found.
  197. 197.0 197.1 197.2 197.3 197.4 197.5 Lua error in package.lua at line 80: module 'strict' not found.
  198. Krafft 2005, pp. 31–32.
  199. Lua error in package.lua at line 80: module 'strict' not found.
  200. Lua error in package.lua at line 80: module 'strict' not found.
  201. 201.0 201.1 Scheetz 1998, p. 19.
  202. Lua error in package.lua at line 80: module 'strict' not found.
  203. Lua error in package.lua at line 80: module 'strict' not found.
  204. Lua error in package.lua at line 80: module 'strict' not found.
  205. Lua error in package.lua at line 80: module 'strict' not found.
  206. Coleman 2013, p. 141.
  207. Lua error in package.lua at line 80: module 'strict' not found.
  208. Lua error in package.lua at line 80: module 'strict' not found.
  209. Lua error in package.lua at line 80: module 'strict' not found.
  210. Lua error in package.lua at line 80: module 'strict' not found.
  211. Lua error in package.lua at line 80: module 'strict' not found.
  212. Krafft 2005, p. 33.
  213. Lua error in package.lua at line 80: module 'strict' not found.
  214. Lua error in package.lua at line 80: module 'strict' not found.
  215. Lua error in package.lua at line 80: module 'strict' not found.
  216. Lua error in package.lua at line 80: module 'strict' not found.
  217. Coleman 2013, p. 150.
  218. Lua error in package.lua at line 80: module 'strict' not found.
  219. Lua error in package.lua at line 80: module 'strict' not found.
  220. Lua error in package.lua at line 80: module 'strict' not found.
  221. Coleman 2013, pp. 153–154.
  222. Lua error in package.lua at line 80: module 'strict' not found.
  223. Lua error in package.lua at line 80: module 'strict' not found.
  224. Lua error in package.lua at line 80: module 'strict' not found.
  225. Lua error in package.lua at line 80: module 'strict' not found.
  226. Lua error in package.lua at line 80: module 'strict' not found.
  227. Lua error in package.lua at line 80: module 'strict' not found.
  228. Lua error in package.lua at line 80: module 'strict' not found.
  229. Lua error in package.lua at line 80: module 'strict' not found.
  230. Lua error in package.lua at line 80: module 'strict' not found.
  231. Lua error in package.lua at line 80: module 'strict' not found.
  232. Lua error in package.lua at line 80: module 'strict' not found.
  233. Lua error in package.lua at line 80: module 'strict' not found.
  234. Lua error in package.lua at line 80: module 'strict' not found.
  235. Lua error in package.lua at line 80: module 'strict' not found.
  236. Lua error in package.lua at line 80: module 'strict' not found.
  237. Lua error in package.lua at line 80: module 'strict' not found.

References

  • Lua error in package.lua at line 80: module 'strict' not found.
  • Lua error in package.lua at line 80: module 'strict' not found.
  • Lua error in package.lua at line 80: module 'strict' not found.
  • Lua error in package.lua at line 80: module 'strict' not found.
  • Lua error in package.lua at line 80: module 'strict' not found.

External links