TUCoPS :: Cyber Culture :: unix_war.txt

The Unix War: We won!

http://www.osopinion.com/Opinions/mdxi/mdxi1.html

The Unix War: Epilogue

After 30 years Unix's war is over. It was a long and hard-fought and
many times the internal battles did more damage than the external ones
ever could have, but now it is all over except for the shouting. Now the
day is won; we can survey the battlefield and write the history of the
war which was fought here. For veterans of this war, the beginning of
this text will probably be a boring review but I feel that there are
today a large number of people being introduced to Unix without any
knowledge of its history or purpose. So bear with me as I recite some of
the lore of times past before moving on to addressing the concerns that
I have today.

Calm Before the Storm

In 1968 and 1969 the Multics project was dying an unpleasant death at
AT&T's Bell Telephone Labs. Its few user/developers realized that it was
beyond saving but didn't want to go back to the old way of doing things
(batch processing, mostly) because they had come to enjoy the
comfortable, interactive computing environment that they had under the
developmental Multics system. They found that interactive environments
on shared systems fostered close communication and a sense of community
not found elsewhere. This would come to be a key tenet in the Unix world
as time passed.

They began work on a replacement based around a file system design from
Ken Thompson, Dennis Ritchie and R.H. Canaday. After trying to
requisition a DEC PDP-10 and Xerox Sigma 7 and being rejected they began
using a PDP-7 to develop their system. The first application written for
the new system was a game - Space Travel - which Thompson had originally
written for Multics. Then the already-designed file system was
implemented, followed by a small suite of user tools (copy, print,
delete and edit files) and a command shell. Up to this point all the
programs had been written in assembler on the GE 635 computer under
GECOS (the General Electric Comprehensive Operating System, whose name
lives on as a field in the modern-day Unix password file) but with the
addition of an assembler for the PDP-7, the nascent system became
self-sustaining. Sometime in 1970 it was dubbed ``Unix'' by Brian
Kernighan as a biting play on ``Multics'' and the OS we know today was
born.

All of Unix was originally written in assembly language. Early on it was
decided that a FORTRAN compiler was needed so Ken Thompson set out to
write one. He never finished it (at the time) but instead came up with a
language called B, which was influenced by another language named BCPL.
Some applications were written or rewritten in B but little thought was
given to rewriting the OS itself, which was still in assembler. Then the
team got a PDP-11 which was a byte-addressed machine while B was a
word-oriented language, so in 1971 work began on the language that would
become C. In 1973 the Unix kernel was rewritten in C and the system
assumed its modern form.

The Clouds of War Gather

In 1972 there were 10 Unix installs in the world. Then in October of
1973, Thompson and Ritchie gave out a paper at the Symposium for
Operating System Principles and interest in the system exploded.

At the time, AT&T was being investigated for monopolistic practices and
was under a consent decree to stay out of the computer business but
AT&T's lawyers decided that it would be okay to allow universities to
have the OS under the conditions that there would be no support, no
advertising and no guaranteed bug fixes. This forced the users of the
system to band together to support each other, reinforcing the values
which had led to the creation of the system in the first place. But a
tradition of sharing would not stop huge rifts within the user community
from forming...and two of the first- and longest lasting - were about to
do just that.

In 1975 Ken Thompson returned to his alma mater, UC Berkeley and he
brought Unix with him. There two graduate students, Chuck Haley and Bill
Joy brought the Pascal system Thompson had been working on to a usable
state and created the text editor 'vi'. From this the ``Berkeley System
Distribution'' of Unix was born.

The Battle is Joined - Border Wars

By the mid 1970s Unix was growing quickly but often derided as a toy
system used only by punk college kids. Real work was done with ITS,
TOPS-20 or IBM's mainframe systems. But Unix was slowly accepted and
became a favored operating system. In 1978 DEC released the VAX, which
was the successor to the PDP-11, Unix's home turf. VAXen (the preferred
plural form of VAX) became extremely popular and soon their proprietary
OS, VMS, was largely replaced with Unix - especially after the release
of 4.2BSD in 1982.

