*BSD News Article 31538


Return to BSD News archive

Xref: sserve comp.os.386bsd.questions:10816 comp.os.linux.help:37174
Newsgroups: comp.os.386bsd.questions,comp.os.linux.help
Path: sserve!newshost.anu.edu.au!harbinger.cc.monash.edu.au!bunyip.cc.uq.oz.au!munnari.oz.au!constellation!rex!ben
From: ben@rex.uokhsc.edu (Benjamin Z. Goldsteen)
Subject: Re: BSD vs Linux
Message-ID: <Cr5uCG.BMB@rex.uokhsc.edu>
Date: Fri, 10 Jun 1994 02:45:51 GMT
Reply-To: benjamin-goldsteen@uokhsc.edu
References: <2t0vjb$4i@Venus.mcs.com> <2t5r0f$24q@cleese.apana.org.au> <2t8fs5$e9p@redstone.interpath.net>
Organization: Health Sciences Center, University of Oklahoma
Lines: 135

jrr@w4bzl.chapel-hill.nc.us (Joe Ragland) writes:

>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.

I disagree with this.  I see a lot of effort on the part of BSDs for
POSIX compliance.  I won't say its complete.  However, in some
respects, BSD has some edge.  For one thing, FreeBSD (and I assume
NetBSD) has the #ifdef _POSIX_SOURCE in the #ifdef's.  Part of POSIX is
that if _POSIX_SOURCE is defined, only POSIX features should be
available.  Another thing: "#ifdef linux".  I can't remember the
standard, but the rule is predefined defines should match
"_[A-Z].*" or "__[A-z].*" (e.g. __sgi, _AIXV3, or __FreeBSD__).

>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

BSD's priority is POSIX as well.  In fact, some of the utilities (like
ed) that aren't 100% POSIX list differences (extensions and omissions
and reasons why).

>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

I disagree with this too.  There is no One True Linux.  You don't know
what utilities come with a given distribution nor how they are
configured.  Just because all the kernels are called "linux" doesn't
mean they are all the same.  Which kernel should I be on?  1.0.8/9 or
1.1.?  Where can I even get a kernel greater than 1.1.0?

>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).

Yes, definitely!  System X could implement foobar ten times better than
system Y or even have ten more great features that system Y doesn't
have, but system Y would be a better choice for some individual because
it has that one feature barfoo.

P.S.I have one system running FreeBSD 1.1 and another Slackware 1.2.0. 
I usually find the {FreeBSD,NetBSD} versus Linux debate (sounds like
the old BSD versus AT&T debate except development is no longer
relatively static) interesting.  Two things I dislike:

1.I can't seem to escape Linux (comp.* group or not)
2.When somebody on USENET asks about UNIX for the PC, a fanatic (from
either group but usually Linux) proceeds to tell the person they want
to run system X; system Y is no good; they don't need feature Z;
feature #936 is coming RSN and they should wait because; system X is
just about the best system there is.
-- 
Benjamin Z. Goldsteen