*BSD News Article 31470


Return to BSD News archive

Path: sserve!newshost.anu.edu.au!harbinger.cc.monash.edu.au!msuinfo!agate!howland.reston.ans.net!gatech!udel!news2.sprintlink.net!news.sprintlink.net!redstone.interpath.net!w4bzl.chapel-hill.nc.us!jrr
From: jrr@w4bzl.chapel-hill.nc.us (Joe Ragland)
Newsgroups: comp.os.386bsd.questions,comp.os.linux.help!
Subject: Re: BSD vs Linux
Date: 10 Jun 1994 01:32:53 GMT
Organization: Internet Consulting
Lines: 100
Message-ID: <2t8fs5$e9p@redstone.interpath.net>
References: <2t0vjb$4i@Venus.mcs.com> <2t5r0f$24q@cleese.apana.org.au>
Reply-To: jrr@interpath.net
NNTP-Posting-Host: w4bzl.chapel-hill.nc.us

I saved Chuck Hedrick's comments on this subject.  I trust Chuck won't mind
if I bring it back.  --joe

From: hedrick@geneva.rutgers.edu (Charles Hedrick)
Newsgroups: comp.os.linux.misc
Subject: Re: FreeBSD and Linux
Keywords: FreeBSD, 386BSD, Linux
Date: 6 Mar 94 22:26:44 GMT
Distribution: usa
Organization: Rutgers Univ., New Brunswick, N.J.

>  What is the difference between FreeBSD (386BSD) and Linux?  Are they both
>UNIX clones, and is one better than the other?
>  Thank you very much for your help.

There are four major differences:

1) the 386BSD family started with BSD, and Linux started with POSIX.
NetBSD/FreeBSD/386BSD have been adding POSIX and System V
compatibility, and Linux has been adding Berkeley and System V
compatibility.  So there's a good deal of overlap.  But ...BSD is
still a better choice if you want to program in a Berkeley environment
and Linux if you want a POSIX environment.

That's for the kernel and libc -- the utilities and other stuff users
see tends to be fairly similar.  In both cases the programs are what I
call "typical University Unix".  The main difference is that the base
Unix utilities tend to be Berkeley for ...BSD and Gnu for Linux.  Gnu
is fairly Berkeley-compatible, but its priority is POSIX, so it tends
to look slightly closer to System V, with massive Berkeley extension.
There are several sets of administrative utilities, but it's more
likely that init, getty, etc., are going to be System V style for
Linux and BSD for ...BSD.  

Again, these things aren't as significant as they might be because
...BSD is also concerned about POSIX compatibility and Gnu is
concerned about BSD compatibility.  So both sets of software are
approaching a similar sort of goal from opposite directions.  You
could probably use the systems for quite a while without noticing much
difference.  (I'd like to emphasize that there's no similarity in
overall feel between Linux and typical brain-dead PC System V ports.)

The ...BSD FAQ characterizes the difference as one of East Coast
vs. West Coast.  There's a lot to be said for that summary.  There's
more difference in Unix culture between New Jersey and California than
between New Jersey and Finland.

2) The nature of the development communities and distribution
mechanisms are different.  ...BSD has two or three different developer
communities that take code from each other, but appear to hate each
other's guts.  (Actually, even ...BSD and Linux take code from each
other.)  Thus there are several different ...BSD's, each of which has
an official distribution.  There's just one Linux kernel, and from a
practical point of view just one set of major utilities, but there's
no official distribution.  So several different groups put together
distributions, with their own choice of kernel and utility versions.
This means that it's easier to define what the One True Linux is than
what the One True BSD is, but harder to get it.  Once you've decided
which BSD is the right one, it's easier to find an authoritative
distribution of it.  Development of Linux tends to be more
distributed.  Lots of people are working on lots of projects: new
drivers for this and that, new versions of this utility and that.  If
you want to keep up with netBSD, you can sup netBSD-current from one
place.  If you want to keep up with Linux, you end up taking pieces
from lots of people (though they generally end up on one of two
archive machines -- tsx-11.mit.edu or sunsite.unc.edu).  If you don't
want to do this, of course the packaged distributions do it for you.

3) The BSD networking is more mature than the Linux networking.  This
is one area in which I don't think Linux has any countervailing
advantages, though in my opinion by release 1.0 Linux networking will
be acceptable.

4) There are specific things in each system that are likely to be
deciding factors for some people.  I don't know what unique things BSD
has, because I'm not part of that community, but for some people the
COFF and ELF compatiblity projects may be critical, as it will allow
Linux to run major commercial Unix software.  For typical end users
Windows compatibility is probably more useful, but that's being done
jointly by BSD and Linux.  (Neither of these things is finished, by
the way.)  It's not clear to me whether the existing Linux DOS
compatibility is a critical advantage.  BSD doesn't have it, but my
experience is that the Linux DOS emulator is slow enough and creaky
enough that it's not generally usable.  However it certainly does work
for many programs, and if one of those programs is critical to you, it
may be a big deal.  Differences in support of devices are not likely
to persist for long.  There's a history of taking device drivers in
both directions, so if there's enough interest in a device, and one
side implements it, you can bet it will show up on the other side.
Linux uses DOS partitions (including extended partitions).  BSD
creates its own partitions inside a single DOS partition.  This is a
difference, but it's unclear whether it's a critical one.  Linux can
mount DOS and OS/2 file systems (OS/2 is read-only).

For a lot of people, the best suggestion is to find out what your
friends are doing.  If there's a significant user community near you
of either kind, you're probably best off to go with it.  If not, flip
a coin (or look at a map and see whether you're nearer Berkeley or
Finland -- note that in this comparison portions of the distance that
are over an ocean don't count).