But coinciding with this development was the emergence of a new class of
machines, the microcomputer, or workstation. Produced by companies like
Sun, Convex, Multiflow, Masscomp, Silicon Graphics, Pyramid, Stardent
and NeXT, these ``killer micros'' as they came to be known were faster
and cheaper than their minicomputer ancestors...and they all ran Unix.
The minicomputer companies got behind the price-performance curve and
stayed there. The workstation companies destroyed the minicomputer
market and then began to cannibalize each other - but minis were no
more, and gone with them were their operating systems. Unix was set to
be The Next Big Thing.

By now Unix had become a splintered mess...each workstation vendor
offered their own version of the OS and to make matters worse, other
companies like IBM, Apple, Hewlett-Packard and Microsoft had variants as
well. Some of these were based around the system style that evolved from
BSD while others claimed AT&T's USG System V Release 4 (SVR4) as their
lineage. They all had their own window managers and other major and
minor incompatibilities. To a Unix administrator, none of this really
matters. The systems were all similar enough that someone familiar with
one of them could use any of them with minimal trouble. But to a
corporation trying to cut costs or an end user who doesn't understand
how Unix really works, it was a very bad thing.

Then, in the late 1980s and early 1990s PC-class machines began to
encroach on the performance levels of the current generation of
workstations just as the workstations had done to the minicomputers
before them. They were derided by the Unix professionals as mere toys
but their abilities increased far more rapidly than the workstations'
were and the PCs cost far less as well. And they were all running an OS
called DOS and a graphical environment called Windows. Windows-based PCs
became the standard for business faster than Unix makers could react.
Before they seemed to notice what was really going on Unix had been
relegated to the server room and its position there seemed to be
threatened as well. The Unix vendors formed alliance after alliance to
confront the Windows threat (the only one whose name I can remember is
COSE (Consortium for Open Systems Environment?)) but nothing seemed able
to stop the Windows juggernaut. Finally, around 1993, limitations in DOS
and Windows halted its advance and the battle lines froze. All sides dug
in and began a bitter war of attrition.

Brother Against Brother - Treachery and Internal Strife

Going back to the mid nineteen-seventies again, we turn our attention to
the internal struggles that raged within the Unix community for 20
years. For a while there was a development loop between Bell Labs and
Berkeley: Bell Labs would release a new version of Unix, which would
have improvements made at Berkeley and overseas, then the BSD group
would add their home-grown tools (like the Pascal system and vi) and
then release that as a new version of BSD for the cost of distribution
media, then the cycle would begin again.

Then with the release of version 7 in 1979, AT&T realized that it had a
valuable product on its hands and changed the licensing terms to forbid
the source code from being used in college courses to protect its status
as a trade secret. This change happened at about the same time that the
workstation companies began to come into existence. It marked the
beginning of the commercialization of Unix and the beginning of a
drastic shift in the climate of the Unix user community. Unix was now
the establishment, now a business. It was something to be bought and
sold, not traded and shared. Of course, the Unix world was not alone in
these changes, this time was the beginning of the end for the majority
of the hobbyist computing and freely traded software
communities...computer science was becoming a commodity. One very minor
(at the time) result of these changes was the creation of Unix clones.

Some people felt that the new way of doing things was wrong, that people
worked better when sharing rather than when jealously guarding their
secrets, that Unix should stuck to its roots. The first Unix clone was
called ``Idris'' and was written by P.J. Plaugher. The second was Andrew
Tanenbaum's ``Minix'' which would become remembered most for giving
birth to another Unix project more than a decade on down the road. Both
of these projects were aimed at producing replacement kernels for Unix.
There was another project that took a different approach.

In 1983 Richard M. Stallman founded the GNU project, the goal of which
was to produce a completely free of cost and freely distributable Unix
work-alike system. Their method, however, was to start with the system
utilities - editors, compilers, and everything else - working towards a
final goal of a completely new and unencumbered kernel. This took a long
time (in fact, the kernel for the GNU system is still incomplete but is
once again under active development) but the software that GNU produced
was of such high quality that administrators often replaced the versions
that came with their Unix distributions with the GNU ones.

