Living up to the Linux name

January 8, 2003

In 1993, when Ian Murdock decided to start a Linux distribution that would always be free, he found a group of like-minded people to work with him.

It started as a small, tightly-knit group of free software hackers, and gradually grew to become a large, well-organised community of developers and users.

Ian named the distribution for himself and his wife Debra. He called it Debian GNU/Linux in recognition of the fact that a large number of the programs that make up the distribution come from the GNU Project which was started by Richard Stallman in 1984.

Debian stands out in some ways - it is the only distribution which caters to a multitude of architectures, it has the best package management of any Linux distribution and it has a social contract. The debian-user mailing list has the reputation of being the best source of online help in the entire Linux community.

The Debian project is currently led by Bdale Garbee. Martin Schulze from the Debian press team was asked about the distribution, the motivation behind it and where he sees it going. His answers follow:

No distribution has even come close to developing a package management system like the one Debian has. To what would you attribute this? And why do you think other distributions have failed to develop anything even half as good?

Debian was started as a distribution by Free Software experts back in 1993. Rather than being developed by one isolated individual or group, as other distributions of GNU/Linux have been, Debian was to be developed openly in the spirit of Linux and GNU. The primary purpose of the Debian project is to finally create a distribution that lives up to the Linux name. Debian is being carefully and conscientiously put together and will be maintained and supported with similar care.

There are two main differences between Debian GNU/Linux and other distributions.

  1. The Debian Project has a rather strong view of Free Software. See the Debian Free Software Guidelines that were established in 1997. Debian GNU/Linux only consists of Free Software and is not contaminated with random non-free components. The source code of the entire distribution is publicly available - all the time.
  2. The Debian distribution is created by Free Software experts who participate in its development. Of cource, they also use this distribution for their daily work. As a result of this, many demands on stability and usability are made, not only from a GUI point of view but also from a developer's and high-end user's point of view.

Both are very important to the development of the Debian distribution. The sophisticated system of dependencies, recommendations and suggestions has developed through the years and the system has been improved more and more.

Once the first version of the package management system was released, many people found out that dependencies were different despite popular belief. Hence, the system had to be improved over time to describe the fine grained web of inter-package dependencies. This has been done in the past and dependencies are still improved.

Only few other distributions offer permanent public review during the development of the next release. This is a very important design decision since it offers random users a chance to try out the new software and report back problems and ask for improvements. A system is much more mature when it is permanently tested, reviewed and improved. This is what happened to Debian.

There is one more thing that needs to be mentioned. The package management system - dpkg and the file format - was designed and first implemented by Ian Jackson, a very good and sophisticated software architect. Later apt-get was added by Jason Gunthorpe which improved usability a lot. Without those developers, I'm not sure if the system would be as good.

I am not in a position to judge the package management systems of other distributions, but the goals are probably different as well as the development process.

For example, Debian GNU/Linux may need to be installed via floppy, CDROM, network or hard disk. Some other distributions' main installation medium is a set of CDs. The Debian distribution needs to be mirrored by hundreds of servers on the Internet. For other distributions this may not be important. The requirements for package management are probably different.

Despite the fact that there is no payback, Debian continues to attract developers. What is their motivation?

Oh, there is a lot of payback. It's just not monetary payback in the first place. There are a lot of users who do support (through LUGs, mailing lists, Web sites, events, workshops, books, articles etc.). There's a lot of feedback through mailing lists and the bug tracking system. There are companies offering support, CDs, DVDs, books and pre-installed computers as well. Then there are companies and individuals who donate money, bandwidth or hardware to the project.

This is a lot more valuable payback than if you would get some money each month. Feedback like this reaches the person who worked on it directly. This shows that the system and his particular work is actually used, which is worth much more. This is a good reason to continue and improve the system.

Developers are given the chance to improve the system as a whole or a particular angle based on their personal or professional needs. This is something only few other distributions offer, only non-profit ones actually. As a result, they get the perfect distribution for their needs and don't have to adjust everything once a new release is out.

There are several different types of motivations and I can probably only name a few:

  1. People who believe in Free Software and would like to help improve it.
  2. People who believe that Debian is the best distribution of GNU/Linux or Hurd and they would like to give back a little bit.
  3. People who use the Debian system but discovered ways to improve it again.

The lack of any deadlines for releases means that Debian can aim for stability. However, this also means that it can take well over a year for a new release. Do you see this as a strength or a weakness? Does it not serve to put off the more inexperienced users who only use the stable branch?

This can be seen both as a strength and a weakness, depending on your expectations and point of view. Different Debian developers have different goals and expectations, so there is no uniform view within the project.

For some people this is a major strength since it ensures that no totally broken release is distributed and that the project can aim for technical perfection. Without deadlines and marketing pressure our developers can concentrate on their work and improve the entire system.

On the other hand, this also means long release cycles which means that a system once released may be contain old versions of software. Many people, especially desktop users, prefer to run more current software, though. Hence, they may consider this as a weakness of Debian.

However, Debian offers these people the testing distribution which contains more recent software than the released stable version that doesn't change. The testing distribution doesn't contain totally bleeding edge software, though, so people can safely use it. Even if this was intended to simplify the release of the next stable system, this is also a great offer to our users.

