Once upon a time, Unix was the up-and-coming operating system that was the
future of computing. But something happened on the way to world
domination, and, while Unix was certainly a commercial success for many
years, it has mostly been supplanted by other things - including Linux. It
has often been said that Linux cannot suffer the same fate that brought
down Unix, but it is worth thinking about whether that is really true.
Unix had been growing in popularity for many years before its commercial
explosion, but the key to its
commercial success was a new wave of low-cost workstations that quickly
pushed aside centralized minicomputers. These
workstations ran an operating system that was, in many cases, nearly
identical to the one found on the larger systems, but they were smaller and
cheaper, to the point that they could be deployed on the desktops of
individual employees. Several vendors jumped into that market and the
related market for storage and compute servers.
The problem is that each of those vendors had its own variety of Unix. All
of the Unix variants may have had some sort of common heritage, but, by the time
they showed up on deployed systems, they were quite different.
Heterogeneous networks of Unix-like systems posed challenges for system
administrators, developers, and users alike; each new system type brought
its own set of quirks, bugs, and misfeatures to deal with. As the various
Unix implementations diverged, they became increasingly obnoxious to deal
with. As a result, many groups tried to standardize on a single vendor,
hoping that they had chosen the right one.
Either that, or they moved to those cheap new PC systems which, at that
time, did not run Unix in any convincing way. But they did run DOS
(and, eventually, Windows), and, once you got them running, they were all
the same. Packaged software became readily available, and, by the mid
1990's, it became increasingly clear that the desktop systems of the future
were not going to run Unix. Discouragingly, almost all of the Unix
workstation vendors were making deals with Microsoft and announcing that
future workstations (and servers) would run NT instead. It was a dark time.
It is fair to say that Linux saved the world from an all-Windows future
that was rapidly approaching. Almost since the beginning, though, critics
started to say that Linux would fragment just as badly as Unix did; indeed,
they predicted that the situation would be even worse. How could things
stay coherent, after all, without a benevolent corporate overlord to keep
fragmentation from happening?
But that fragmentation did not happen. Lots of distributions exist, but
they have all followed roughly the same course and, for the most part, do
not differ by all that much. Efforts like the Linux Standard Base and
Filesystem Hierarchy Standard have helped in this area. Arguably, a strong
focus on avoiding proprietary drivers and basing every distribution on
something close to a mainline kernel has helped even more. Moving from one
Linux distribution to another can be mildly disorienting for a brief
period, but the administration skills are mostly the same, the software
still mostly works, and one comes up to speed relatively quickly. Linux has
not suffered the fate of proprietary Unix, or even the fragmentation seen
in the current free Unix distributions.
But that situation may be changing. An obvious example is Android which,
while being based on a Linux kernel, is hardly recognizable as Linux
otherwise. Other mobile distributions—MeeGo, Tizen, webOS, etc.—may differ
less from "standard" Linux, but they still don't look much like the desktop
on which this article is being written. Enterprise distributions
increasingly emphasize their own special features - see Oracle's addition
of features like Ksplice and Dtrace, for example.
Most recently, we have seen Ubuntu seemingly determined to diverge from
other Linux distributions. In particular, the recent announcement that
Ubuntu would not move to systemd has led to some charges
that they are fragmenting the Linux ecosystem. Such charges do not ring
fully true: remember that upstart was there first and was in use by a number of
distributions before those distributions (not Ubuntu) switched to something
shinier. But, with developments like Unity, Ubuntu does show signs of
wanting to be its own world, increasingly removed from the rest of Linux.
It is becoming harder for a user of another distribution to sit down at a
Ubuntu system and quickly feel at home.
So one could argue that we are heading into a repeat of the Unix wars.
It is noteworthy that the word "Linux" does not appear on the ubuntu.com front page; its absence from
android.com, instead, has lost its
ability to surprise. Distributions were once promoted as a superior form
of Linux; now they are given an identity as a separate operating system
altogether. Linux, one could say, is just a set of components that a
company grabs to build its own special operating system.
That said, there are a couple of things to keep in mind, starting with the
fact that the amount of shared code is still high and likely to remain that
way. The notable exception, of course, is Android, but that may well be
the exception that proves the rule: only a company with the financial
resources of Google can hope to take on responsibility for that much code
and hope to maintain it over the long term. For most other companies, the
cost of going it alone will simply be too high; economics will tend to
place an upper limit on how much divergence we will see. That divergence
may grow as projects try to do things that Unix-like systems have never
done before, but it can also be expected to shrink as the best solutions
win and are adopted by others.
The other relevant point is that the computing environment as a whole is
becoming far more diverse. A world that was once made up of "desktops" and
"servers" now has a far wider variety of computers, most of which are not
marketed as such. It seems natural that the Linux that runs on a
traditional desktop will be quite different from the Linux that lives on a
phone handset, a television, or a logic analyzer. We are not
necessarily seeing destructive fragmentation; instead, we're seeing the
flexibility of Linux as it easily adapts to a wide range of uses.
In summary: it is probably too soon to declare that the Unix wars have come
to Linux. Every Unix was different because vendors felt the need to
differentiate their offerings and lock the customer in. Linux vendors, too,
are trying to differentiate, but they are doing so (mostly) with free
software, which limits how effective such a strategy can be. If Unity
truly ends up taking the world by storm, other distributions can ship it
overnight. As long as the software remains free, Linux, as a whole, will
be as unified as it needs to be.
to post comments)