This kind of spirit was hard to find in the software world of the
eighties, however. Those who would become the robber barons of the
software industry were hard at work discovering that people will pay
ungodly sums of money for things which they do not understand but feel
that they need.

Jihad! Holy Wars

And then there are the Unix Holy Wars. Unix users are very passionate
about their tools. To many of them, an operating system is not something
that translates a user's commands into actions of a machine, it is a way
of life or even a religion. Wars that started back in the seventies
still rage today. BSD-derivative or USG-derivative? vi? or emacs? X or
console? If X, which window manager? Which widget set? More recently you
can add questions like: Which desktop environment? a.out or ELF? libc5
or glibc? Monolithic kernel or microkernel? Unix is very very
customizable and almost all Unix users tweak theirs for a most
comfortable fit. This has the effect of making everyone believe that
their setup is the correct setup.

These disagreements are over relatively minor things but they can get
very very heated, especially when two people who use different tools
(with each tool suiting one person's workstyle perfectly) argue over
tool superiority. People can stay angry for months or years or forever
over arguments arising out of these kinds of disagreements and that can
be devastating to a project team or user community. Compare this to the
Windows or Macintosh communities where the OSes, while superficially
customizable in appearance, are virtually identical underneath. Everyone
is using basically the same OS. Further contrast the Unix user's mind
set with Microsoft's One-Tool-Fits-All approach (Word, Outlook, Excel,
etc.) and you can see why Unix users fight so vehemently for their way
of working.

Charge of the Light Brigade

Back on the front lines the stalemate continued but while the commercial
Unix vendors were bickering amongst themselves Microsoft had been at
work. In mid-1995 they released a new version of Windows (Windows 95),
which added rudimentary 32-bit capabilities and a rehashed NeXTStep-like
interface to windows. With over a year of hype and a previously
unimaginable marketing barrage working in its advantage, Win95 swallowed
the desktop market whole. Also, Microsoft had announced NT, the
rewritten-from-the-ground-up version of Windows that would bring the
now-universal Windows interface to a server-class OS that was targeted
right at Unix's last remaining stronghold.

Microsoft managed to overlook one minor area of computing however: the
Internet. The Internet, and networks in general, were Unix's home turf.
Unix grew up in a shared environment and is networkable to the core
where Windows is the descendant of a bad user shell for a very limited
single-user operating system. The Internet also was born and grew up in
an academic environment. Most of it was designed, implemented and
running on Unix. And when the Internet exploded in popularity Microsoft
was looking the other way, towards dumbing down their user interface
even further (MS Bob).

Suddenly, Unix was needed again. Everybody wanted to be on the Internet
and you couldn't do that without Unix. Of course, Microsoft fought back,
leveraging their dominance in the workplace with even more marketing and
layer upon layer of hype about what their systems would be able to do,
but enough breathing space had been created for a very timely confluence
of events to occur.

Like many computer science majors before him, Linus Torvalds met Unix at
university and liked it. A lot. But like many other computer-inclined
people his age, he had a Intel-architecture PC which was more-or-less
incapable of running Unix. He got interested in Andrew Tanenbaum's
Minix, which ran on PCs. Then he began work on a Unix clone kernel of
his own (which grew out of another project and his interest in Minix)
and decided to release the source code on the Internet, calling it
``Linux''. There, other people found it useful and began giving him
feedback, code additions and corrections and just plain using it. The
kernel grew and became useful and then was paired with the GNU tools
collection, which had grown to be a complete Unix system except for a
kernel, and a new OS was born.

The timing of this was phenomenal, if unintentional. Built upon the
tested strength of the GNU tools, the Linux kernel was worked on over
the Internet and quickly became robust and usable. This allowed a whole
new generation of programmers and power users who were quickly tiring of
their unreliable, expensive Windows systems to simply format their hard
drives and install a complete Unix system on the PCs they already owned.

