[Following outline was for an appearance I made at Bay Area FreeBSD User Group in 2000, and aimed to be based on current information as of that date. The BAFUG program for that evening was a panel discussion comparing Linux with BSD, and I was the invited Linux speaker.]
FreeBSD: 160-odd committers + core team, plus several hundred other credited contributors. CVS tree.
Linux: Multiple distributions, each with an idiosyncratic organisation. Kernel developer community as informal core/contributor community w/benevolent dictators.
FreeBSD: Kernel and many key components are BSD-licenced. Other licences are various.
Linux: Kernel and many key components are GPLed. Other licences are various.
Pick your favourite nutcase licence-advocate:
Brett Glass v. RMS, ESR, whoever else. Does anyone really care about our respective freak shows?
FreeBSD: Controlled and steady. FreeBSD has generally shown a knack for doing the Right Thing in solving technical problems.
Linux: Frenetic. In general: stability vs. progress, pick one. Inherent compromise, whichever you opt for. However: Debian-stable equates well to FreeBSD-stable, and Debian-unstable equates well to FreeBSD-current. Same model.
FreeBSD: Strongly BSD-style. Filesystem layout, general feel of userspace tools. BSD init. BSD slices.
Linux: Half-and-half SysV and BSD. POSIX, really. SysV init. Most often uses MS-style partition scheme, but can do BSD slices.
Adoption process for add-ons:
FreeBSD: Have to pass review, as part of the release cycle.
Linux: Each distribution has its own review process.
Standard of identity:
FreeBSD: Each major version has a distinct identity, determined by the core team.
Linux: Each distribution has its own versioning and standard of identity. But variations (e.g., lack of library uniformity) is not the problem that is often claimed to apply.
New, cutting edge hardware:
Driver support tends to be earlier and more exhaustive in Linux kernel, with sometimes spotty quality. Some highly significant drivers shared in common with *BSD, e.g., AIC7xxx, NCR 53C8xx. If you build servers with good, properly selected hardware, you'll have zero problems with FreeBSD. Linux adds (particularly) the ability to support crazy-ass hardware that no sane sysadmin would willingly adopt. FreeBSD is said to have much better IP multicast tools, oddly enough. It is claimed that, at least as of FreeBSD 3.3, the Linux kernel did SMP more reliably. Linux has more RAID cards, more sound and video-capture cards, does kernel-level threads. It was still being claimed (e.g., by the Linux kernel's Alan Cox in mid-1999) that FreeBSD's SCSI HD support remains significantly faster.
Historically, FreeBSD scaled up better -- more robust TCP/IP stack, better NFS. Examples of wcarchive.cdrom.com, Yahoo. Counter is that these were deployments decided (correctly at the time) on the basis of prevailing reality many years ago. Current comparison is less clear. Beware that claims tend to be perpetuated based on now-obsolete data. Some argue that the gap closed during the Linux 2.1 kernel series, but hard data are not available. Other differences including the scheduler algorithm & max processes / max file descriptors / max sockets are also now debatable, with the 2.4 candidate Linux kernels. Memory management used to be a big difference, and I frankly have no idea how they compare in that regard, currently.
More books by far for Linux, but many of them suck rocks. Community support is excellent on both. For better or worse, the Linux community is slightly more tolerant of the clueless, and is much more active in the outreach process. BSD community is elitist, and I say that in the nicest possible sense.
The Metadata Debate:
FreeBSD: FFS with Soft Updates patch.
Linux: ext2 -- faster, and is the consistency problem worth worrying over?
FreeBSD: ports, packages
Linux: Packaging systems are diverse. Debian's apt-get approaches ports system in some respects and out-does it in some others. In fact, Debian might be the most interesting distribution for FreeBSD people. Heavily network-oriented, designed for ongoing live upgrades, etc. Red Hat has been known to ship with non-working NFS install, which is just pathetic.
FreeBSD: Daily security report and similar are very cool. "Ports" rocks. Linux: Distributions' default admin tools differ. Some plusses, some minuses.
The pedigree thing is 95% symbolism, but the grain of truth is that there's something to be said for maturity in a codebase.
Ease of use:
No significant difference, propaganda to the contrary. Many Linux distributions tend to include a variety of optional admin tools for bonehead types, of doutful utility.
Multiple platform support:
FreeBSD: Having x86 and Alpha solidly covered, with PPC and UltraSPARC on their way, is no mean feat. Besides, there's NetBSD, whose ports are reliably fully-functional, which not all Linux ones are.
Linux: Pretty much every possible architecture, to one degree or another.
Hey, it's unfair and infuriating, OK? And yes, the BSD daemon is a much cooler mascot.
FreeBSD: very large files supported?
Linux: On x86, max filesize is 2GB. (Going away with glibc2.2.)
From: Ignatios Souvatzis email@example.com
Subject: [comp.unix.advocacy] Any good comparison of
Date: 20 Jan 1998 09:17:03 -0700
BSD was designed by the government to be a really good OS,
can't program worth a darn.
Jordan Hubbard pointed out the differences between them, but it's often
just a matter of style, a preference for taste:
Linux is Kaustkian socialist;
Hurd is Menshevik;
FreeBSD is Trotskyist;
OpenBSD is Leninist;
NetBSD is Maoist.
Hope this helps.
From: Orlando Andico firstname.lastname@example.org
Subject: Re: [plug] [OT] Your Thoughts on OpenBSD
Date: Sat, 23 Mar 2002 19:59:47 +0800 (PHT)
On Sat, 23 Mar 2002, Michael Balcos wrote:
> FreeBSD, for instance, is good for general TCP/IP purposes. NetBSD is
> for high security networking. I only know that OpenBSD exists, and I
> think it is meant for developing software solutions(not sure though).
No. FreeBSD goes for maximum performance and stability on x86.
OpenBSD is for paranoiac security.
NetBSD tries to be as portable as possible -- you can run it
on a very
wide variety of machines.
> BSDs provide considerable better performance than Linux,
Wow. And where did you get this amazing fact?
The truth is, most people who've actually TESTED the two show
with a 2.4 kernel is just as fast or even faster than FreeBSD 4/5.
(Reference: a series of articles by Moshe Bar in Byte Magazine.) The
other BSDs lag FreeBSD in performance (e.g., OpenBSD isn't even SMP
Linux has about "a one year head start" on FreeBSD in the area
(quoting a FreeBSD kernel developer -- interview in KernelTrap) -- one
area where your "..considerable better performance.." is DEAD WRONG: put
Linux and FreeBSD on a quad-processor box and watch Linux run rings
1) use NetBSD if you have exotic hardware and want a BSD Unix
2) use Linux if you have exotic hardware and want Linux
3) use FreeBSD if you can spec your X86 hardware, you run
standard apps (web server, email, etc..) and reliability/scaling is your
number one goal -- FreeBSD has nowhere near the hardware support of
4) use OpenBSD if you must have absolutely the best security:
prepare to be using old versions of everything
5) use Linux if you need something -- e.g. Oracle 8i/9i --
unavailable on the other platforms
Basically what it means is, for most tasks I find Linux to be
fit. Sure, it doesn't have "years behind it" -- but FreeBSD for example
is not demonstrably faster; NetBSD is basically a curiosity, besides,
you can run Linux on everything from iPAQ to mainframe, which you CANNOT
say for NetBSD; and OpenBSD is for Theo and his zealots.
For desktop, the killer factor is drivers. And Linux leaves
other X86 Unixes behind by a mile.
Orlando Andico email@example.com
Mosaic Communications, Inc.