Why choose Debian GNU/Linux? 1. What is Debian GNU/Linux? Debian GNU/Linux is a distribution of an operating system and packages that are associated with it and run on it. An operating system is composed of a kernel, shared libraries and applications. The Linux kernel is free software. Users can obtain the Linux kernel source, and compile it themselves. They can then obtain source code for libraries and applications in the same way, compile the programs, and then install them into their systems. There are projects such as Linux from Scratch which promote this approach. For complicated programs, this process can be not only time-consuming but error-prone. To avoid it, one often chooses to obtain the operating system and the application packages from one of the Linux distributors. What distinguishes the various Linux distributors are the software, protocols, and practices they use for packaging, installing, and tracking applications packages on the system, combined with installation and maintenance tools, documentation, and other services. Debian GNU/Linux is the result of a volunteer effort to create a free, high-quality Unix-compatible operating system, complete with a suite of applications. The idea of a free Unix-like system originates from the GNU project, and many of the applications that make Debian GNU/Linux so useful were developed by the GNU project. In Debian the term free software has the GNU meaning. The word free in free software means freedom, not price. Free software means that you have the freedom to distribute copies of free software, that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. The Debian Project was created by Ian Murdock in 1993, initially under the sponsorship of the Free Software Foundation's GNU project. Today, Debian's developers think of it as a direct descendent of the GNU project. Debian GNU/Linux is: * full featured: Debian includes more than 8000 software packages at present. Users can select which packages to install; Debian provides tools for this purpose. You can find a list and descriptions of the packages currently available in Debian on the web. * free to use and redistribute: There is no consortium membership or payment required to participate in its distribution and development. All packages that are formally part of Debian GNU/Linux are free to redistribute, usually under terms specified by the GNU General Public License. The Debian FTP archives also carry many additional software packages (in the non-free and contrib sections), which are distributable under specific terms included with each package. * dynamic: With about 1000 volunteers constantly contributing new and improved code, Debian is evolving rapidly. Although Debian GNU/Linux itself is free software, it is a base upon which value-added Linux distributions can be built. By providing a reliable, full-featured base system, Debian provides GNU/Linux users with increased compatibility, and allows Linux distribution creators to eliminate duplication of effort and focus on the things that make their distribution special. There are several other Debian-derived distributions already on the market, such as Corel Linux and Storm Linux, that are targeted at a different kind of audience than the original Debian GNU/Linux is, but use most of Debian components in their product. 2. What is Linux? Linux is the kernel of a the operating system. The kernel is the interface layer between the software and the hardware. One of the functions of the kernel is to provide an abstraction layer isolate hardware differences from software programs. This allows hardware differences to be completely hidden. Other tasks including context switching between programs and protecting programs from each other. Linux was originally designed for the 386 and compatible systems. Today Linux runs on many different architectures including both 32-bit and 64-bit systems, including both single and multiprocessor systems. Linux is written by Linus Torvalds and by an international collection of contributors. Besides its kernel, a "Linux" system usually has: * a collection of standard libraries: The main library is the C library known as libc. The GNU libc, glibc, provides the main library used on most systems. * a file system that follows the Filesystem Hierarchy Standard: A standard filesystem layout which programs can expect to find on standards conforming systems. * a wide range of application utilities: Most of the core utilities on Linux systems have been taken from the GNU Project and were developed by the Free Software Foundation. The combination of the Linux kernel, the file system, the GNU Project commands and applications, utilities, and the other programs are designed to achieve compliance with the POSIX (IEEE 1003.1) standard. 3. What is GNU libc? The main system library for C programs is libc. On Linux systems this is the GNU libc, a.k.a. glibc. It is maintained and guided primarily by the GNU C Library Steering Committee , formed in 2001. It is the governance body and has overall responsibility and charge for the maintenance of the GNU C Library as part of the GNU project. The committee currently consists of Mark Brown, Paul Eggert, Andreas Jaeger, Jakub Jelinek, Roland McGrath and Andreas Schwab. Policies are then implemented by a larger maintainer group known as the GNU Libc Maintainers. This group includes a larger number of programmers many of whom are well known in the community. The GNU libc project is a GNU project and is not tied to any one interest commercial or otherwise. But being a GNU project it is free software and cannot be monopolized by a commercial entity. 4. What is the GNU Project? The GNU Project was launched in 1984 to develop a complete Unix-like operating system which is free software: the GNU system. (GNU is a recursive acronym for "GNU's Not Unix"; it is pronounced "guh-NEW".) Variants of the GNU operating system, which use the kernel Linux, are now widely used; though these systems are often referred to as "Linux", they are more accurately called GNU/Linux systems. The FSF's long-standing objective is to develop a new operating system called GNU based on Hurd. Debian is working with FSF on this system, called Debian GNU/Hurd. The GNU Project has developed a complete free software system named "GNU" that is upwardly compatible with Unix. An operating system is not just a kernel; it also includes compilers, editors, text formatters, mail software, and many other things. Thus, writing a whole operating system is a very large job. However, the GNU Project is not limited to operating systems. The aim is to provide a whole spectrum of software including application software. 5. Why choose Debian over other GNU/Linux distributions? Debian has several key features which distinguish it from other GNU/Linux software distributions. * The Debian Policy: Debian has an extensive specification of standards of quality. This is the Debian Policy Manual. This describes at a great level of detail exactly what is expected of a Debian package. This any Debian package knows what it may or may not expect of others and how it interfaces to the rest of the system. This interface agreement provides a structure which allows packages to work together better than other distributions which lack such rules. * The Debian package management system: The entire system, or any individual component of it, can be upgraded in place without reformatting the disk, without losing custom configuration files, and (in most cases) without rebooting the system. Most Linux distributions available today have some kind of package maintenance system; the Debian package maintenance system is unique and particularly robust. Debian packages tend to be more modular than those of other distributions. * The Bug Tracking System: The Debian BTS is online and available to all users. This provides full visibility into the state of Debian quality. The BTS provides a knowledge base which may be consulted by anyone. Many times the same problem you are currently having will have been reported by people previously and already resolved. Having access to this knowledge base is a valuable asset. * Open development: Whereas other Linux distributions are developed by individuals, small, closed groups, or commercial vendors, Debian is the only Linux distribution that is being developed cooperatively by many individuals through the Internet, in the same spirit as Linux and other free software. More than 900 volunteer package maintainers are working on over 8000 packages and improving Debian GNU/Linux. The Debian developers contribute to the project not by writing new applications (in most cases), but by packaging existing software according to the standards of the project, by communicating bug reports to upstream developers, and by providing user support. Much of the project discussion about Debian is available on the various mailing lists and news groups. It is all public. You get out of it what you put into it. For one suggestion see the 'debian-user' archives. It is a firehose of information so be warned that there are 150 messages every day there. But that means searching the archives with google will usually turn up a lot of good information. Searching the archives is a great resource. * Prompt and effective security updates: The Debian Security Team takes security very seriously. Most security problems brought to their attention are corrected within 48 hours. In fact it is typical to have notice of an update available for install on a system even before there is public disclosure of the security vulnerability. The most important guideline when making a new package that fixes a security problem is to make as few changes as possible. Users and developers are relying on the exact behaviour of a release once it is made, so any change made can possibly break someone's system. This means that moving to a new upstream version is not a good solution. Instead the relevant changes should be backported to the released system. The Debian security team does an excellent job of maintaining system integrity while providing security updates. Those are among the best features of Debian which distinguish it from other software distributions. However they are not the only reasons. * A high level of system modularity: Debian by default only requires a very small core of programs to be installed on a system. Those are all marked as 'required' packages. All other choices are left to the user to customize. This allows Debian to scale from the very small to the very large. The system is very customizable. It is not a "one size" system. * The Debian organization charter is well developed. It includes the Policy Manual, Free Software Guidelines, and Social Contract. These ensure that the organization is a growing healthy community of developers committed to providing high quality software to the user. * Debian currently supports 11 different architectures. This really helps out new starts like ia64 which would otherwise have little support or software available. * Full source code is available for Debian. Other distributions do not provide the full source code of their system. Debian is committed to always providing a full disclosure of all source code used on the system. * There is a huge number of software programs packaged for Debian. With over 900 Debian developers the amount of resources available is more than most commercial companies can provide. Debian maintains over 8000 packages of software. * The APT (Advanced Packaging Tool) system provides a consistent interface for network installation from many different sources of software. This allows us to mix and match our own software with Debian system software seamlessly. Literally thousands of software programs are trivially installable. Dependencies are all managed transparently by APT. Users usually vote this single feature the most visible and most compelling selling point. * Debian has a committment to standards. Debian actively works with members of standards bodies such as FHS, LSB, POSIX, etc. to ensure the most compatible system possible. * Daily administration is very good. Systems require minimul maintenance. Most systems are install and forget. 6. Debian develops with 'unstable' code and releases 'stable' code. A major goal of Debian is to produce a highly reliable system. Therefore the released distribution of software usually contains the best known stable version at the time of release. That is, it may not contain the current development version of a program. This leads to a rock solid reliable system of software in the 'stable' released distribution at the expense of having bleeding edge features. Also, the Debian security team is very active at producing security updates for the released Debian packages. No feature updates are allowed in the released bits and only the security aspect is addressed by an update. This adds to the safety of systems running Debian's released 'stable' bits. If you need a high level of robustness and in your system then the 'stable' distribution is the best choice for you. New versions of software enter Debian in the 'unstable' track. These are usually the development versions of programs. The 'unstable' distribution is where active development of Debian occurs. Generally, this distribution is run by developers to be able to work out the details and problems of getting the software to the next 'stable' release. The 'unstable' distribution contains bleeding edge software components which have the latest development features. Therefore 'unstable' is also run by people who feel they must have the latest development features as they become available. However, this also means that the 'unstable' distribution is, well, unstable. The ability to have the latest development versions means a tradeoff in system robustness. It is not unusual to see problem from day to day in the development version of software in 'unstable'. In between 'unstable' and 'stable' is 'testing'. The 'testing' distribution is a staging ground for the next stable release. It is composed of packages from 'unstable' which have met a certain level of quality. As such it contains newer softare than in 'stable'. It contains a little better measure of safety and robustness than is available in 'unstable'. The testing distribution is a middle ground. Note that security updates are only made available to the 'stable' release. Anyone running 'testing' or 'unstable' must monitor security updates themselves. It is assumed that newer versions of software in the development track will work through security issues as a normal course of development. This may not happen on a timely schedule. It may require changing features. It is not recommended to be running either of those distributions in a security critical environment. Note that programs compiled on a development system with newer development libraries will create programs which require those newer development libraries in order to execute. Therefore developer machines running unstable bits should not be used to compile programs for production systems running stable bits. This should be taking into consideration when deciding which platform to run. It is certainly reasonable to build stable bits in a stable build environment and certainly that should be a normal methodology for any mature software organization. 7. Is Debian perfect? What are the complaints? No. Debian is not perfect. There are bugs. This is also true of other distributions. The difference is that Debian shows you the bugs which are known in the (Bug Tracking System). If all you read were the errata you might be convinced of its problems. But better to be informed than to thrash around blindly. One issue is that the BTS is designed around 'unstable'. When bits enter unstable the bug is closed. But it has not gone into 'testing' nor into 'stable' yet. The BTS really needs to track based upon the release track. But it does not have that capability yet. The initial Debian installer "boot-floppies" has a reputation to be confusing to new users. There is no automatic detection of hardware. You must specify what hardware exists explicitly. This is getting addressed with a completely new "debian-installer" project under active development. Regardless this is not an issue for us since we use SystemImager for the initial installation. Since you only install Debian once but use it often the daily administration is more important. Not all hardware is supported. In particular really old, really new, or closed proprietary hardware may not have software support. If you need something in particular you may need to import and install it yourself. Of course this is a general problem for free software. But commercial software distributions can sign disclosure agreements, make proprietary deals and provide closed source support. Since Debian is a free software project, free as in freedom not free as in cost, it is illegal for Debian to provide closed proprietary drivers. For example it is illegal for Debian to provide the Nvidia proprietary graphics driver as part of a free software distribution. Therefore if needed this component needs to be installed locally. The configuration has a reputation for being confusing to new users. Less emphasis is placed on creating mouse driven configuration tools. Often subsystems are configured by editing text files. Therefore the system tends to be more similar to traditional UNIX systems such as HPUX. However, great emphasis is placed on packages working by default upon initial installation if at all possible. Therefore most things "just work". The standard installation tool "dselect" is hard to use. Well yes it is so don't use it. People often equate it with Debian but it is really obsolete. If someone wants something other than the command line 'apt' tool then 'aptitude' is a terminal based package management tool. If a mouse/gui based tool is desired then use 'synaptic'.