Long release cycles, however, are not always bad. Think about a corporate environment with hundreds of machines. Doing a release change is an awful task and needs to be tested before done. I know of some environments in which it is simply impossible to upgrade the system four times a year. Even upgrading every one or two years may be difficult. For such environments, a stable and well tested system is worth much more than one which is released often.

During the development process for the 3.0 release (Woody), there were allegations that developers were more interested in adding packages to the unstable branch rather than the stable branch and that the release of Woody was overly delayed due to this. Comments?

Well, this is true and wrong at the same time. :-) Debian consists of about 1000 registered developers and many more sponsored developers. Most of them maintain a small set of packages. They use these packages in their personal or professional environment. Maintaining them in Debian is their contribution to Debian.

There are, however, some framework tasks that need to be worked on as well. The installation process is an example. Few people are skilled enough to work on an installation routine that needs to run on 11+ architectures and cope with the oddities of each.

One must not ignore that the stable Debian distribution runs on 11 architectures and the installation process is the same on all of them - except for only architectural differences like booting via tftp instead of CDROM etc. This also needs to work at the same time, since all 11 architectures are released at the same time, not one after another.

Alpha, arm, hppa, i386, ia64, m68k, mips, mipsel, powerpc, s390 and sparc are equitable when it comes to Debian. They use the same installation routine and all packages are available on all supported architectures - with only very few exceptions.

This places a high responsibility on those who work on the installation process. Due to the complexity of this, very few people are able to work on it. Unfortunately, skilled people often are the most busiest people, so work on it takes a while.

So, while several developers added new packages to the distribution (only to unstable since stable was already frozen at that time), they did not work on finishing and improving the installer. On the other hand, 99 percent of them were not even skilled enough to do the work on the installer.

Criticism that the installation process is too difficult for new users has led to the creation of a separate desktop project. Is this because the project fears that users may migrate to other distributions?

Strictly speaking, the installation proces of Debian is one of the easiest. There's a joke: even a chicken could install Debian. In fact, you only need to hit the Enter key, since the installer makes proper assumptions.

However, attached to the installation process is the installation of selected packages. Depending on the hardware you are using and the packages you have selected, this is easy, time-consuming or difficult. However, there are very important configuration bits that ensure that Debian packages will "just run" after an installation and you won't have to configure everything afterwards.

Since a Debian system is used for everything from a PDA to a Desktop machine to a high-end server, packages are prepared for several uses. For example, even if it is not vital for a desktop machine to run its own mail server, this is important for a server. Hence, a mail server needs to be installed and configured even on a Desktop machine.

I guess, the post-installation configuration is what some people consider too difficult. However, in most cases simply hitting the Enter key will lead to acceptable results. This is being improved a lot by using debconf. You can adjust the severity for questions and see less of them.

The reason why the Debian desktop subproject was created is not exactly because the project fears that users may migrate to other distributions.

First of all, this sub-project - similar to Debian Jr. and Debian Med - was started by an individual and not by the project as a whole. This is very common to most of the work within the Debian project. Most people are motivated because they need something. As a result they work on this aspect very enthusiastically which helps a lot in improving things.

It was more a realisation that while we have a very stable user base of experienced technical users who have no trouble with the current Debian installer, they are a much smaller segment of the market than less experienced users. So it's not so much a fear of current Debian users migrating as just a wish to make Debian easier to use, and thereby gain even more users.

Debian aims to be the universal operating system, and hence tries and should try to attract all types of users.

Else, why should a free project, which by now has its own niche of users, bow to market forces?

It doesn't need to and it doesn't. However, attracting more people, more vendors and more organisations to use our work, is always a benefit and hence appreciated.

Given that even a project run entirely by volunteers does need some funds - as when you take a stall at an expo - how does the project obtain the finances which it needs?

There are a lot of sponsors, mostly for hardware and bandwidth, but also some that donate money to the project. Software in the Public Interest, Inc. is the umbrella organisation for Debian and other projects. It is classified charitable, so money donations are even tax-deductible.

For exhibitions, the project depends on gratis booths.

What future do you see for Debian?

The project will grow, the number of packages will increase, the number of active developers will increase, the number of supported architectures will also increase and key tasks like the buildd network and debian-installer will become even more important and complex.

While some commercial vendors suffer from a bad market situation, Debian is unaffected by this. Even if commercial vendors shut shop, free distributions created by volunteers will continue to exist, especially if they have well-documented and clear rules and an existing and functioning framework.

Commercial vendors often halt support for certain architectures that don't have a large market share (take Red Hat as an example - it recently terminated support for the sparc and alpha architectures). They will continued to be supported by volunteer projects such as Debian as long as there are volunteers who own such hardware and who consider it fun or charge to work on the port.

As another example, Debian still supports m68k, an architecture well-known for the Amiga, Atari and old Mac computers. I'm not sure, but I guess that Debian may be the only official GNU/Linux m68k distribution. There are not many such machines in use anymore, unfortunately, and only very few ones are produced these days (but there are some!). As long as there is an active developer base for this architecture, it will be supported by Debian.

Debian will probably also attract more users, especially experts or high-end users, who suffered from deficiencies in other vendors' distributions and who learned about the benefits of Debian GNU/Linux. Debian will probably also attract people who would like to run the Hurd or *BSD with a non-BSD framework. There's a port of Debian using the NetBSD kernel in progress.