| · History and Definitions of Linux, Unix, BSD. source: http://www.over-yonder.net/~fullermd/rants/bsd4linux/bsd4linux2.php
Meet the players
I'll give here a quick introduction to and discussion of the systems I'll be
talking about. Note that the histories presented are not comprehensive
or authoritative, and no attempt has been made to make them that way. Deal.
Unix
Unix isn't (precisely) an operating
system.
Well, it is, and it isn't.
In specific usage, Unix is an operating system originally developed in the
late 60's at Bell Labs by Ken Thompson and Dennis Ritchie. Over the years since
then it's been developed and distributed as a commercial operating system, and a
research operating system, by Bell Labs and USG and USDL and ATTIS and USL and
Novell and SCO and anybody else who could come up with an acronym.
It's probably not too much exaggeration to say that Unix is the single most
influential operating system in modern computing. Every general-purpose
computing device you'll find, and a lot of specific-purpose computing devices,
will be using ideas and concepts and often code from something in the Unix
family tree.
When we use the word 'Unix', then, we far more often mean the general form,
than the specific OS that carries the name Unix™. The general form means "Any
operating system which, in design and execution and interface and general taste,
is substantially similar to the Unix system." That means all the BSDs, Linuxen,
SunOS, Tru64, SCO, Irix, AIX, HP/UX, and a cast of hundreds or thousands of
others.
I'm not interested in getting into semantic discussions about how many angels
can dance on a head of split hair. Let it suffice that when I use phrases like
"Unix systems", I mean exactly what you think of when I use the phrase. Pedantry
City is ---> that way.
Linux
Linux also means several things. It's a
kernel, originally written by Linus Torvalds when he was a student in Finland.
Since then it's been beat up, punched around, tweaked, poked, prodded, managed,
digested, spit out, stomped on, chewed up, tossed out, brought in, and otherwise
manipulated (not necessarily in that order, of course) by more other people than
you could easily count.
Linux is also the term for a family of operating systems. While there are
fascinating metaphysical discussions taking place in dozens of places around the
world at this very second (I guarantee it) about how "Linux isn't really an
operating system, it's just a kernel", or "It should be called 'GNU/Linux'", or
similar topics, I'm also going to neatly avoid that semantic cesspool. When I
say "Linux", I mean Red Hat. I mean
Slackware. I mean Mandrake. I mean
Debian. I mean SuSe. I mean
Gentoo. I mean every one of the 2 kadzillion distributions out there, based
around a Linux kernel with substantially similar userlands, mostly based on GNU
tools, that are floating around the ether.
BSD
BSD stands for "Berkeley Software Distribution". Originally, it was a set of
patches and extra add-on utilities for the official Bell Unix system that were
developed by the
CSRG
at the University of California, Berkeley. Over time, it evolved to change
and/or replace more and more of the system, until at some undefined point it
became basically its own OS that merely happened to share chunks of code with
Bell's Unix system.
Of course, it still required that you have a Bell license to use the system,
since a lot of it was still Bell's code. All of the code written by Berkeley,
however, was released under what's come to be known as the BSD license, which
basically translates to "Do whatever the hell you want with the code, just give
us credit for writing it". And a lot of the BSD code ended up working its way
back into the "official" Unix system too, in System III and System V. And, a lot
of both strains worked their way into the various commercial forks of Unix.
After the CSRG (mostly) dissolved and stopped developing the BSD system,
several groups went off different ways with the code. One of these was the
386BSD project, which took the BSD code and made it run on the Intel i386
platform. As the 386BSD project wound down, two main groups took the 386BSD code
to go forward with it; one was the FreeBSD project, the other was the NetBSD
project. Later on down the road, some internal disagreements within the NetBSD
project caused the OpenBSD project to split off from it.
When I say "BSD", then, I mean a number of things. I mean the general BSD
flavor and approach to systems. Generally, I mean the above as typified by the 3
current freely available BSD systems:
- FreeBSD originally targeted getting
the best possible performance on the 386 platform. Lately, it's expanded to
a number of other platforms including Alpha and SPARC, as well as to the
heirs of i386, Intel's Itanium, and AMD's Opteron. Its primary goal is to be
as robust and efficient as possible on its various platforms, both for
server and desktop roles.
- NetBSD is aimed at running on as many
platforms as possible. Its goal is to be the most portable OS on the planet,
and it seems to do a pretty fair job at it.
- OpenBSD is focused primarily (some
would say 'solely') on security and related topics. Tight integration of
security and auditability and cryptography and related issues are its
primary goal.
All of those goals, of course, are fungible.
Every BSD cares about and works on security.
Every BSD cares about and works on performance.
Every BSD cares about and works on portability. Massive chunks of code
are shared among the group. Many developers work on more than one system.
Astute readers will note that I don't mention
Mac OS X
or its underlying layer
Darwin
as BSDs. While they're based on a mostly BSD foundation, the upper layers of OS
X are pure Apple. Running OS X, as a user, you generally use it like MacOS, not
as BSD. So while some of this might be applicable academically to OS X, it isn't
of any practical value in understanding it. Darwin is closer to a standard BSD
feel, but most of its user base is people who came from BSD, so it's a bit
outside the scope of this essay as well. Much of the general information,
however, will probably transfer easily.
When discussing specifics in this essay, I'll be mostly referring to FreeBSD,
because that's the one I personally run and am, by far, the most familiar with.
On very specific points, there will be significant differences. The more general
the point, the more likely it is to be the same across the group.
Philosophically, all the BSDs are very similar, in contrast to the Linux
methodology. And anyway, the philosophy is what this essay's about in the first
place.
source
[ Back to Top ]
|