
Technical reasons to choose FreeBSD over GNU/Linux - signa11
https://unixsheikh.com/articles/technical-reasons-to-choose-freebsd-over-linux.html
======
AsyncAwait
What I dislike about these sorts of articles is that they try to pretend as if
*BSDs weren't heavily dependent on the wider FLOSS community, which is mostly
Linux-based.

They instead focus on minuscule differences, which you could maybe argue are a
bit better from a design perspective, (the default file system layout for
example), but in practical terms matter little.

On the other hand, they don't mention the fact that the reason OpenBSD is so
"secure", is because their marketing focuses on the default install, which has
almost nothing.

So the moment you install the minimum amount of packages to get your work
done, the "only two remote holes" thing no longer holds.

When you point out the practically abyssal modern laptop support in FreeBSD,
they just shrug because "macOS's also BSD".

Then there's the whole smugness towards Linux as if they weren't dependent on
GCC for years, as if GNOME/KDE etc. wasn't a primarily Linux effort and as if
ZFS was somehow their invention.

They'll sing about BSD Jails and how Docker is strictly inferior, (also
ignoring LXC), while not having any even remotely equivalent frontend for BSD
Jails.

They'd laugh at the systemd debates, while talking openly about maybe them
doing something similar.

Now Linux also heavily depends on some parts of BSD, but you'd see hardly
anybody thrashing OpenSSH, just because it's BSD.

It's just not a community I want to be a part of, that's before I get into the
whole BSD vs GPL debate, but I do understand that the appeal is there for some
and that's perfectly fine.

~~~
throw0101a
> _What I dislike about these sorts of articles is that they try to pretend as
> if BSDs weren 't heavily dependent on the wider FLOSS community, which is
> mostly Linux-based._

Yeah, let's talk about chickens and eggs:

