FreeBSD has the concept of a base system: a set of tools intended to work
together harmoniously, maintained by a core group of people. You can easily
find evidence of this by looking at the source code; the userspace tools sit
right next to the kernel. This is in contrast to _GNU_/Linux, where everything
(including coreutils) is pulled in from various sources. Many Linux
distributions emulate a base system by including utilities that transform the
kernel into a complete standard system (e.g. Debian).
Linux has a benevolent dictator who decides project direction, while FreeBSD
has a core group of contributers who decide the future of the project. However,
I'm not sure that the Cathedral vs. Bazaar is a fair comparison to impose on
these projects. In any case, both projects seem to have been getting things
done, and unfortunately (or maybe fortunately), I'm not too savvy on internal
managerial disputes or issues.
The closest Linux distribution to FreeBSD is most likely Gentoo Linux, as its
Portage system is very heavily inspired by the FreeBSD Ports system, in which
all "packages" are simply recipes to build from source. You can even run the
Gentoo project on a BSD kernel, although this sickens most FreeBSD users
for some reason. Most other Linux distributions default to installing binary
packages, which is also possible, but not traditional in FreeBSD.
Linux has recently added LXC, while FreeBSD has had Jails for a while now.
LXC is much better marketed than BSD Jails through Docker, but
Absolute FreeBSD has an excellent section that describes how to do isolated
deployments via Jails. FreeBSD also has the Linuxulator that emulates
32-bit Linux system calls via FreeBSD system calls, allowing users to
seamlessly run Linux binaries on FreeBSD. The FreeBSD startup system, however,
has stayed more or less the same for the past few decades, revolving around
an rc.conf file and init scripts. Linux has seen many more efforts in this
area, including systemd and initramfs.
BSD projects use a BSD license, which many businesses prefer over the GNU
license used by Linux. However, this is a discussion that deserves more than
a small summary.
Linux is most likely to support recent hardware because of extensive userbase
and industry support. For example, NVidia's latest CUDA SDKs always have Linux
bindings, but not BSD ones.
The BSDs have great reputations for killer implementations of TCP/IP.
The BSDs have been using the GEOM disk management system for a long time,
which is one of my personal favorites in terms of features. It allows you to
treat character and block devices as pipes, so for example, adding encryption
is simply "piping" a bare disk through an encryption layer, resulting in a new
device. You can even "pipe" things across the network. Linux is somewhat caught
up via device-mapper, so this is not a huge deal if you're trying to choose
which one to use. Both are great operating systems. Just use whatever works.
It's likely that you know things that I don't, so please feel free to correct
me if I'm wrong.
Get dozens of book recommendations delivered straight to your inbox every Thursday.