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