One of the questions that I’m asked
frequently is "Why does Linux need distributions at all?" There are various
commercial operating systems, including free ones, which are distributed as a homogeneous
unit. So why are there so many Linux distributions?
The answer has to do with the development
style, philosophy, and commercial interests, or lack of it, of different operating
systems. Most of these other OSs follow the cathedral style of development, where the
details of implementation are a business secret. This is particularly true of
closed-source operating systems.
Linux, on the other hand, has an
aggressively distributed style of development, where even the core of the OS, the kernel,
has hundreds of contributors, and all the components come from diverse sources. Given this
structure, the various Linux distributions serve as integrators, creating an integrated
unit suitable for wider distribution.
What are distributions?
Given that the components
of Linux come from diverse sources, bootstrapping Linux on bare metal, starting from the
source code, is a daunting task, as anyone who’s attempted a fresh port will testify.
Linux distributions arise from the need to address this complexity.
Simplistically, Linux distributions include
the Linux kernel, pre-compiled binaries, and means of installing them. Most distributions
address ease of upgrades and maintainability, and offer add-on components. Broadly
speaking, any current Linux distribution would contain the software needed to do your job,
including kernel and drivers, libraries, utilities, and application programs. However,
there are nuances, and one may find a particular distribution better fitted to his needs
than others.
A common consequence of this multiplicity
of upstream sources is that the distributions tend to be modular. That is, a Linux
distribution is made up of "packages", and each such package has its own
development cycle. The number and quality of packages offered is often a criteria for
selecting the preferred distribution.
Advantage distributions
The primary advantage
of having multiple distributions is simple–choice. Different users have different,
and often conflicting, requirements of their OSs, and Linux distributions have evolved to
fit each niche. In my opinion, this is a good thing.
The second advantage is friendly
competition. Having multiple distributions of the operating system keeps any one
distributor from getting complacent. And as long as the distributions share fixes, and
don’t engage in internecine strife, this is beneficial to the free software
community.
Another advantage is innovation, testing,
and evolution. Anyone who’s read Gordon Dickson’s science fiction
"Dorsai" series is familiar with this concept. In this, the human species goes
to the stars, and evolves along separate paths–the Dorsai are soldiers
extraordinaire, the Exotics have advanced mental abilities, and so on. In a similar
fashion, Linux distributions spring up to fill the needs of niche markets and develop
along different lines. They experiment with different packaging techniques, installations,
or management procedures and programs. As long as these innovations are free and open,
they get integrated into other distributions as well in a modified Darwinian process.
Differing user needs
I mentioned above that the
needs of users are different. This is a time of explosive growth of computer users in
general, and Linux users in particular. Most of these new users are still novices. Add to
the fact that the dominant desktop OS happens to be Windows, it’s not surprising that
a significant fraction of the pool of new Linux users are new to Unix-like
OSs. A
distribution that flattens the learning curve, perhaps something that looks familiar to
someone with a background in Windows would make life easier for them.
At the other end of the spectrum are people
who want to have total control over their machine, perhaps down to compiling all the
software themselves, with their own customized build options. Complexity wouldn’t
scare these users off, though defaults that help the packages meld into a coherent system
would be welcome.
Yet another group is more concerned about
reliability, stability, and up time rather than being on the cutting edge. People running
mission-critical servers would fall into this category. A distribution that specializes in
security infrastructure (incorporating Kerberos, for example) would be popular here.
size="2" face="Arial">Resources
href="http://www.linuxhq.com/dist-index.html"> face="Arial">www.linuxhq.com/dist-index.html
face="Arial">www.linuxlinks.com/Distributions/
face="Arial">www.linuxhq.com/HOWTO/Distribution-HOWTO.html
face="Arial">www.linux.org/dist/index.html
There are other choices as
well–commercial software integrated into the system, versus uncompromisingly free
distributions. People offering support contracts may need custom distributions.
It would be impossible for a single
monolithic distribution to meet all these diverse needs. And that’s where multiple
distributions come in.