* [https://en.wikipedia.org/wiki/History_of_the_Berkeley_Softwa...](https://en.wikipedia.org/wiki/History_of_the_Berkeley_Software_Distribution)

* [https://en.wikipedia.org/wiki/Berkeley_sockets](https://en.wikipedia.org/wiki/Berkeley_sockets)

* [https://en.wikipedia.org/wiki/BIND#History](https://en.wikipedia.org/wiki/BIND#History)

* [https://en.wikipedia.org/wiki/Vi](https://en.wikipedia.org/wiki/Vi)

* [https://en.wikipedia.org/wiki/Berkeley_printing_system](https://en.wikipedia.org/wiki/Berkeley_printing_system)

* [https://en.wikipedia.org/wiki/Sendmail](https://en.wikipedia.org/wiki/Sendmail)

~~~
AsyncAwait
You do realize none of these originated with any of the current BSDs, right?

The lineage is there, sure, but it's not FreeBSD/OpenBSD/NetBSD nor DragonFly
where any of what you linked originated.

That's not to say there's no useful software that originated from today's BSDs
- there is, just not the above.

~~~
throw0101a
>> _What I dislike about these sorts of articles is that they try to pretend
as if BSDs weren 't heavily dependent on the wider FLOSS community, which is
mostly Linux-based._

> _You do realize none of these originated with any of the current BSDs,
> right?_

You do realize that that there was a wider FLOSS community before Linux came
around, right?

We're all "building on the shoulders of giants" as they say, and Linux is no
different here than BSD.

~~~
AsyncAwait
The point was about who contributes the wast majority of the work nowdays.

Also, before GNU there indeed wasn't much of a FLOSS community in the modern
sense, it was much closer to colleagues sharing program tapes with their
modifications as a courtesy.

So sure, there were programmers sharing code between each other, but that was
kind of informal sharing, more because nobody placed much value on software
alone at the time and university labs didn't always wanted to start from
scratch.

In fact the reason RMS started GNU in the first place was precisely because he
felt that kind of sharing culture was being eroded.

------
viraptor
I find some points... debatable. For example software:

> Normally when you install software on a Unix operating system you find and
> download the software.

According to the title, this is about choosing FreeBSD over Linux, not over
Unix. That means the normal way to install is "<package_manager> install
<package_name>". For the end user this is just like ports without having to
compile anything. Once you don't have the package or the port available, you
end up in the same situation: download the source and compile (which is more
likely to work on Linux OOTB simply due to popularity).

> Poudriere is a utility for creating and testing FreeBSD packages. It utilize
> the FreeBSD jail system to set up isolated compilation environments.

In Debian-like systems you can use pbuilder in the same way. Each package is
built in the same clean choot. I suspect RH has something similar?

> bhyve

They don't list anything technically better about bhyve. Why would I use this
over xen or kvm?

> FreeBSD has three different firewalls built into the base system: PF, IPFW,
> and IPFILTER, also known as IPF.

Ok. Linux has iptables and now nftables/bpfilter. It's also got queuing,
stateless and stateful features, protocol tracking, etc. CARP can be done in
userland, or via other solutions like linux-ha/stonith. What are the reasons
to choose FreeBSD here? (also, mentioning 3 firewalls after being excited
about well-designed system that just comes together rather than being glued
together from third-party software just sounds weird)

> BSD init

They haven't listed what's actually technically better about it than in
systemd. (not subjectively)

> Jails

Jails _as described in the article_ , have the same features as lxc. Lxd
provides zfs-as-a-backing-store option as well.

> FreeBSD has over five hundred system variables that can be read and set
> using the sysctl utility.

Ok. On my Fedora system "sysctl -a | wc -l" gives 2093.

> For example, on top of the geom_mirror module an encryption module can be
> added, such as geom_eli to provide a mirrored and encrypted volume.

So how is it better than lvm with its layers dm-raid and dm-crypt?

I get that people are excited about FreeBSD and I'd love to learn what are the
technically better sides of it. But this article really doesn't list that
many.

~~~
msla
> They haven't listed what's actually technically better about it than in
> systemd. (not subjectively)

And even to avoid running headlong into this troll pit: Linux distros without
systemd exist. It's dishonest to compare FreeBSD to Linux and then only focus
on a subset of Linux distros.

~~~
lmm
> And even to avoid running headlong into this troll pit: Linux distros
> without systemd exist. It's dishonest to compare FreeBSD to Linux and then
> only focus on a subset of Linux distros.

Are any of them mature enough to depend on for serious work? I looked at
moving back to Linux a few months ago, but all the non-systemd distributions
seemed to be small projects and many of them looked to have schismed,
collapsed, or both.

~~~
KitDuncan
Void is a small project, but absolutely rock solid. It's BSD inspired and
systemd free. I like it a lot.

~~~
Jonnax
Here's the thing. I would run: Ubuntu, Debian, Centos or Red Hat on my laptop,
desktop and also on any server that I run.

I wouldn't run any small distro in AWS.

~~~
freedomben
Have to agree here. I get a lot of benefits professionally from running Linux
personally. I've been a full time desktop linux user over 10 years, and I'm
often considered the "linux wizard" because I'm known for SSHing into servers
and fixing obscure errors that others have looked at for hours with no
success. My secret, is that I've run into most of the common problems
(filesystem permission issues, including ACLs, selinux, low memory/OOM,
conflicting dependency versions, etc) before and already mostly know how to
fix them. The time I did on Arch was particularly helpful here. It was a hard
first week or so but I learned more about linux during that two weeks than any
other time.

Anyway the reasons I say that: These days I only run distros locally that I
would run in production. I get intimately familiar with the intricacies of the
distro that way and managing the servers comes natural to me because of that.

------
dragonsh
Been a FreeBSD user for very long time besides Linux Slackware distributions
since kernel 1.0. Started with Walnut Creek CD distributions. In early years
it was much better than Linux with its fast networking stack and filesystem.
Also it gives a sense of conceptual integrity as distribution is not just
kernel but all the utilities, they work together in unison. But than it also
hamper innovation due to design by committee vs the best tool for the job.

Now with time and various flavours of Linux from NixOS, GuixSD, Gentoo, LFS,
Slackware, arch, Debian, Ubuntu, CentOS, OracleOS etc., it is in many case a
better choice than FreeBSD.

In most benchmarks and hardware support it has surpassed FreeBSD. I still hope
FreeBSD continue to grow and innovate, but it’s not a viable choice in many
areas of modern computing. Hopefully it can catch up. It still is a very
viable choice in building network devices, but there also with modern hardware
support Linux is giving it a tough competition.

I still use FreeBSD, but my majority production workload now is Linux with
some firewall and networking related stuff in FreeBSD and openBSD.

I did try portable FreeBSD based version like dragonfly and pcbsd. But now I
don’t use them that often.

~~~
proverbialbunny
As a counter to this, if you're working on network software that uses a lot of
bandwidth and a lot of open connections, BSD is a bit more stable than Linux,
so it's generally a better choice for that at least.

~~~
dsies
This is dangerous advice. BSD networking stack may have been superior at some
point but that hasn’t been the case for many years now.

You are very likely to run into issues trying to do filtering and/or routing
at anything >1Gbps on commodity hardware (ie. e1000 nics).

Pf is pretty but it’s not worth trading stability for.

~~~
kyuudou
Did Juniper stop using FreeBSD recently? Also, Force10's FTOS has used NetBSD
as a base certainly less than "many years now". Force10's L3 switches are at
1GB, 10GB and 40GB speeds IIRC.

~~~
sigjuice
The Force10 speeds are most likely not directly due to NetBSD, but from custom
or specialized silicon.

------
gorgoiler
The distinction between _/ etc_ and _/ usr/local/etc_ is the headline fact
here. As a sysadmin, your goal for long term stability is to separate the
important bits from the volatile bits to stop them from treading on each
other’s toes.

Separation of the core OS from the services it is running is the key to
keeping a hygienic separation between components sharing the same file system.

Debian — of which I was a long time fan — solves this by having a culture of
pretty neat gardening, keeping each package separate in _/ var/spool/foo_, _/
etc/foo_, _/ usr/libexec/foo_, but not _/ usr/sbin_.

But it’s all so old fashioned now that we live in the utopia of (1) machines
that are spun up and then deleted automatically and (2) LXC means I have a
fleet of “hosts” providing ns0.domain ns1.domain, mx.domain, www.domain,
db01.int.domain all as containers on the sanctity of a relatively unchanging
base host, analogous to packages installed on the sanctity of the FreeBSD base
operating system, and all edited as config files that can rebuild everything
except the /data and /log directories in a matter of minutes.

~~~
IshKebab
It only sounds like a partial solution really. You'll still end up with a load
of random files in `/usr/local/etc` and unless you maintained a 100% strict
policy of only installing using Ports (yeah right) you will eventually get
some files of unknown origin.

The proper solution is proper separation of app files, as found on Mac (more
or less), NixOS, Android and iOS.

I guess FreeBSD is still stuck in the 90s with Linux (except NixOS).

~~~
asdkjh345fd
>unless you maintained a 100% strict policy of only installing using Ports
(yeah right)

What do you mean "yeah right"? That's precisely how everyone I know has always
managed our BSD fleets. If something isn't in ports (yeah right), you just
make a port out of it. It takes 5 minutes unless the software has some crazy
messed up build system.

~~~
AsyncAwait
Same on Linux, unless the software has some crazy build system, at which point
you probably won't and that's exactly OP's point.

~~~
asdkjh345fd
I have no idea what you are trying to convey.

~~~
AsyncAwait
It's quite simple really. On BSDs you tend to use ports to keep your
filesystem tidy, but the moment you need something that's not already packaged
you either a.) package it yourself b.) the build system is complex and thus
you don't package it properly and make a bit of a mess on your filesystem.

So while BSDs might have slightly better FS layout as far as separation of
user & system software, in the end you'd probably end up with a bunch of
untracked files outside the system's software manager, no matter if you're on
Linux or BSD.

~~~
asdkjh345fd
Again, you're just ignoring what I said. I've managed tens of thousands of BSD
systems for 25 years. I've never had anything installed that wasn't registered
in the package database so all its files were uninstalled correctly. Yes, you
literally do stick entirely to ports, creating a port when needed. Having a
complex build system doesn't mess up your filesystem, it makes it take longer
to create the port.

~~~
AsyncAwait
Good for you, but you can do exactly the same on Linux, so there's no
advantage for BSDs there.

My myself have seen plenty of cases of people not having the time to create a
package for a software they need now, but maybe the domain BSD is used in is
less prone to needing software prone to that. Maybe it's just you being lucky.

However again, that's not a technical benefit. You can do exactly the same on
Linux.

~~~
asdkjh345fd
>Good for you, but you can do exactly the same on Linux,

Nobody suggested otherwise. Read what you reply to.

------
DCKing
This is a good list for differences between FreeBSD and Linux distros, but
describing them as advantages FreeBSD has over Linux seems problematic to me.
Except for firewalls and core documentation (but what about "community
documentation"?) nearly every item is highly debatable whether using FreeBSD
has an advantage in the first place, and many I would argue Linux has
obviously better options for [1].

To me, lists like this sadly highlights that FreeBSD has extremely few unique
selling points left. I accept its superiority for network infrastructure type
roles, but that's about it. As a Linux user, there's nothing on this list that
makes me consider switching [2].

[1]: Anything to do with package management, containers and VMs and even
filesystems Linux system can either do better out of the box or can easily be
augmented if you need it. I also think systemd is better than shell script
based inits. But there's a reason this is a footnote, this is not the thing I
want to argue here.

[2]: Besides it taking effort to switch, FreeBSD has the additional problems
that it has poor hardware support for desktop usage (PLEASE get your wifi act
together), and software support is also substantially worse - with FreeBSD
lagging behind with stuff like Electron, Wayland, desktop virtualization and
desktop containerization (Flatpak, Snaps, Appimage even). The point here isn't
these details, but FreeBSD winning over Linux people is an increasing uphill
struggle.

~~~
rvz
Even as an occasional Ubuntu user, it's already an effort for even some
desktop developers to use GNU/Linux given that Windows and macOS are actually
being sane desktops just to get work done. I just can't see any user wanting
to use or switch to either Linux or BSD to sanely 'use' their computer for
being productive in their daily work other than programming in vim or emacs;
because they are still desktops for programmers.

The BSDs now have the same Linux desktop argument of having 'choice' which has
made it a blessing for its tinkerers and a curse for commercial desktop app
developers as highlighted in [2]. You have 3 ways to package an app, many
desktop environment choices like GNOME, KDE, Xfce and the windowing managers
like X11, Wayland to test for and you then ask why your favourite software
application isn't on X Linux distro or X BSD distro. I won't be looking
forward to testing or bug hunting for my GUI app on either system since their
desktop stacks aren't integrated well or have a stable 'SDK' unlike with
Windows and macOS. GNU/Linux and the BSDs are pretty much still fragmented
ecosystems.

The BSDs in particular will always be behind, since the same developers who
have always used Linux and were part of the FOSS community are the same ones
that still contribute and pushed for it in their companies like Google,
Facebook, Microsoft and Amazon, etc. Thus, some will only accept upstream
patches for Windows, Mac and Linux. The BSDs will then be left in the sand
with atrocious software support and their patches will be rejected as the
maintainers will be unwilling to upstream these patches due to this.

~~~
zetalemur
> I just can't see any user wanting to use or switch to either Linux or BSD to
> sanely 'use' their computer for being productive in their daily work other
> than programming in vim or emacs; because they are still desktops for
> programmers.

Do you mean for native Windows or macOs dev? Then I agree. However if you are
a non tech user I don't agree. I know many people (friends and family), who
use Linux on their Notebook or PCs (quite frankly most non-tech users use
mobile anyway) and they have no I idea what emacs or vim is (and why should
they?).

So Linux being just for dev users is just not true, at least in my experience.

------
mappu
I don't think the parts about ZFS being "better integrated" on FreeBSD are
really true any more.

For one thing, ZFS-on-Linux is now the canonical, upstream OpenZFS
implementation -
[https://utcc.utoronto.ca/~cks/space/blog/solaris/ZFSOnLinuxN...](https://utcc.utoronto.ca/~cks/space/blog/solaris/ZFSOnLinuxNowOpenZFS?showcomments#comments)

For another, Ars Technica recently reviewed FreeBSD 12.1-RELEASE and found
poor ZFS integration in the installer and in mount(8):

 _> Eventually, I realized that FreeBSD's mount command didn't really
understand my ZFS root filesystem._ \--
[https://arstechnica.com/gadgets/2020/04/not-actually-
linux-d...](https://arstechnica.com/gadgets/2020/04/not-actually-linux-distro-
review-freebsd-12-1-release/)

Compare that with the relatively streamlined ZFS-on-root install support built
into Ubuntu: [https://arstechnica.com/information-
technology/2019/10/a-det...](https://arstechnica.com/information-
technology/2019/10/a-detailed-look-at-ubuntus-new-experimental-zfs-installer/)

(I'm sticking with ext4 until kvdo, bcachefs, or maybe tux3 is mainlined.)

~~~
kaylynb
The Linux kernel devs hate ZFS and actively sabotage it even backporting
changes specifically to break ZFS to LTS branches.

It's fine if you use something like Ubuntu where it's officially shipped with
the distro. If not, be prepared to apply kernel patches whenever the kernel
team takes a snipe at ZFS.

I'm not trying to be political here, just my day-to-day experience working
with several Linux machines running large zpools. It's still worth it compared
to the alternatives but if I could use FreeBSD I would.

~~~
AsyncAwait
There's absolutely no evidence for this. On the other hand, there's some
evidence that Sun made ZFS licensing explicitly non-compatible with the GPL,
so as to not "sabotage" Solaris.

Linux has other efforts going on in this area, including Btrfs and Bcachefs -
there's also ZoL, of course.

~~~
kaylynb
Take a look at any of Greg Kroah-Hartman's comments on patches that screw up
ZFS.

One of the biggest ones was removing exports of kernel functions that ZFS used
for encrypted datasets: [https://marc.info/?l=linux-
kernel&m=154689892914091](https://marc.info/?l=linux-kernel&m=154689892914091)

I'm fine with this sort of stuff in general assuming it doesn't affect LTS,
but this specific patch was backported to LTS kernels even though it has
nothing to do with security or bugfixes. I had several zpools I had to apply
custom kernel patches on the machines for no other reason than because
somebody is mad at licensing.

Bcachefs isn't even stable enough to use in production. Btrfs is okay, and
I've used it before, but it's also a minefield of killing your data depending
on what features you use. If you use all the features you need to make it on
par with ZFS you may as well dump your data in the trash.

ZFS 'just works' and none of the features are incomplete or have asterisks
attached that compromise data integrity. Yeah it has architectural problems,
doesn't do stuff the Linux way, and has a license that makes devs angry. It's
also never lost a byte for me in production for almost a decade of use.

I know the Linux devs don't owe me anything and I'm not really angry or
anything about this. It's just a fact that it's frustrating to have to deal
with political problems just to run a server.

~~~
AsyncAwait
You're just ignoring what I said above. Nobody is out to screw ZoL, but the
kernel community doesn't care enough to maintain compatibility with it.

Why, as a kernel dev, would you care if there's no possibility of it ever
being mainlined because of decisions Sun explicitly made to be hostile towards
your project?

It's like trying to cozy up to someone who just punched me, not happening.

Bcachefs isn't yet up to parity for sure, but it is stable enough for everyday
use and doesn't corrupt you data like Btrfs sometimes does. A stable
foundation that gets expanded upon daily.

------
DeathArrow
While I like more FreeBSD than Linux, I say Linux is generally a better choice
for servers. Better performance, better hardware support, more refined tools,
easier to set up, and the list goes on. This is part due to popularity but
mainly because what author hates: software written by companies willing to
earn money in contrast to software written solely by passion. If it weren't
for corporate money, Linux would be in a much poorer state.

Neither one is ready as a desktop operating system. Linus Torvalds said that
himself about Linux. Since FreeBSD lags behind Linux, it's safe to assume that
is true for FreeBSD, too.

Fast reading the author's previous articles on FreeBSD VS Linux, it's easy to
see that it's dislike for Linux and praise for FreeBSD it's based solely on
politics. He hates Windows 10 which he names an "horrible operating system"
and now he hates Linux too. And that is just because Linux has big
contributions by companies willing to gain money, in contrast to software
written solely for passion, which he deems much better.

He even goes as far as state that technical merits matter much less than
politics.

That I regard as pretty immature.

Now the author struggles to come up with technical reasons to pick FreeBSD
over Linux. If he succeeds on that, that is for any reader to judge.

Rants like the author's previous articles on Linux VS FreeBSD seem to make
even Richard Stallman an reasonable man in contrast.

Some developers, some companies are providing software for free, both as in
"free beer" and as in "free speech". That means time and money. He thinks that
he and other users are entitled to much more than that. He feels like he
should say to others in what way should they contribute to free software.

~~~
goodcanadian
_Neither one is ready as a desktop operating system._

This is a particular bugbear of mine. If Linux isn't ready as a desktop
system, how is it that I have been using it as such for 15 years? I get that
it isn't all things to all people, but it has long fulfilled my needs; I've
always been able to find a good quality tool for any task I want to do.
Generally speaking, I'm happier with Linux than Windows or Mac OS, though I'm
sure familiarity is part of the equation.

~~~
arexxbifs
With Linux, no matter the distribution you pick, you have to be more
interested in computers than merely viewing them as an applicane for word
processing, video chatting and online shopping.

\- Some software defaults to installation as sandboxed packages. Try
explaining that to someone who is used to dragging and dropping files from the
desktop into their programs to open them.

\- Want to watch a movie? Sure, but you won't get vsynced video without
opening up a text editor as root to configure your graphics driver.

\- Ohh, your laptop has THAT particular Wifi/Bluetooth/PCI bridge/whatever
chip? Sorry...

\- No, don't open "Christmas Wishlist.doc", that's from last year. The new one
is called "Christmas wishlist.doc".

While Microsoft (and to a lesser extent, Apple) has gotten a lot of flak over
shoddy updates lately, things are, by and large, much more prone to breaking
on Linux. And when they break, even just a little, you need to know your way
around a terminal to fix them.

I recently had to downgrade my kernel because of the bugs in i915. To do so, I
had to first identify the problem by following the syslog and then do some
heavy lifting in GRUB to lock my boot process to an older kernel version. The
prerequisite knowledge to be able to perform what we might consider a simple
task, has been built up during decades of me being a computer nerd.

For someone without a keen interest in computers, Linux on the desktop isn't
all that great. The thing is, I like it that way. I want the freedom of
choice. I want the level of control it gives me. When (or if) it becomes ready
for the desktop, it's probably ready to be abandoned for something else.

~~~
GordonS
> No, don't open "Christmas Wishlist.doc", that's from last year. The new one
> is called "Christmas wishlist.doc"

I'm veering a bit OT here, but is anyone aware of the justification for having
a case-sensitive file system? It's something that's always annoyed me about
Linux and *BSD, but I wonder if there is any real benefit I've just never
grasped?

~~~
cesarb
Linux (and probably also the BSDs) goes beyond "case-sensitive": filenames are
a sequence of bytes, giving special meaning only to the NUL byte (as the
terminator) and the forward slash byte (as the path separator), and to the "",
".", and ".." filenames. From an implementation point of view, it's much
simpler, and makes it easier to have high-performance code.

Case insensitivity adds a whole set of complications. The operating system has
to either canonicalize all filenames, or preserve them (case preserving) but
have an equivalence class of filenames. Canonicalization can be problematic
(like ß -> SS, or perhaps ß -> ẞ? And let's not think of the dotless i), and
to make things worse, can change with newer versions of the Unicode standard
(as new characters and their case mappings are added); at least NTFS works
around that by storing a case mapping table in the filesystem metadata, so a
filesystem created by a newer Windows release can have a different case
mapping (and you can have different case mappings for each filesystem in the
same machine). It can also confuse software: even with a case preserving
system, a program can open a file named FOO for writing, and not find it later
when listing the directory (because it already existed as lowercase "foo").
This kind of thing has led to security issues in the past.

------
pnako
FreeBSD marketing:

    
    
      - FreeBSD is like Linux but <>
      - It is more <> than Linux
      - It is less <> than Linux
      - It has more <> than Linux
      - It has less <> than Linux
      - Linux LINUX Linux LINUX LINUX
    

OpenBSD marketing:

Look, cute fish.

~~~
qplex
FreeBSD and Linux have pretty cute mascots too.

Puffy is exclusive to OpenBSD. Tux and Beastie are more generic.

Also:

"Early versions of OpenBSD (2.3 and 2.4) used a BSD Daemon with a halo, and
briefly used a daemon police officer for version 2.5. Then, however, OpenBSD
switched to Puffy, a blowfish, as a mascot." [0]

[0]
[https://en.wikipedia.org/wiki/BSD_Daemon](https://en.wikipedia.org/wiki/BSD_Daemon)

Edit:

You're absolutely right that there seems to be some kind of power fantasy
among the FreeBSD crowd about crushing Linux.

Just do an image search for "BSD Daemon" and see the g(l)orious fan-art.

------
djsumdog
I would be totally on board with using FreeBSD as my primary server OS .. if
it had a container engine. There was a port of Docker to FreeBSD, but it's
ancient and unmaintained (before Docker did their big modular refactor).

In theory, you could implement a lot of the Docker Engine API for FreeBSD and
on the backend use jails instead of namespaces/cgroups and ZFS if you wanted
implement the same layering. Some of the security and cgroup limits may not be
implementable on FreeBSD, but with the Linux binary emulation layer, you
should still be able to run a lot of containers without modification (unless
they need certain filecaps or privileges).

I had OpenBSD on a laptop once, but without 802.11ac support, you'll either
have to downgrade the Wi-Fi card in newer laptops or use a USB adapter.

~~~
rsync
"I would be totally on board with using FreeBSD as my primary server OS .. if
it had a container engine."

FreeBSD is _the original_ container engine - although, for the sake of
completeness, we should count Solaris "zones" and call it a tie ...

I think there is a cultural and temporal connotation of Docker - and the use-
cases that it typically enabled - that makes it seem very different than
'jail' but make no mistake: jail did all of those things and more, many years
earlier.

The VPS, as we currently think of it, was built _first_ [1] on top of FreeBSD
and jail.

[1] JohnCompanies announced beta availability of "server instances" on 303 and
cDc mailing lists in mid 2001. Someone else coined the term "VPS" a bit later
...

~~~
twblalock
Being first doesn’t matter. Docker became the industry standard and jails did
not.

------
henvic
Licensing should also be considered a technical reason.

-

Shameless plug: a few years ago, I fought the decision of my former employer's
licensing counsel. He had ties with FSF Europe, and asked me to relicense my
code from BSD to LGPL before publishing it (was private). I vehemently
objected and asked to keep my code private instead – on the grounds of
permissiveness and technicalities. They conceded. Two years passed, and I got
in touch with the company and had the software released using BSD. I share a
few details of my reasoning here: [https://medium.com/@henvic/opensource-and-
go-what-license-f6...](https://medium.com/@henvic/opensource-and-go-what-
license-f6b36c201854)

~~~
AsyncAwait
Licensing should absolutely be considered. In fact copyleft is one of the main
reasons I'd go with Linux over BSD anytime.

If I am going to invest my precious free time into software development, I
want to guarantee to my users that my software will always remain free, (as in
freedom).

There's also a community aspect to the BSDs that I strongly don't align with,
which is the sort of 'practical, above the fray' mentality that seems to
disregard all political/real-world happenings around privacy, encryption,
patents, censorship etc. and instead focus purely on the code. To the point of
praising any piece of closed-source that has a bit of BSD in it.

While this is perfectly valid short-term, I do think that a movement that goes
beyond code and has some ideological foundations is needed.

~~~
inopinatus
We must have differing definitions of freedom, because I regard the GPL as a
severe curtailing of options and equate it with being forced to adopt a
narrow, ideological worldview. If anything, this leads to fewer freedoms on
use by directly creating more obligations for the user, and if my code is to
be of utility for anyone, freedom of use is paramount.

What’s more, and most ironically, copyleft perpetuates the fundamental
atrocity of intellectual property law, by hacking it, and therefore
intrinsically depending on it; in contrast, the BSD and MIT licenses are
mostly a liability waiver under an assertion of attribution, ultimately
creations more of necessity than ideology.

I struggle to accept the separate and somewhat animistic notion of code itself
being free, having never successfully anthropomorphised a program.

~~~
AsyncAwait
We probably do have different definitions of freedom. My definition is along
the lines of yours ends where mine starts, whereas yours sounds more like
'absolute freedom'.

You're right to an extent, the GPL does place certain obligations on the
users, in particular to maintain (at least) the level of freedom they
themselves were given, which naturally limits what one can do to an extent.

P.S. Yes, it all depends on copyright law, BSD does too, otherwise public
domain would suffice.

~~~
_ph_
Funny that GPL does violate your definition of freedom. Because it doesn't end
where my freedom starts. It tries to impose a new license of my software
linked to the GPL software. And it imposes obligations to the user beyond what
the user was given.

~~~
AsyncAwait
You do not have the freedom to just take "my" code and do whatever. The moment
you include my GPL'd code, you're stepping onto my ground and thus need to
abide by some rules I set out for those that do.

You're still free to not use my code, but not to do as you wish if you do,
because at that moment you're stepping onto my own freedom.

~~~
_ph_
I haven't claimed that I am free to do what I wish to do, nor do I ask for
that. The point is, that the GPL contradicts what you stated before "yours
ends where mine starts". GPL tries to exactly cross that line.

~~~
AsyncAwait
The "your end where mine starts" means precisely that your ability to do
whatever ends when you decide to use my code, because that is where my freedom
to impose certain requirements on your usage of my code starts.

There's nothing the GPL tries to cross, that's exactly what that quote means
in general society as well.

For example, you're free to wear the same shoes you do outside in your own
house, but if you're coming into my own house, I have the freedom to require
you not to do that.

~~~
_ph_
Yes you have. Telling me to wear different shoes once I visited your house is
something different. So if you think that is a reasonable request, then I have
to tell you that I will refrain from visiting your house. And advise others to
be very considerate about visiting your house.

~~~
AsyncAwait
What makes telling you to wear different shoes any different? I am just asking
you to abide by my rules if you're going to make use of my resources.

The GPL does the same.

And yes, you're free to refrain from visiting my house if you disagree with
what I am asking of you, same as you're free to not use GPL code and therefore
not abide by its requirements.

The only thing you are not free to do is come to my house and ignore my rules,
likewise use GPL code and ignore the GPL. That's it.

~~~
_ph_
I don't mind abiding to your rules when I come to your house and while I stay
in your house. I find it bizarre that you think that you can impose rules onto
me after I left your house and even ask me to impose the rules onto others.

~~~
DanBC
How do you feel about NDAs or official secrets?

~~~
_ph_
What about them? I have no fundamental problem with them. The only reason I
would sign an NDA is, when I am doing paid work.

~~~
DanBC
But aren't these examples of having to follow someone else's rules after
you've left their house?

~~~
_ph_
So what? It is part of the deal, and as I wrote, I would sign an NDA only for
a good reason, that is usually a paid job. Also, the NDA concerns only the
specific task and not other things I am doing at that time or later.

------
Hello71
I started using FreeBSD a few months ago for a Tor relay, trying to promote OS
diversity. I had read these types of articles about how FreeBSD is so much
cleaner and well documented than Linux, and I wanted to try it out.

Honestly, I found it seriously lacking. It always seemed to me like most of
those article writers had poor understanding of Linux, and now it seems to me
like they have poor understanding of FreeBSD too.

For example, this article, like many, touts the high quality of FreeBSD
documentation. I found it to be similar to Linux documentation: a few
excellent pages, mostly good pages, some mediocre pages, and lots of
undocumented stuff. People (including me) often complain about the quality of
Linux networking documentation, which is unquestionably terrible, but I found
that FreeBSD isn't really that much better overall. Better in some places,
worse in others, often you have to give up and go find the source code.

Another thing often touted is the centralized development of FreeBSD making it
more organized. This article betrays itself here by explaining that FreeBSD
has _three_ different firewalls, one originating locally, one forked from
OpenBSD, and one forked from some dude. Now, to be fair, Linux is far from
clean here: between ipchains, iptables, nftables, and bpfilter, Linux has gone
through a lot of change. At least with Linux though there are at most two
practical options at any given time, and there is a clear forward progression.
With FreeBSD, I spent several hours trying to figure out the differences
between each, which wasn't helped by the documentation problems: manual pages
being fragmented and incomplete and the handbook being woefully out of date on
this subject.

It also seems like a lot of the hyped FreeBSD features are actually far behind
Linux features. As other commenters have mentioned, Linux has device-mapper,
which is similar to GEOM, and is used for LVM and modern RAID setups. Jails
came before containers, but Linux namespaces are now far more powerful than
jails, which aren't that much more than chroots. bhyve is nice, but lags
behind QEMU/KVM. Poudriere is fine but most Linux distros have chroot builders
too now.

In conclusion, I don't find FreeBSD particularly attractive for any of the
reasons that I hear often touted.

~~~
RandomTisk
Any Linux or BSD distro could achieve best-in-class documentation for new
users by simply adding example usages for most commands to the top of their
man pages. Man pages tend to read more encyclopedias than practical guidance,
and FreeBSD was no exception last I looked.

Command xyz

Common usage: xyz -s source_ip -d dest_ip:port

~~~
wyclif
The Arch Wiki is pretty damn good in my opinion. I don't see how FreeBSD's
documentation is better, if "better" = more useful and up to date.

------
_paulc
I've been a FreeBSD user since 2.05 (1995) and a strong supporter - FreeBSD
still excels as an ultra-stable 'old-school' UNIX server OS (which to be
honest meets a lot of use-cases more simply than a lot of modern
alternatives). That being said this sort of post isn't helpful as advocacy -
as others have notes it is pretty shallow and to be honest most people are
probably better off running Linux if this is what they are used to.

~~~
aduitsis
+1! Thank you!

Been using FreeBSD for 20 years. If one's reason for using FreeBSD is that
they dislike GNU/Linux, then something's very wrong from the start.

~~~
minusf
"those who hate windows use linux, those who love unix use BSD."

------
GolDDranks
What usage this article is talking about? For a server? For a desktop
environment?

For servers, me and my colleagues use Linux, and not being able to use Docker
is a tough call, our workflow is very Docker-centered. I know that Jails
exist, but it's not just about containment, it's about packaging, building and
deploying too, and having ready-made tools (and a lot of existing Dockerfiles)
for that.

For desktop, I use macOS, and I'm not willing to change if it worsens the
experience, which I suspect it will do.

I wonder what would be the killer use for FreeBSD today? I'd be eager to try,
since I'm eager to try all kinds of stuff, but I fail to find any place I
could easily stray from my current OS combination.

------
noodlesUK
As a longtime user of both FreeBSD and various Linux distros, I agree with a
lot of points regarding the coherence and ergonomics of FreeBSD’s design.
However, I don’t generally run FreeBSD anymore, despite enjoying using it
more, simply for the reason of security. I don’t feel (and maybe this is just
a feeling) that security is a first class citizen on FreeBSD the way it is in
Linux distros like Fedora or Ubuntu. Things can be slow to be patched and the
defaults aren’t always particularly secure. I really miss ZFS though. Btrfs
just isn’t as nice to work with.

~~~
ohlookabird
Why not use ZFS on Linux?

~~~
mikece
Opinions and dogma about licensing is one reason as well as a sense that ZFS
isn't actually better than ETX4. I'm not saying I agree with that, only that
it's why ZFS and Linux don't mix from what I can tell.

~~~
_emacsomancer_
ZFS and EXT4 have different use cases.

~~~
rkeene2
ZFS and EXT4 on LVM have a lot of overlap. A decade or so ago I made a
comparison between ZFS, BtrFS, and EXT4 on LVM [0] that may be of interest.

[0]
[https://rkeene.org/projects/info/wiki/BtrFS](https://rkeene.org/projects/info/wiki/BtrFS)

~~~
_emacsomancer_
The checksumming/error-correction of ZFS is big difference, and the main
reason I moved some of my file systems to ZFS (even with versioned backups, on
EXT4, I suffered data loss due to corruption/bitrot).

On the other hand, for a simple set-up on a lower resource system, EXT4 has
lots of advantages.

~~~
rkeene2
A good, controversial read is available at [0]. I don't agree with his
conclusions entirely, but the data he presents is interesting. And also paired
with [1] to give space overhead and MTBF figures for various RAID
configurations (where RAID-Z ~= RAID5, RAID-Z2 ~= RAID6)

[0] [https://www.jodybruchon.com/2017/03/07/zfs-wont-save-you-
fan...](https://www.jodybruchon.com/2017/03/07/zfs-wont-save-you-fancy-
filesystem-fanatics-need-to-get-a-clue-about-bit-rot-and-raid-5/)

[1]
[https://rkeene.org/projects/info/wiki/221](https://rkeene.org/projects/info/wiki/221)

~~~
_emacsomancer_
From experience, as I said, I had bitrot on EXT4, with carefully versioned
backups, but it didn't help, since the bitrot was just faithfully propagated
through all the backups (I didn't have 5+ year backups - who knows when the
bitrot occurred).

And I haven't experienced file corruption in the 5+ years I've used ZFS. Of
course, ZFS isn't a magic bullet that solves all ills, but I've been very
happy with it. I still, of course, have multiple backups of important data,
but now I'm more confident about the integrity of those backups.

------
jedberg
I prefer BSD because I find managing kernel modules and system startup much
more straightforward.

I also like that the placement of different kinds of files is much more
standardized, which makes them easier to find and it also makes it a lot
easier to manager a cluster of developer machines where each dev has different
needs, because you can still be reasonably sure that all of their
customizations will be in /usr/local.

The other thing I'll throw out here is that Netflix chose BSD for their base
system on OpenConnect because they were unable to get Linux to match the
networking performance of BSD when delivering large files.

------
asveikau
It's a little weird to not put some of these headliner features at the top of
the list. Like ZFS (in-tree, on the default installer, without licensing
issues or hostile team dynamics).

On the other hand there are things in this list which are just the FreeBSD
equivalent of something Linux has in some form. The ports tree is good, and I
like that you can customize options etc., and now pkg is pretty good, but are
you really going to miss that if you have apt or similar?

~~~
ianai
Aren’t Linux and freebsd using the same zfs fork at this point though?

~~~
asveikau
I am not following closely enough to know when that makes it into a stable
FreeBSD release, but yes it will be.

Except for one point: the zfs on Linux work is not in the mainline kernel, and
won't be. A strict interpretation of your comment would actually be "no" \-
can it really be said that "Linux is using it" in that case? You need out-of-
tree kernel support which is very difficult to maintain.

------
lasermike026
Whatevery floats your boat. I use linux, docker and kubernetes all in the
cloud. I'm getting more distant from underlying OS everyday.

BSD is a fine operating system. There is nothing wrong with it. Linux is a
good operating system and gets the job done. Whatever works.

I think what is more concerning is that we really haven't had a big leap in
hardware, OS, and system design for sometime. When are we going to have the
guts to make the next step?

~~~
kvz
I’d argue NixOS is a huge step that a lot of people still have to catch on to
(to be fair: that includes more contributors to improve documentation and
ergonomics, but it is already valuable and workable as it is)

~~~
ghuntley
Working on this!

Check out the NixOS for existing sysadmins workshop over at
[https://github.com/ghuntley/workshops/tree/master/nixos-
work...](https://github.com/ghuntley/workshops/tree/master/nixos-workshop)

If you want a TL;DR overview of NixOS then start here
[https://github.com/ghuntley/workshops/tree/master/nixos-
work...](https://github.com/ghuntley/workshops/tree/master/nixos-
workshop/modules/01-introduction-to-nixos)

~~~
GordonS
Something I wonder about after reading your overview - software from outwith
the package manager.

It's quite often that the package manager in the Linux distro I'm using has an
old version of Nginx, PHP, or whatever, and so I have to build my own, or at
least use an alternative package source.

How is this kind of thing handled with NixOS config? (if it is)

~~~
ghuntley
Pinning and override layers

[https://github.com/digital-
asset/daml/blob/master/nix/nixpkg...](https://github.com/digital-
asset/daml/blob/master/nix/nixpkgs.nix#L10)

------
giantrobot
In a perfect world I'd probably use FreeBSD in all the places I currently use
Linux. I however don't live in a perfect world so I haven't used FreeBSD for
anything significant in over a decade.

My number one problem with FreeBSD (and OpenBSD) has been hardware support. I
got an HPE Microserver to use as a compact centralized storage. No matter what
I could not get FreeBSD even booting on the machine. It's got an AMD APU and
apparently FreeBSD has zero support for it. With Ubuntu I had zero
installation issues and still got to use ZFS for storage.

Similarly I have a SFF AMD box to use as a router. While FreeBSD would boot on
it, every few weeks it would kernel panic and need to be power cycled because
FreeBSD shit the bed with the Ethernet cards in it. Ubuntu with the same exact
usage patterns has given me absolutely no trouble.

I've never been able to get FreeBSD fully working on a laptop. Something is
always broken (usually WiFi) and power management sucks. It's also entirely
inconvenient to have to power down the laptop because it won't wake up when
opening the lid.

My second major problem has been a lot of seemingly advanced features in
FreeBSD are very experimental or simply difficult to use properly. While
FreeBSD's Jails are very sophisticated they are a pain in the ass to manage
and there's multiple management tools available with wildly different levels
of functionality.

I want FreeBSD to exist and keep pushing forward but I've given up on using
it. None of its technical features can make up for the fact it won't run or
run well on hardware I actually own. Advanced features don't mean much to me
if I can't use them effectively.

I'm not developing FreeBSD (or Linux), my interest in them extends about as
far as launching other pieces of software I want to use or that I'm writing.
I'm not typically pushing the limits of the systems so interesting
optimizations around edge cases don't mean much to me. I don't get paid to
support myself or my personal projects so I'm just going to go with the system
offering the least hassle. That _hasn 't_ been FreeBSD since the 4.x days
(compared to contemporary Linux distros).

~~~
non-entity
>It's got an AMD APU and apparently FreeBSD has zero support for it.

When's the last time you tried. I don't remember if I've run FreeBSD on it,
but I have a cheap board with an AMD APU that's run NetBSD within the last
year.

> I've never been able to get FreeBSD fully working on a laptop. Something is
> always broken (usually WiFi)

Yeah WiFi support is super shaky seemingly across all BSDs. I had to make a
small patch to an existing kernel driver to get it to work with one of my
Realtek cards in FreeBSD. To my knowledge the same card will cause panics in
NetBSD when the driver is attached and I have an Intel WiFi card broken in
DragobflyBSD.

~~~
giantrobot
> When's the last time you tried. I don't remember if I've run FreeBSD on it,
> but I have a cheap board with an AMD APU that's run NetBSD within the last
> year.

It's been two or three years since I last bothered. While FreeBSD's support
for the board might be better there's no real upside for me to even try
installing it. The router box has been happily running in a closet for years.
Best case scenario is it does exactly what it does now with minimal effort on
my part. It's not worth the effort.

This is my common refrain whenever I think about using FreeBSD for a project.
I'll most likely end up with _some_ set of things I need to fix or debug. Each
problem then saps my time, motivation, and patience. It's an order of
magnitude easier to just use Linux and save my energy for interesting parts of
a project.

------
kylek
It's been said a million times- FreeBSD is an operating system, Linux is a
kernel. ("GNU/Linux" is a strange beast- kernel+libc or what?). It's a tough
direct comparison to make especially when you consider things like
documentation (which FreeBSD is often cited as being exceptional)

~~~
hvis
> ("GNU/Linux" is a strange beast- kernel+libc or what?)

Kernel plus userspace: the standard command-line tools, compilers and some
additional stuff. Such as GNOME, for instance (it's considered a part of the
GNU project).

------
scythe
>The kernel and base system is completely separated from the third party
applications and base system configuration goes into /etc while all third
party configuration goes into /usr/local/etc. Everything you can configure and
everything you can tune or setup is very well documented in the man pages.

One thing I find ironic about BSDs is that their top billing feature is being
a "complete integrated (base) operating system" rather than a collection of
software maintained by different projects, but at the same time, they're
almost always discussed as server/poweruser operating systems rather than
desktop operating systems. This seems completely backwards to me.

If I'm a sysadmin running a server, I probably know what I'm doing and feel
confident replacing parts of it. I likely studied this and relative to a
typical person I'm much more likely to find _the way it works_ to be
interesting. By contrast if I'm a desktop user there's a very good chance I
don't know what I'm doing and don't really want to. It seems like the second
situation is the one where you benefit more from having a wall up that
separates the system from the userlibs.

There have been fleeting attempts to make desktop-forward BSD distributions
over the years, including PC-BSD and a few short-lived initiatives by the
NetBSD project, but it never gets off the ground. Is this a missed
opportunity?

------
uk_programmer
I've been a long time OpenBSD, FreeBSD and Linux user (I use Windows for
mainly for work though). I've given up with the BSDs tbh. While I like that I
can understand these systems. Linux is just easier to get things working on.
There is just more information now out there for Linux as it is the defacto
*nix out there. So it may well be that BSD has many technical merits, they
tend not to be all that useful when you are trying to get stuff done.

------
zelly
I have dabbled in BSDs (mainly OpenBSD) but can't stick with any of them
because Docker doesn't work without virtualizing Linux. If I have to have a
separate setup for "real work" versus hobby work, then it's a non-starter for
me; I don't have enough time or brain capacity.

I like the idea of BSDs as this self-contained system (like the polish of
Apple's walled garden but without the tyranny), but it is too far behind the
cutting edge.

------
tramtrist
Slackware lines up more with the original philosophy this article talks about.
I like taking Slackware in either stable or -current and running it in this
article instead of Debian ... If you wanna run Linux with a distro that hasnt
changed its overall philosophy, structure, or hell even core software you
should be looking at Slackware again. 15 will likely be out this year.

------
cassepipe
Wow it really sounds like FreeBSD is the-right-thing to choose. Except I can't
tell anyone I know to install it because it does not come with a simple
installer or a working desktop. I got interested in Windows because I grew up
with it, and only later I got curious of how it worked behind the scenes. When
I first installed Linux I had no idea on how to use the terminal, what a
package manager was, compile programs or even what a DE was. I learned it
because I was able to install it on my machine in less that an hour. It
doesn't matter how good your train engine is, if it ain't got no seats, people
won't come aboard.
[https://en.m.wikipedia.org/wiki/Worse_is_better](https://en.m.wikipedia.org/wiki/Worse_is_better)

~~~
Koshkin
FreeBSD used to be a Swiss watch of an OS - I used 4.8 (IIRC) to run a VPS for
a few years and couldn't be happier; nowadays, looks like FreeBSD is on par or
even lagging behind Linux in all respects.

------
perlgeek
I'm kinda confused.

The author berates Debian for patching many upstream software packages to
conform to "the Debian way", and then says:

> The kernel and base system is completely separated from the third party
> applications and base system configuration goes into /etc while all third
> party configuration goes into /usr/local/etc.

Doesn't that mean that FreeBSD has to patch all third-party software to look
for its configuration in /usr/local/etc, creating a "FreeBSD way" that is just
as much at risk as breaking upstream software, making its documentation not
apply etc. as the Debian software?

Or is there a real, technical difference that makes one kind of modification
less intrusive than the other?

~~~
icedchai
When you build a package from source with ./configure, it generally _defaults_
to /usr/local/etc. Oddly, the Linux way of putting all third party configs in
/etc is actually what's weird.

~~~
throwaway2048
Considering most unix software is written on linux for linux these days, and
has been for many years, its extremely unlikely what you say is true.

~~~
icedchai
Take a look here: [https://www.gnu.org/prep/standards/html_node/Directory-
Varia...](https://www.gnu.org/prep/standards/html_node/Directory-
Variables.html)

"The default value of prefix should be /usr/local"

On traditional Unix systems, /usr was reserved for the operating system.
/usr/local is 3rd party software. This is how Solaris behaves. This is how the
BSD's behave. The Linux approach is the exception, not the rule.

~~~
throwaway2048
the fact that 99(.99?)% of modern unix systems are linux systems makes it the
rule, not the exception.

~~~
icedchai
What you say is true. I can see it both ways. There's also the issue that
Linux is "only" the kernel, so all software is third party software. There is
no differentiation between "core OS" and "third party" like you have on other
platforms.

------
peter_d_sherman
Excerpt:

"With jail it is possible to create various virtual machines, each having its
own set of utilities installed and its own configuration.

 _This makes it a safe way to try out software_.

For example, it is possible to run different versions or try different
configurations of a web server package in different jails. And since the jail
is limited to a narrow scope, the effects of a misconfiguration or mistake
(even if done by the in-jail superuser) does not jeopardize the rest of the
system's integrity. Since nothing has actually been modified outside of the
jail, "changes" can be discarded by deleting the jail's copy of the directory
tree."

------
ianai
Wow I see no mention of no systemd in FreeBSD here.

I love how unified the freebsd maintenance and just general system utilities
are. The documentation doesn’t lie. I’ve never had a bsd box stop booting
because of a wonky system change either.

~~~
progval
> Wow I see no mention of no systemd in FreeBSD here.

The author wrote about it in the "part 1" article linked in the introduction.

------
sam_lowry_
"...there isn't such as thing as "the Arch way". The Arch Linux distribution
want third party software to be as upstream has made them, so they do not
change anything unless absolutely necessary"

Gosh! This is exactly how I feel about Arch. And FreeBSD seems consistent
until you step outside of the base, and then, it's just a pain in the pass,
because so many software nowadays is build on the assumption of running
Linux/bash/gnu textutils, etc.

------
new_realist
If Linux were a railroad, FreeBSD would be a model railroad club. Nice stuff,
in a way, and very similar to the real thing, but lacking a certain industrial
usefulness.

~~~
sgt
Not at all. FreeBSD is without doubt on equal footing with Linux in terms of
industrial usefulness, assuming the features you seek are available. Large
companies use FreeBSD in production for mission critical apps but are
generally less vocal about it.

------
reilly3000
I run Ubuntu as my daily driver primarily for its broad 3rd party application
support. As such I tend to run Ubuntu on servers as well, so I'm usually in
familiar territory. I have a smart friend who extols the benefits of FreeBSD,
but I haven't ever given it a serious go. Is there a canonical/non-hacky way
to run debian packages on FreeBSD? Like can I run Slack and Zoom? Steam?

------
lllr_finger
Most of these points are debated in Brendan Gregg's "Solaris to Linux
Migration" blog post from 2017:
[http://www.brendangregg.com/blog/2017-09-05/solaris-to-
linux...](http://www.brendangregg.com/blog/2017-09-05/solaris-to-
linux-2017.html)

The only point of Brendan's that I don't agree with is ZFS as it really
doesn't have a strong competitor (yet). Thankfully, it also doesn't need to be
on every machine - my desktops/laptops/deployed servers are treated like
cattle not pets.

I love FreeBSD/OpenBSD's simplicity and principled design, but I've sadly
relegated them to specific purpose servers at work and at home because I kept
hitting enough speedbumps that IMO preclude them from being used in a more
general sense.

------
detaro
How do e.g. the sections about bhyve and Bastille describe _Technical reasons
to choose FreeBSD over GNU /Linux_? The describe features, but they tell me
nothing about why those might be better than counterparts in the Linux world.

------
drosan
These are hardly "reasons", more like "the list of comparable freebsd
analogues of some common tech solutions implemented in gnu/linux".

------
CIPHERSTONE
My frustration with BSD is in the desktop arena when wanting to use a laptop.
Want to use modern laptop hardware? Good luck. I get that this use isn't the
core that BSD focuses on, but seriously, it's a huge potential market for
people that want a secure/stable system. Right now you either need to use
extremely old hardware (Thinkpad T60 era) or face many obstacles. Which is a
pity.

~~~
davisr
This is a lie: no you don't need to use old hardware. I use a Thinkpad X1
Carbon (5th gen) and everything sans-fingerprint-reader works perfectly with
FreeBSD 12.1, entirely built from source and ports. The trackpad even works
buttery smooth, with inertial scrolling using the Synaptics X driver.

------
rooam-dev
Long time "intermittent" FreeBSD user here.

I always liked the naming (e.g. NICs) and location of things in FreeBSD, felt
more natural to me. It may not be a (good) technical reason, but it makes live
so much easier when you know that if I install something it's in '/usr/local'.
That said, not sure if it's fair to compare FreeBSD (1 distro) with Linux
(many distros).

------
otterpro
Only thing that is holding me back from using FreeBSD (and other BSD) is
hardware compatibility. Linux supports far more hardware devices, such as SATA
controller/HBA and network cards, it seems. I've used FreeBSD (and other BSD)
and it was really pleasant to see a well laid out and well thought out OS,
unlike Linux which felt like a collection of after thoughts.

------
peter_retief
I am running both at the moment but I must say that I am warming more to
FreeBSD, reminds me of the early Linux days, before the systemd wars.

------
jeffrallen
In 2000, I was working on a large Solaris x86 system. It was a daily struggle
to get and keep anything at all working. I needed a VNC server to hold state
across laptop crashes, sleeps, wifi glitches, etc. I chose FreeBSD because I
just needed one thing in my work life that actually worked. I loved it then,
and I'd choose it again today.

------
passthejoe
If you really like Windows and/or MacOS, you will probably be disappointed in
the desktops available on Linux and FreeBSD.

But the opposite is also true. After years running Xfce and GNOME in Linux, I
went back to Windows 10.

First I had to replicate my workflow, which meant using a lot of programs that
could be run on any system.

Then, aside from the Microsoft updates and all the problems they cause, the
total lack of package management for applications makes even more work.

I had WSL, and that is great, but running a terminal in Linux (or MacOS, even)
is just easier when everything can be accessed by any program in or out of the
console.

Eventually I realized I was fighting Windows with little upside. I got an M.2
SSD, installed Debian Stable (after 2 years of Windows, I REALLY didn't want a
lot of updates), and everything is running great.

If you depend on Microsoft Office and/or Adobe Creative Suite apps, that's a
reason to prefer Windows or MacOS. Otherwise, you can do very well — and maybe
even better — with the Linux desktop of your choice.

My current laptop is three years old. GNOME 3 runs great. It's extremely
responsive, and I like the way it works with the "hot corner," super key and
desktop search. I use a few GNOME Shell Extensions, but not too many.

I really don't understand why developers are so enamored with Apple. Unless
you are developing for Mac or iPhone, a good Linux distro, or even Windows 10,
seems to be a better if not equal choice.

I managed to get my hands on an iMac, and I set it up to see how I'd like
MacOS. Getting it "right" was harder than Windows, and I was really surprised
at how super slow Homebrew could be. It really made me appreciate Debian's apt
— and even Fedora's dnf.

Mac's Finder doesn't compare well to Windows' File Explorer (is that what they
call it?) or Nautilus/Files in GNOME.

One thing Windows 10 and MacOS do well is support HD and UHD screens without
fiddling. Linux desktop developers need to finally realize that HD (1920x1080)
is now the baseline, and 4K-ish resolutions are common and should be
completely supported out of the box.

My comfort level with Linux is high, and when I spend most of my time in the
same web browsers, in addition to the file manager and text editors, it made
sense for me to switch back. Windows is too much work with too little upside.

------
ncmncm
Ultimately, when we are being honest, there are no technical reasons to prefer
FreeBSD. Or Linux. Both work. You can probably build whatever you need to on
either one (with a few exceptions, e.g. AMD) and both will work about as well.
There are differences, but the importance of each difference is a matter of
preference, environment, and history.

------
hkt
I don't disagree, but are there business reasons to do it? As far as I can
tell there aren't, but there are good reasons not to, such as hiring and
support. Are there any people here who could make a business case as well as a
technical case? I'd be fascinated to hear it.

------
INTPenis
I know people who insist on using FreeBSD, or worse OpenBSD, and they often
have issues with their work systems.

This is unacceptable to me. My work system must work.

So I don't care about your theoretical list because I know for a fact that
Linux is better for me in practice.

~~~
ori_b
I keep fixing my colleagues Linux issues. In practice, I have spent less time
fixing my own BSD systems.

I usually end up stuck with Linux systems at work because of proprietary code
which doesn't run on BSD.

------
pjmlp
And in UNIX tradition, zero reasons for anyone that cares about graphics and
multimedia.

------
jesse_m
Is the ports system similar to Gentoo's portage/ebuild system? I can get
sources, configure the build, or get binaries (for some things) pretty easy
through it.

The QA with the build farm would be nice though.

------
dzonga
technical merits, can be plenty. however how does freeBSD integrate with the
rest of the I wanna get things done ecosystem of people n software. Can I
easily install it on a laptop such as a thinkpad and have a plug and play
experience. Can I easily update and find packages | software I need. if Open
source software approached things from the usability view, we wouldn't be
beholden to corporate interests. I personally, use KDE on a thinkpad

------
yubiox
It has been a couple of months since I messed with it, but I don't remember
there being a way to do source based, weighted, or blackhole routes on
freebsd.

------
ggm
I'm seriously unconvinced there are any aside from personal preference and
I've been using BSD since 4.1 on a vax. I still think 32v was near perfect.

------
0x1ch
This seems more so like a list of differences, without any details as to what
makes them different, let alone which is better...

------
gurleen_s
The moment I stopped caring about these arguments is the moment I got a little
more happiness in my life.

------
xyproto
In the context of PF:

> Logs may be monitored using standard utilities such as tcpdump.

This sounds unusual and not entirely practical?

------
jccalhoun
Funny coincidence. Last night before I went to sleep I was looking up the
differences between BSD and Linus.

------
znpy
Technical reasons to choose gnu/Linux over freebsd: I can choose among one of
the top distros, boot the installer on my laptop and most (if not all) the
hardware will be detected and will work properly.

------
netmonk
Who care about OSes, when you have container, and VM ?

------
gigatexal
Use the best tool for the job I say. If it’s BSD for you or your project then
so be it. If it’s Linux then use that.

~~~
afc
And use this article to figure out whether BSD is better than Linux for you or
your project, right?

~~~
gigatexal
I was just trying to get ahead of the inevitable flame war that will ensue
regarding this topic.

I didn’t know about some features in BSD though so I did find the article
useful.

------
softwarejosh
id rather see this on openbsd

~~~
pnako
Linux is a Boeing (a 737 Max, if you ask certain people), OpenBSD is a Cessna.

If you do a direct comparison, OpenBSD would lose in terms of benchmarks,
hardware support, software support, features, etc.

But OpenBSD is more a philosophy, a particular way to approach computing that
works for some people. OpenBSD is basically a continuation of Unix from the
80s, where the admin/user (no distinction in reality) is expected to do some
work from the command line. Thus it's a great user experience. The config
files tend to have the same syntax, and it's human-friendly syntax, not some
XML or YAML crap designed for a tool. Things are kept simple so human brains
can understand them.

But the trade-off is basically features, performance, hardware and software
support. It's a bitter pill but, again, it works for some people.

I use OpenBSD full time on my router, but I tend to switch back and forth on
laptop and servers (with Debian).

~~~
ben_bai
When Linux is a Boeing 737Max, then FreeBSD is a Airbus A380 and OpenBSD is a
A-10 Warthog. xD

------
maallooc
Practical reasons to choose linux over freebsd

1\. People use linux more than freebsd

Nothing's more important than this.

~~~
greymeister
Sounds straight from a 90's Microsoft marketing department, I'm glad not
everyone listened back then.

More users is definitely a feature though.

~~~
maallooc
tbh microsoft was the best choice in the 90s.

the only reason linux became useful is because it became popular.

~~~
doctor_eval
For some domains, But certainly not all, Windows was arguably a better choice,
but even then it was more Windows NT vs Novell than Unix.

I don’t recall Microsoft ever getting much traction in the racks of ISPs or in
“big iron” installations, not until the late 90s... and even then it was
tenuous.

Microsoft was a terrible choice for IP networking, for example. Changing the
IP address of a server would require a reboot.

The majority of the work I did in the 90s was on HPUX and DGUX, but also a
bunch of others. There was a lot more OS diversity back in the day.

