Way back in 1999, I spoke to Murdock about Debian's package-based genesis.

Share this story

As we reported a few days ago, Ian Murdock, the creator of the Debian GNU/Linux distribution project, died in rather unclear circumstances last week. Until more details emerge, it seems wise to refrain from speculation about what really happened. Far better to celebrate what is not in doubt: his important contribution to free software at a critical period in its growth.

In November 1999, I spoke to Murdock at length, during one of the 50 interviews that form the backbone of my book Rebel Code: Linux and the Open Source Revolution. Inevitably, I was only able to use a few quotations from Murdock in the book's text, and now seems an appropriate moment to give a more complete version of how Murdock came to create Debian, told in his own words.

Murdock first came across GNU/Linux in 1993, when he was a 20-year-old student at Purdue University, studying accountancy: "This was around the time that PCs were just starting to get fast enough to actually run things like Unix. I'd been using Unix and I saw Linux as a way to have more convenient access to it." He said that the software at that time was "pretty rough around the edges," but that helping to fix that was part of the fun: "one of the great things about Linux is it was one of the first operating systems that you could actually not only see what it was doing but you could get in there and tinker around with it."

When Murdock started exploring GNU/Linux, there were only a few distributions available. The one he chose to use was SLS, "Softlanding Linux System." In his first public mention of the imminent Debian distribution, Murdock wrote: "I was inspired to put together this release after running SLS and generally being dissatisfied with much of it, and after much altering of SLS I decided that it would be easier to start from scratch." As Murdock told me in 1999, the problems arose from the fact that "the fellow who was doing [SLS] was trying to do everything himself. And so I looked on that and I thought, well, you know, if Linux has taught us anything it's that that kind of model is sub-optimal. What we really ought to do is we ought try to take the model that Linux has pioneered, intentionally or not, and try to get the same benefits from that for building the system around it."

Murdock's key insight was that the distributed development model used for the Linux kernel could be applied on a larger scale to the entire operating system, together with its applications:

If you want to build an entire [operating] system, how exactly do you divide it up and allow people who have probably never met to work on everything individually, yet take all of the subcomponents and put them back together and make a complete system?

The way that Linux systems were distributed at the time was very much oriented toward distribution on diskettes. So you would download all these diskette images, and you'd install Linux that way. And we decided to take a different approach, because it fit well with the distributed development idea.

We decided that Debian would be based on packages. So every sub-component of the system would be contained in its own package. And the package would know how to integrate itself into the system. When you installed it, it would know how to remove itself, and know how to upgrade itself.

Debian would be based on the idea of a package, and all these people who wanted to work on it could then take responsibility for all these different packages. And we would define standards and rules that would allow a package from any source to be able to fit into the system well. So that when you take all these packages and you install them, you get an entire system that looks like it's been hand-crafted by a single, closely-knit team. And in fact that's not at all how it was put together.

Unsurprisingly, one of the key inspirations for the Debian project and its new, package-based approach, was Linux:

The fact that other people would be taking on sub-taskings [in Debian] is very much how Linux worked. Some people would write file systems and they'd maintain the file systems, other people would write device drivers and maintain them. If you're just some random person and you write a new file system for Linux, you send it off to Linus and it's [in] Linux—maybe.

So I wanted the Debian users—not a particular hand-picked team—to be able to come in and say: 'you know, I'd really like to have this particular software package in Debian." And [that's] fine—because of the fact that we believe and follow the distributed development model, you can make a package. And [if] you follow our guidelines and our standards that package is going to fit in with the system.