A Brief History of Unix
March 11, 2009
Back in 2004, I posted an extremely brief history of Unix to the SDF internal BBS. I recently found a copy of it and am posting it here for posterity.
As a bonus, you get to read it in an awesome monospace font, because that’s part of SDF‘s charm.
Here’s the original post to the LINUX board:
TACKER: sickboy (adam h)
SUBJECT: what is the difference??
DATE: 11-May-04 22:01:06
HOST: sdf
i know is a real lamer question, but what exactly is the difference between
UNIX Linux and BSD?? because at the moment they all seem to be the same
thing, as they all use the kernel to communicate with the hardware and
such,, or am i completely barking up the wrong tree..
cheers for the help
Here was my response:
TACKER: vandahm (Stephen Van Dahm)
SUBJECT: .. what is the difference??
DATE: 12-May-04 01:59:50
HOST: sverige
Here's a short and mostly-accurate summary of the historical differences,
as I understand them.
Unix was an operating system created by Bell Labs (part of AT&T) during the
late 1960s and 1970s. When you bought UNIX, you could buy a license
for the source code as well. During the 1970s, the University of
California at Berkeley (which had bought a source license) released some
modifications to Unix. If you had a Unix source license, you could get
these modifications from Berkeley or from anyone who already had them.
These modifications were called 'BSD'.
Fast forward to the 1980s. Many small startups began selling 'workstation'
computers. These companies, including Sun Microsystems and Silicon
Graphics, needed an operating system for their machines. Designing an OS
from scratch is a big deal, so they just bought Unix licenses. With all
these independent Unix versions out there, the subtle incompatibilities
between them made writing Unix software very difficult.
The legal status of BSD was always ambiguous. For years, it required an
AT&T source license just to use it, and even after this restriction was
removed, it wasn't clear whether AT&T would allow Berkeley to continue
producing a competing product. In 1983, Richard Stallman started the GNU
project. The goal of GNU was to create -- from scratch -- a complete
implementation of a Unix-like operating system. Since GNU was developed
from scratch and did not evolve from AT&T's Unix, there would be no way for
AT&T to challenge GNU in court.
Fast forward to the late 1980s. People got sick of buying a Unix source
license just to get the BSD software. In response, Berkeley released a
version of BSD that was completely self-sufficient. Since it didn't use
any official Unix source code, you didn't need an AT&T license. This was
the beginning of the BSD that we know and love today.
Fast forward to 1991. The IBM-compatible PC, with the advent of the 386
processor, had finally become powerful enough to run real, hardcore Unix.
There were two 'open-source' efforts to bring Unix to the 386. Bill Jolitz
adapted BSD to run on 386s -- this was called 386BSD. NetBSD, FreeBSD, and
OpenBSD are derived from this effort.
Linus Torvalds, when faced with the same problem, decided simply to start
from scratch. He wrote 'Linux' and continues to manage Linux development.
Linux, by itself, isn't very useful. You need libraries and utilities to
make a Unix-like OS work. Fortunately, the GNU project had most of that
worked out already. When you use Linux, you're actually using the Linux
kernel and the GNU libraries and utilities. Some people call this
'GNU/Linux' to reflect the hybrid nature this OS.
If you've followed this so far, you may have noticed that there's a *lot*
of fragmentation involved. You've got Sun's Unix, Silicon Graphics' Unix,
IBM's Unix, HP's Unix, BSD's Unix, Linux, GNU, etc. To smooth over the
damage caused by all the little incompatibilities between implementations,
the different Unix-selling companies got together and created the 'POSIX'
standard. All good Unix-like systems strive to be POSIX-compliant.
Somewhere along the way, they also came up with the 'Single Unix
Specification'. I don't know if this is the same as POSIX. To enforce
standardization, they made a rule that you couldn't call your OS 'UNIX'
unless it was certified to comply with the Single Unix Specification. Most
commerical Unix vendors go through the certification process. Linux and
BSD vendors usually don't bother with it.
So, there you go. Those are the historical differences. I've left out
some stuff altogether (the BSD lawsuit, etc.), stripped out as many details
as possible, and didn't check any of my facts. I think it's pretty much
right, though....