The more important effect of this was a massive resurgence of interest
in Unix and its original community-based development model, in the GNU
project and in the other free Unix variants (especially the BSDs). A
whole new generation of programmers was introduced to the values and
attitudes of their forbears and instilled with a instinctive distrust of
corporations whose actions betrayed intent to harm or abuse the
community (I proudly count myself among this group). This is not to say
that they are communist or socialist or hate corporations simply because
they are corporations. Most users of free versions of Unix that I know
would be all to happy to pay for some well-written software (especially
games and office-type software). The reason behind this it that while
they have many excellent free tools available, there are some kinds of
software that get ignored because they aren't fun or interesting to
write - and since everyone works on whatever the feel like, some gaps
are left in the lineup.

Where is the Next Battle?

So where are we now? 

Unix is popular again, especially with the people who will be running
things not too long from now. There are still some commercial versions
of Unix and many free ones, all providing healthy competition for each
other. The new version of Mac OS will be a Unix at heart (NeXTStep/BSD,
as a matter of fact). BeOS is very Unix-like and has a suite of GNU
tools ported to it. The new Amiga OS will be based on QNX, a real-time
commercial Unix. And of course, NT wishes that it was Unix.

Unix is everywhere. Unix has won. What can happen now? As I see it,
there are three possibilities.

The first is the least likely: rifts in the user community tear asunder
Unix's newly regained esprit d'corps and Microsoft immediately lunges
for the kill, this time succeeding where last time they failed. I just
don't think this is going to happen. Once Microsoft was a nimble, hungry
young startup and it outmaneuvered everyone else and with some skill
(along with a lot of luck) came out very nearly on top. Now Microsoft is
a huge bloated beast and its reaction time is slow...it just barely
managed to avert total disaster with its Internet miss, and only
overcame that with massive outlays of cash in the form of buying and
giving away (or forcing, depending on how you want to look at it)
Internet Explorer.

The second: the status quo begins to reverse. Unix, now secure in the
server niche thanks to fast, high quality open development, turns its
eye to Microsoft's stronghold: the desktop. This is beginning to happen
in baby steps and this will be the toughest fight if we as a community
decide to fight it. This is not a fight for marketshare, it is a fight
for mindshare - and the minds of people who don't really understand the
Unix way of doing things at that. I think the biggest danger here is if
this battle is fought by playing catch up to Microsoft and copying their
every move. Remember: most end users don't fully understand the software
they use now. Windows is not easy to use, it is merely ubiquitous and
they've just learned how to produce specific results with the tools at
hand. Make better tools that are better to use, not ``easier''. Easy is
a fallacy.

The third option is this: something completely new comes out of nowhere
and slowly builds up steam until it begins to take on the Big Boys
(whoever they happen to be). This will happen one day. Unix is a great
system and it is great because it is mature, but there are people out
there right now working on the Next Next Big Thing. How will we react
when it gets here? I don't know...I just hope that people learn from the
past two decades and keep these events from playing themselves out
again. Try to keep an open mind, evaluate all possibilities fairly and
make love, not war. We've had enough of that.

References

       Peter H. Salus, Byte Magazine, October 1994
       http://www.byte.com/art/9410/sec8/art3.htm Mike Loukides, A Brief
       History Of Unix
       http://www.mmt.bme.hu/~kiss/docs/unix/unix-history.html Dennis M.
       Ritchie, The Evolution of the Unix Time-sharing System
       http://cm.bell-labs.com/cm/cs/who/dmr/hist.html

I probably went beyond the bounds of fair usage and straight on into
plaigarism in the first part of this paper but I have my reasons. I
wanted to provide a good background on Unix and where it came from. And
I wasted to get all my facts right, but since I was born the same year
that BSD was I have no way of recounting these events from memory. The
above documents are some very good starting points if you'd like to know
more about the history of Unix. As much as I borrowed/copied/stole,
there is much more in these excellent articles and I encourage you to
read them. The second part of the article, however, is history from my
point of view :)

Thank you. 

  
                        


Authors background: 

"mdxi" Can be reached for response to this editorial by e-mailing him
at: mdxi@collapsar.cx

TUCoPS is optimized to look best in Firefox® on a widescreen monitor (1440x900 or better).
Site design & layout copyright © 1986-2024 AOH