
BSD vs. Linux (2005) - joseluisq
http://www.over-yonder.net/~fullermd/rants/bsd4linux/01
======
ChuckMcM
I like FreeBSD, and I use it as a server OS and on a NAS box but you only need
look at [https://wiki.freebsd.org/Graphics](https://wiki.freebsd.org/Graphics)
to understand that if the "Linux Desktop" is a joke compared to MacOS and
Windows then the "FreeBSD Desktop" is even more so.

From my experience of "old" computers, workstations, and then "PCs as
Workstations", Windows won the desktop because the UNIX camp could never check
their egos at the door and get their act together on a windowing system and
graphics architecture. And while it was brilliant that you could do the "heavy
lifting" on a server and do the display part on a less powerful machine, that
architecture should have been taken out behind the barn and shot the moment 2D
and 3D acceleration hit the framebuffer cards. Instead we have the crap that I
have to put up with, which is a wonderfully compact and powerful system (A
NUC5i7YRH) with a graphics architecture that is not supported at all on
FreeBSD and has pretty egregious bugs on Linux, and runs beautifully on
Windows 10.

For the conversation at hand though, the Linux graphics pipeline teams are
_much_ better at getting things working than the FreeBSD team, even though
FreeBSD is much more "friendly" to non-open drivers.

I would love to have a nice, integrated, workstation type experience with a
UNIX operating system but that music died when SGI and Sun through in the
towel and tried to retreat to the machine room.

~~~
digi_owl
The base problem there is drivers. Specifically that we have something like 3
suppliers of desktop GPUs.

One refuse outright to supply information that allows a proper open driver to
be developed.

Another have just started providing this information in recent years, and
there is still delays between the latest hardware hitting the market and the
proper information reaching relevant hands.

The third only recently started producing hardware, and said hardware is only
bundled with other products from same supplier. Never mind that it in general
performs worse than the other two offerings.

There used to be another, one that was supposedly well supported by open
drivers. But that one long since left the consumer market, focusing instead on
multi-display business setups etc.

so effectively you are complaining about how a group of people, forced to
reverse engineer and often working in their spare time, can't match the market
gorilla that gets direct support from third party suppliers.

~~~
jasonkostempski
I personally would accept a huge hit in performance for a fully libre system
(software and hardware) and would be willing to pay more than the average
desktop/laptop price for it. I know I'm not alone but I wonder if the market
is big enough for a company to start producing hardware products on that core
principle.

~~~
digi_owl
Dunno. But i could have sworn i had read about a libre GPU design out there.

------
vivin
I was a long-time FreeBSD user. Started using it in college and continued for
a long time. I started using Linux because I had bought myself a new laptop
and BSD didn't recognize the wifi card. I continued using FreeBSD at home for
a few more years on my webserver before ultimately moving to dreamhost (I just
didn't have the time to keep maintaining my own server).

I like using Linux, but I still miss the predictability of a BSD system - you
_know_ where things are, and where they are supposed to be. When I first
started using Linux, I was absolutely flummoxed by the lack of distinction
between the base system and add-on utilities.

Linux definitely feels more "organic" and "grown" whereas FreeBSD seems like
it was architected and planned out. Not that this is a bad thing for Linux. My
FreeBSD heritage still shines through when I use Linux; anything I install
from source sits in /usr/local :).

~~~
siddhant
> you know where things are, and where they are supposed to be

Does this not depend on the distro you're using?

~~~
takeda
It's more than what you see in Linux. For example in Linux you have system
packages, packages that are in distro repo, and 3rd party repo all sorting
configuration and startup scripts in /etc.

In FreeBSD anything you find in /etc is part of the system, applications that
you install are fully contained in /usr/local including etc and rc.d (init.d).
/usr/local is also completely empty when you first install the system.

~~~
throwaway7767
> It's more than what you see in Linux. For example in Linux you have system
> packages, packages that are in distro repo,

System packages are packages in the distro repo, so those are the same thing.

> and 3rd party repo all sorting configuration and startup scripts in /etc.

Stuff you compile/install from random sources on the internet will place its
stuff wherever the upstream decided to place it. The same will happen if you
compile that software on FreeBSD. If you're thinking of ports, those are
patched to install to the usual places, exactly the same as the packages in
the linux distribution repositories.

FreeBSD's base system is very neat and well-organised, and they have an
impressive ports tree with ports that integrate fairly well for the most part.
But that doesn't extend to third-party software, and it seems silly to include
that in a comparison on the linux side.

------
nixos
I know Linux (Debian) quite well and would like an excuse to try learning
FreeBSD, but I just can't find any serious use-cases where FreeBSD would be of
any advantage.

I run a small site on a VPS, so:

1\. I don't have GBs of free memory for ZFS

2\. I don't have GB of RAM, CPU and HD space to build everything from ports,
and most importantly, no need.

Except for an Application Firewall for nginx, what does ports have over deb
packages? All in all, how much MB of free RAM or free HD space will I win by
compiling everything myself (taking time to do so, and pushing off security
updates because I don't have the time to sit and watch the compilation, hoping
nothing breaks (which _did_ happen once)

3\. License - I don't care. GPL is free enough for me.

4\. Base vs. Ports - Why should I care? Debian (testing!) is stable enough for
me. Except for dist-upgrades, I never ran into issues, and then it may be
faster to nuke the server from orbit. Now had BSD "appified" the /usr/local
directory (rather than keeping the nginx binary in /usr/local/bin and conf in
/usr/local/conf it would have kept everything related to nginx in a
/usr/local/nginx) it would have been interesting, but now?

If anything, I like how Debian maintains _both_ base _and_ ports, so I can get
almost any software I need from apt-get, and don't have to worry about
conflicts.

5\. systemd? The reason Debian went with systemd was (IIRC) because they
didn't have the manpower to undo all of RedHat's work in forcing all
applications to integrate into systemd (such as GNOME). I don't know how
FreeBSD is doing in that regard.

I don't mind learning new systems. (see my username :) ). I actually
understand what nixos or coreos, for example, bring to the table. But FreeBSD?

~~~
aaron-lebo
1\. zfs runs well on a lot of systems. You might have to change a setting or
two but it's not as you say.

2\. pkg install and the related pkg utilities have existed for awhile.

5\. systemd isn't and shouldn't be a requirement for applications going
forward. Any application that requires it is limiting its portability for
unknown reasons.

The joy of trying a new system is the little things you learn that you weren't
even aware of before.

~~~
nixos
> pkg install and the related pkg utilities have existed for awhile.

So have apt and apt-get. So that takes away one of the advantages of FreeBSD

> systemd isn't and shouldn't be a requirement for applications going forward.
> Any application that requires it is limiting its portability for unknown
> reasons.

True, tell RedHat that :(

~~~
danieldk
_So have apt and apt-get. So that takes away one of the advantages of FreeBSD_

Not completely. In Debian and others it's mostly a choice between a stable
base and stale software or a moving base and up to date software (though
backports improve things quite a bit for Debian Stable).

Since in FreeBSD packages are separated from the base system, it's possible to
run a stable base system, while using quarterly updates or rolling release
(latest) of packages.

(Note: I didn't have many problems running Debian Unstable, but it may depend
on your requirements.)

~~~
lmz
Of course, there's nothing stopping people from using things like pkgsrc or
Nix on Linux.

------
hacknat
I think the best, and most traditional, comparison is the Cathedral and the
Bazaar[1]. Pretty much every observation the author makes can be framed in
this comparison. BSD has built-in libraries, and has a cohesive architecture.
Linux is popular precisely because of its chaos. It is incredibly easy to hack
some feature together in Linux. It will probably start out as ugly, but if
enough people glom onto it, it will become great and maybe even secure. It is
pretty clear that Linux became popular not because it was the best, but
because it was the fastest development path.

Obviously BSD has its uses, but if you're looking to develop a new feature and
get it out the door (in OS development) Linux is the easiest choice.

[1]ESM
[https://en.wikipedia.org/wiki/The_Cathedral_and_the_Bazaar](https://en.wikipedia.org/wiki/The_Cathedral_and_the_Bazaar)

Edit:

I remember reading somewhere that Netflix uses BSD for all of its net-
intensive servers as network performance tuning on BSD is, at least by
reputation, better, but they use Linux as their workhorse. They employ some
FreeBSD committers though (obviously not everyone can do that).

~~~
groovy2shoes
BSD development versus Linux development is _not_ an example of the Cathedral
and the Bazaar. That essay was about development process: under the Cathedral
process, development happened "behind closed doors" and the only time the
public got access to source code was at release time; under the Bazaar
process, development happened "in the open" and the in-development source tree
was _always_ available to the public (typically via a source control system).

To see why the various BSDs are not an example of the Cathedral process, you
only need to look at their source control. In fact, OpenBSD _pioneered_ the
idea of anonymous CVS -- before that, you needed an account to check out from
the CVS repository:

"When OpenBSD was created, de Raadt decided that the source should be easily
available for anyone to read at any time, so, with the assistance of Chuck
Cranor, he set up the first public, anonymous CVS server. At the time, the
tradition was for only a small team of developers to have access to a
project's source repository. Cranor and de Raadt concluded that this practice
"runs counter to the open source philosophy" and is inconvenient to
contributors. De Raadt's decision allowed "users to take a more active role",
and signaled the project's belief in open and public access to source code."
[1]

[1]: [https://en.wikipedia.org/wiki/OpenBSD#Open-
source_and_open_d...](https://en.wikipedia.org/wiki/OpenBSD#Open-
source_and_open_documentation)

~~~
hacknat
I disagree with you on both counts. Cathedral development is not about source
availability (Wall uses emacs and GCC as an example of Cathedralism for
heavens sakes), it's about source modibility. Theoretically two different
projects under the same license could have different approaches. Very few high
level architectural decisions are made by the Linux maintainers (unless they
are coding it), they're there to say, "yes" or "no". Some of the most
important features in Linux, cgroups, namespaces, etc, came from outside the
maintainer team. By comparison, NetBSD has a highly top-down approach. The
source might be readily available, but good luck landing a big patch.

~~~
groovy2shoes
At the time ESR wrote the essay, both Emacs _and_ GCC _did_ use the Cathedral
development model I speak of. They've only opened up since due to forks like
XEmacs and EGCS which started to eat GNU's lunch. The FSF eventually had to
cave in to the Bazaar model because it works.

Furthermore, people without committer access land patches in the BSD's _all
the time_. In fact, that's _how_ you get committer access: you first start
contributing patches to the appropriate mailing list where existing committers
can review them, discuss them, and perhaps merge them. It's not terribly
different from sending a pull request on GitHub, and afaik it's pretty much
the same process used by the Linux kernel.

------
kriro
My perspective as someone who is mostly a desktop user/dev and rarely dives
into server related issues other than setting up a home network and maybe
sshing into a server somewhere in the magical cloud:

* The BSDs feel more elegant, the Linux distributions feel more complete/up to date (and are probably more performance optimized due to enterprise embrace but that's only speculation on my part).

* I sympathize with the BSD license philosophy and agree that the BSD-license is in theory freer but don't care too much either way

* OpenBSD is awesome (yes even for desktops, with the right hardware) and I install it every now and then but ultimately I'm too familiar with Linux to switch. I do like that they keep fighting the good security fight, don't care about supposed personality quirks of some devs. Keep up the good work

* At the end of the day I use Linux because that's what I grew up with and it tends to "just work" (for the record all BSDs I installed in recent memory pretty much worked out of the box). I am kind of forced to use OS X at work but other than that it's Linux on all machines. The parents also use it by now.

------
dkarapetyan
I tried freebsd. Gone back to ubuntu. In this day and age not having proper
dependency resolution for packages is not acceptable. I've more than once had
some tool based on ports just go into an infinite cycle when asked to upgrade
some packages.

The philosophy laid out in this article seems more like rationalization of
historical accidents more than anything else. Linux file system layout is just
as predictable as anything else. Configuration goes in /etc, PID files and
other such things go in /var, things local to the users go in /usr/local, cron
related things go in /etc/cron.d, and so on and so forth. FreeBSD file system
layout on the other hand makes no sense to me and the rc system is even more
bizarre. Do I really need to specify "XYZ_start=YES" when upstart, systemd,
and others have this stuff all sorted out already. Well not systemd so much
but close enough.

Overall the BSDs are too low level for development and play purposes. For
deploying proxies, caches, NATs, and other such single purpose things I'm sure
they're great but anything else not so much.

~~~
aaron-lebo
It's really not just a rationalization. BSDs control the kernel and the
userland, meaning that file system layout is coherent. Check any Ubuntu
installation and packages are all over the place. This is perhaps unavoidable.

Also, OpenBSD, DragonflyBSD, and FreeBSD can all be used as server or desktops
without much fiddling. Their installers are better than anything in the Linux
world. You can have one up and running with a nice wm, browser, etc, in 15
minutes.

They are more finnicky about hardware, but when you can buy a laptop for $200,
that's not so much an issue.

~~~
dkarapetyan
I don't think the layout is coherent at all. Ubuntu layout is much more
coherent. If I need nginx configuration I look in /etc/nginx. Following the
same pattern if I need mysql configuration I look in /etc/mysql. If I need to
figure out the actual daemon configuration for each I look in /etc/init. It's
all very nice and tidy. Actual binaries go in /usr/local/bin or /usr/bin or
/bin. That's pretty much all I need to know for any binary or daemon. This is
not true in FreeBSD. So where exactly is the incoherence?

~~~
merlincorey
It isn't actually as nice and tidy as it would seem because you do not have a
direct separation between system configuration and application configuration.

It's a small, subtle detail that for many is less important today than it once
was; however, if I have two FreeBSD systems of mostly equal versions and I
want to migrate applications and/or users from one to the other, I know ALL I
have to do is copy from /usr/local -- try that on your Ubuntu machine. Good
luck separating the system-specific configurations from your user and
application configurations.

~~~
dkarapetyan
I don't want that separation in a consistent and coherent system. User vs base
is artificial. What I care about is the end result the overall system
accomplishes and base vs non-base doesn't really factor into that. What does
it matter to me if nginx is part of the base system or not? I need a web
server. Arbitrarily choosing apache/httpd vs nginx to include as part of the
base system is incidental complexity where I stand from.

~~~
teacup50
_> User vs base is artificial._

No. It's not.

If nginx releases an update, do you also need to update your OS? No, because
the user dependency graph isn't shared with the base OS.

If you update your OS, do you also need to update nginx? No, because there's
backwards ABI compatibility.

The split is not artificial.

~~~
comex
> If you update your OS, do you also need to update nginx? No, because there's
> backwards ABI compatibility.

Only for minor versions. How is that different from any other package that
promises ABI compatibility?

Why are FreeBSD OS components split up at a low granularity, so you can't
install the stuff you want without the stuff you don't?

Why are there two separate sets of tools to update them and other packages?

edit: Why separate non-base packages from base packages on the filesystem, but
not from each other? If the advantage of separating /usr/local is the ability
to copy the non-base configuration/apps without the base stuff, wouldn't it be
more useful to be able to copy any given individual package or set of
packages? Or if that is possible already (by asking the package manager for a
list of files or whatnot), wouldn't that obviate the need to separate base
from non-base?

~~~
JdeBP
> ... _non-base packages_ ... _base packages_ ...

FreeBSD does not work this way. You are projecting Linux onto it.

------
jdefr89
This is sort of explains why I have chosen OS X. Its a UNIX operating system
that makes for a great modern desktop machine. I don't need to worry about
poor and or glitchy hardware support. Its 2016, I don't have the time to play
around with finding WiFi drivers or graphics drivers that can hardly support
3D-acceleration. Everything has always worked out of the box. Having had two
MacBook Pros, I haven't had one hardware or software issue to date. They (OS
X/Apple) have the advantage of being unified. People aren't constantly arguing
over stupid shit as they seem to with Linux. FreeBSD's development on the
other hand is just too slow for my desktop use. Despite what the article says,
I have found that there is usually a support gap somewhere after an install;
with drivers or whatever else. This isn't to say I dislike Linux, I do love
Linux. I just wish they would get their shit together on a few issues. As for
FreeBSD, it still has a strong spot for secure, stable servers. I suppose it's
all a matter of preference. At the end of the day however I will always choose
a UNIX system for my day to day use.

~~~
nine_k
Such a great illustration!

* You can use great hardware, but the choice of it is rather limited.

* You're OK with upstream making a lot of choices for you, though the upstream is considered good at making the right choices.

* You don't mind running a lot of proprietary stuff (anything above the Darwin level).

People who choose Linux (over OSX and even BSD) look at these bullet points
differently, thus the divide.

~~~
khedoros
Exactly.

* When I bought my laptop 5 years ago, Apple was a candidate. It lost out because I still wanted an optical drive (and was interested in Bluray specifically, at the time), I wanted a 1080p screen, an HDMI output, and at least 3 USB3 ports. Upgradeability is a plus; I've upgraded the RAM, hard drive, and wifi card since I bought my laptop, as my needs have changed.

* I like having choices (in terms of software and configuration), and they often don't match up with the best options for mainstream users.

* I've got a Windows partition, but it's not my first choice for general computing. I don't have any particular interest in Apple's technologies or services, so I feel like a lot of their ecosystem would be lost on me anyhow. I _do_ generally find Apple's software to be well-designed and aesthetically pleasing. I'd be worried about fighting the software to get what I want done, though.

------
pavanky
Guys, this article was written somewhere in between 2002 and 2005 (based on
the author mentioning bitkeeper being used for the kernel). Someone edit the
title to reflect this please.

~~~
ptspts
It also mentions gcc 3.2.2, which was released on 2003-02-05.

It also mentions that Gentoo is getting popular, which was happening in 2002
and 2003, after which it has been declining.

Also this article has appeared on Hacker News many times before, with titles
of various relevancy: [https://news.ycombinator.com/from?site=over-
yonder.net](https://news.ycombinator.com/from?site=over-yonder.net)

------
matt_wulfeck
> It's been my impression that the BSD communit{y,ies}, in general, understand
> Linux far better than the Linux communit{y,ies} understand BSD.

Ok fair enough, but the same can be said about manual v automatic
transmissions, static versus interpreted languages, etc.

When something is _harder_ to use then you're forced to think about it more
and understand it better.

~~~
teacup50
A consistently designed well-documented system is probably _easier_ to use,
all else being equal.

~~~
corv
In day to day use I agree, although it is harder to get exotic software to
work on the BSDs.

~~~
talideon
That's a consequence of that software being written with only Linux in mind,
not a problem with the BSDs as such. Also, somebody needs to write a port, and
the only person who'll do that is somebody with skin in the game.

Obviously I'm an outlier, but if I need some software on FreeBSD, I'll
contribute a port. Most of the time, it's almost trivial, and it's only with
very obscure (maude is one that I'm currently working on) or newish
(RethinkDB, which isn't written in a super portable manner - it doesn't even
use pkg-config and has a hand-written configure script!) where there's an
issue.

------
paradite
Related discussion on GNU vs. Linux:

[https://www.gnu.org/gnu/linux-and-gnu.html](https://www.gnu.org/gnu/linux-
and-gnu.html) (BSD is discussed here as well)

[https://www.gnu.org/gnu/gnu-linux-faq.html](https://www.gnu.org/gnu/gnu-
linux-faq.html) (According to this page, the title of the article should be
BSD vs. GNU/Linux, though the latter was mentioned once in the article)

------
tempodox
Disclaimer: I know this is a side issue. However, I'm really wondering what it
is that makes people think using such a “creative” color scheme for publishing
their texts would do any good. If it weren't for Safari's Reader view, I would
be _physically unable_ to decipher this text. Which would really be a shame,
because this text deserves to be read.

I guess, I'm still hoping that one of these days, I will reach one of those
authors and make them understand that the contents is of paramount importance
and creative coloring can do nothing but detract (except when you're an
expert). If you use your own color scheme, please make sure you know what
you're doing.

~~~
soneil
It should be a side issue, but it's why I didn't read past the first page. It
was physically uncomfortable to do so.

~~~
majewsky
I just noticed there is actually a color theme selector right below the
sidebar. The Light and Dark themes are both fairly readable. The author should
just throw away the "Normal" theme.

------
SFJulie
I would have entitled it Linux AND BSD

This article is really about the objective difference between linux and BSD.
It is not a rant in the form B > L or B < L it is much more about the
difference in a lot of direction.

I personally find it much more an help to guide people to come and as much as
to stay away.

I am a former user of linux (that I used to like) and I am now using freeBSD.
I switched without love or hate. I just was on linux to have video card and
latest hardware support, and I am on freeBSD to have the ports, stability and
easy upgrading.

I did it after years of experiences enabling me to build the information about
the different fit use case of both OSes.

Having this summed up in 10 pages will spare people a lot of time in deciding.

And I think it is as important to have people come to BSD as to not delude
them in coming for wrong reasons: disgruntled users are as much a pain that
rigorous contributors are a gift.

So information to make choice, especially when they are not structured as an
aggressive comparison are very welcomed.

The author should be praised.

------
skywhopper
"A tour of BSD for Linux people" sounds like a genuinely interesting read, but
the aggressively defensive tone starting in the second paragraph and
continuing throughout the introduction turned me off of reading past the first
page. I'm definitely interested in how BSD differs from Linux, but I'm not
interested in being lectured at. (So, please tell me if it tones down after
the first page.)

------
corv
This is probably the best comparison of [Free]BSD and Linux, if a bit dated.

In the meantime FreeBSD has changed the release schedule and there are efforts
under way to package the base system separately.

~~~
joseluisq
Yes, a little bit old but I condiere (modestly) a little bit opportune to
remember ;) In fact, some do not know :D

------
simula67
Very informative article, thank you. This article is missing discussion on
ArchLinux ( probably because it is very old ? ). Arch has a minimal base
system ( no X etc ) and you can build the system you most like.

Also Linux now uses git for development.

> And normally, you do the whole rebuild process in four steps. You start with
> a make buildworld which compiles all of userland, then a make buildkernel
> which compiles the kernel. Then you take a deep breath and make
> installkernel to install the new kernel, and make installworld to install
> the new userland. Each step is automated by a target in the Makefile.

> Of course, I'm leaving out tons of detail here. Things like describing the
> kernel config, merging system config files, cleaning up includes... all
> those gritty details.

Wow, so painful. For me its as simple as :

$ pacman -Syu

and watch some movie. I bet the BSD way offers more opportunities to learn but
I personally don't like learning for the sake of learning. Learning different
ways to do the same thing does not make me a better person. So this is not
interesting to me.

> Does Linux support hardware that BSD doesn't? Probably. Does it matter? Only
> if you have that hardware.

I could obtain that hardware at some point in the future.

> "But Linux has more programs than BSD!" > How do you figure? Most of these
> "programs" you're so hot about are things that are open source or source-
> available anyway.

Given an application, does the provider support it on your OS is an important
consideration that people make before choosing to use an OS, as they should.

> Linux, by not having that sort of separation, makes it very difficult to
> have parallel versions, and instead almost requires a single "blessed" one.

Isn't this what NixOS (
[https://nixos.org/nixos/about.html](https://nixos.org/nixos/about.html) ) is
supposed to be solving ( among other things ) ?

I might try a BSD for the novelty aspect of it, but so far I have seen no
reason why it should be better.

~~~
talideon
Yes, the article is _very_ old.

> Wow, so painful.

And also something that hasn't been true for ages. By way of anecdote, I've
had to do config merges on major version upgrades more on Debian systems than
FreeBSD systems, but even then the difference hasn't been all that great:
major version upgrades just work. And the last time I had to build a custom
kernel was FreeBSD 6, which was about a decade ago.

Any remaining pain is largely a consequence of the freebsd-update works and
should mostly go away once the base system is packaged (which should also make
security updates a little faster to install).

------
th0ma5
I feel this captures a lot of the feel I had for FreeBSD even back in 2001
when I used it quite a lot. It had a sense that you were chiseling out this
solid system that would remain for eternity, along with an assurance of
security and stability.

I run Ubuntu now on multiple devices. It often has a feel of flimsy binary
patches. I don't know that I care too much though as it works well. I have
family members too on it so it is good to remain practiced with it to help
them.

I miss playing with FreeBSD though! Perhaps I should run it on one of my RPis?
Anyway, this is a great site.

~~~
joseluisq
yeah, how many homesickness.. FreeBSD is really cool BSD OS I like it. In
other hand CentOS is my default Linux Server :D Debian is really cool OS too..

------
duncan_bayne
The only thing that's preventing me from switching my desktop (laptop) OS over
to BSD is chipset support. I tried 11.0 ALPHA, but couldn't get anything other
than VESA video going.

My setup scripts are all in Git:

[https://gitlab.com/duncan-bayne/freebsd-
setup/wikis/home](https://gitlab.com/duncan-bayne/freebsd-setup/wikis/home)

I've used a few different OSs on a daily basis for work and recreation:
Windows (since 3.0), Linux (various distros since 1995), OSX (for a few years
between 2009 and 2013), and FreeBSD.

I have found BSD to be the most comprehensible, simplest and the best
'cultural fit' for the way I think and work. I appreciate that the latter part
is a bit vague, but that's because my understanding of it is vague :) BSD just
feels ... more like home.

Those wanting to give it a go as a desktop OS should check out PC-BSD, which
is built to be usable 'out of the box' for that purpose:

[http://pcbsd.org/](http://pcbsd.org/)

------
aceperry
I'm a total linux user and have tried *Bsd from time to time. For some reason,
the bsds have always taken a very long time to boot up and even to start X.
The last time I tried FreeBsd (about 3-4 years ago), a friend asked me to help
him debug why X windows didn't run. It was taking 15+ minutes to startx on his
brand new server class PC that he built up himself. We didn't realize that it
took so long to start up until we went out for dinner and came back, surprised
to see X had started. Same with OpenBsd, it took 10+ minutes just to boot up.
I thought I didn't install it correctly and re-installed it a couple of times.
I'm guessing, the Bsds are meant to be run continuously and not shut down?
I've asked a couple of other Bsd people, and they couldn't provide an answer,
so I'm left up in the air about that.

~~~
corv
I can't confirm that. By virtue of being very minimal out of the box I've
found BSDs boot very quickly.

systemd has arguably made Linux bootup faster than before but I would expect a
default BSD to be quicker than a bloated Ubuntu default install.

------
eeZi
Note that most BSDs (with the notable exception of OpenBSD, of course) lack
modern anti-exploitation features like ASLR.

FreeBSD is working on it, but it took surprisingly long.

~~~
tobik
NetBSD has had support for ASLR since 2009 (NetBSD 5.0), but they only enabled
it recently by default: [https://mail-index.netbsd.org/source-
changes/2016/04/10/msg0...](https://mail-index.netbsd.org/source-
changes/2016/04/10/msg073939.html)

------
slyall
Pity this documented is not dated. But judging from the version numbers of
things he mentions it probably dates from around 2003 or perhaps 2004.

------
joonoro
Ahh, this old article again.

>"But Linux is more popular." >So? Windows is even more popular. Go use that.

This slope is so slippery I broke my neck when I fell.

------
lajospajtek
Another aspect of the "Linux vs. FreeBSD" story is Java. I was almost won over
by FreeBSD few years ago, however what keeps me back is so to speak the
"second class citizenship" of the JVM on FreeBDS. Or at least it was so pre-
OpenJDK 8, when I looked.

Is anyone successfully using Java on FreeBSD in production?

~~~
thallian
Depends on what you mean by production.

I've been running Gitblit and multiple Minecraft (Spigot) worlds with Openjdk8
on FreeBSD 10 for more than a year and never had any problems (Jenkins worked
fine too but I used it only for a short time).

But my userbase is only about 10 people, mostly in minecraft (to get a sense
of the main world's scale: [0]), so I don't know if that qualifies :)

[0] [https://world.vanwa.ch/](https://world.vanwa.ch/)

------
AceJohnny2

      When I say "Linux", I mean Red Hat. I mean Slackware. I mean Mandrake. I mean Debian. I mean SuSe. I mean Gentoo. I mean every one of the 2 kadzillion distributions out there, based around a Linux kernel with substantially similar userlands, mostly based on GNU tools, that are floating around the ether.
    

So... do you include Android? It's worth asking, because though it uses a
Linux kernel, it's a heavily modified one (little chance of Binder ever being
accepted into Mainline, or of Android abandoning it), and its userland is very
different from anything you're used to from GNU.

Edit: I can't find a date, but from other stuff in it I'm guessing the article
is from quite a few years ago, before Android was mainstream or even existed.

~~~
ndesaulniers
> little chance of Binder ever being accepted into Mainline

I hate to break it to you, but...

[https://git.kernel.org/cgit/linux/kernel/git/stable/linux-
st...](https://git.kernel.org/cgit/linux/kernel/git/stable/linux-
stable.git/tree/drivers/android/binder.c?id=refs/tags/v4.6.3)

Looks like it's in 4.1+.

~~~
AceJohnny2
I-- it... what??

I really haven't been paying attention O_O

------
geff82
I have a lot of sympathy for the BSDs. I actually learned Unix with NetBSD in
2004. Problem with BSD nowadays, at least for me, is that all supported
desktop hardware is really old. The newest, still available, Laptop that works
is the Lenovo X240 (and other x40s....). And when everything works, like on my
Samsung NP530, there is strange stuff like a super slow and unreliable Wi-Fi
connection. So if you want a great OOTB development experience with the same,
working, OS on Desktop and server, Linux is the way to go...

But I cannot help and sometimes try the BSD stuff out, as it feels like "my
parents home".

~~~
aaron-lebo
The lead dev of Dragonfly worked to get it working on:

[https://www.amazon.com/Acer-C720-Chromebook-11-6-Inch-4GB/dp...](https://www.amazon.com/Acer-C720-Chromebook-11-6-Inch-4GB/dp/B00FNPD1OY)

That's a sub-$200 Intel Haswell machine. It also means Dragonfly (as well as
the other BSDs) work fine on similar hardware.

Similarly, you can put together a modern sub-$300 desktop that will run it
just fine.

Also see:

[http://lists.dragonflybsd.org/pipermail/commits/2016-May/500...](http://lists.dragonflybsd.org/pipermail/commits/2016-May/500352.html)

------
madmax96
I use FreeBSD on the Desktop. It took me a bit to set up my system, so I keep
lots of backups. I've been exploring the idea of building an image that
contains all the stuff I use.

I find that FreeBSD is generally a lot simpler and more discoverable than Gnu
+ Linux. If you want a bare-bones UNIX experience free from SystemD and Pulse
Audio, I'd recommend giving FreeBSD a try. The FreeBSD handbook is very nicely
written, and at the very least using FreeBSD is an educational experience.

------
joeyrobert
I remember checking out [http://over-yonder.net/](http://over-yonder.net/)
after being linked from Slashdot circa 2006. I always have a soft spot for the
"Homepage" link on Slashdot. I was impressed with his resume generator at the
time: [https://www.over-yonder.net/~fullermd/resume](https://www.over-
yonder.net/~fullermd/resume)

------
torgoguys
A check of the wayback machine indicates this was first posted back in October
2010. Mods might want to tag it as such since some of the information is
dated.

------
caf
I'm not sure I see the distinction between the "FreeBSD's version of tcpdump"
and, say, "Debian's version of tcpdump" (
[http://sources.debian.net/patches/tcpdump/4.6.2-5%2Bdeb8u1/](http://sources.debian.net/patches/tcpdump/4.6.2-5%2Bdeb8u1/)
)?

------
known
Linus Torvalds is benevolent dictator for Linux kernel; He is very rigid on
what piece of code goes to kernel space or user space;

------
Scarbutt
Linux is Python, FreeBSD is Scheme ;)

~~~
Apocryphon
What's Solaris, then?

~~~
jen20
Rust - lesser understood and known but has incredible power...

------
waldir
> Darwin is closer to a standard BSD feel, but most of its userbase is people
> who came from BSD, so it’s a bit outside the scope of this essay as well.

I'm confused by this sentence. Did you perhaps mean "people who came from OS
X"?

------
joseluisq
Actually I try FreeBSD as Web Server in a single core VPS (development
purposes) and I'm happy with performance and stuff. But my default workstation
is Linux in this case Fedora 24 (a RH based) with Gnome 3.x

------
geff82
I love BSDs for their pureness. You feel connected to the machine.

------
mac01021
This seems like it was written a decade or so ago. I don't know how much of
this has changed in that time.

It's well written and informative, though.

------
JepZ
Some call it chaos, others call it 'Freedom of Choice'.

------
smegel
BSD has a wonderful, unified events system. That incorporates blocking disk
IO. Linux has epoll.

[https://www.nginx.com/blog/why-netflix-chose-nginx-as-the-
he...](https://www.nginx.com/blog/why-netflix-chose-nginx-as-the-heart-of-its-
cdn/)

~~~
PeCaN
BSD and Solaris (which also has kqueue, and something else IIRC) got this
really right while Linux got this _really_ wrong.

I still prefer NT's IOCP, but kqueue isn't bad. epoll… is what happens when
you get someone who's never done asynchronous I/O to design a system for doing
asynchronous I/O.

~~~
aseipp
Solaris has its own form of completion ports too, I believe.
[https://web.archive.org/web/20110719052845/http://developers...](https://web.archive.org/web/20110719052845/http://developers.sun.com/solaris/articles/event_completion.html)

NT's IOCP is good, sensible model overall having used it some recently. It's
mildly put off by some "gotchas" (like async calls occasionally returning
synchronously if there's nothing else on the queue, so you have to be careful
with send, recv, etc), but the actual design is good. Thread pools being a
convenient, native API in Vista+ is also a bonus.

------
vacri
Previous discussions:

[https://news.ycombinator.com/item?id=1942778](https://news.ycombinator.com/item?id=1942778)

[https://news.ycombinator.com/item?id=4374865](https://news.ycombinator.com/item?id=4374865)

------
andrewclunn
Must... resist... clickbait title... I'm not strong enough!

~~~
Anthony-G
Given my very limited knowledge of BSD, it comes across as informative and
well-balanced. Its HTML title, _BSD For Linux Users_ is more descriptive than
its first-level heading.

------
behnamoh
Something I don't understand about FreeBSD is why they use the evil daemon for
the logo? Whatever story behind it, I just think there are many other
alternatives they could use as the logo.

~~~
code_research
It is a satanic cult. All these free software people are unpatriotic, satanic
terrorists.

~~~
groovy2shoes
And communists! Don't forget communists!

------
idobai
> I like FreeBSD, and I use it as a server OS and on a NAS box but you only
> need look at
> [https://wiki.freebsd.org/Graphics](https://wiki.freebsd.org/Graphics) to
> understand that if the "Linux Desktop" is a joke compared to MacOS and
> Windows then the "FreeBSD Desktop" is even more so.

I've never heard anything good about the "MacOS desktop" and I'm pretty sure
that the "windows desktop" is far behind the "linux desktop"(plugins,
performance, menus etc.). Have you tried something else than xfce or unity?

~~~
brulard
I've never heard the opposite. I've switched to OsX 4 years ago after being
completely unhappy and irritated with Windows for over 12 years. Now after
months of using Ubuntu (unity, xfce) and Mint (Cinnamon) I'm convinced that
OsX is best for average (and power) desktop user by a huge margin. Although I
would be much more happy with something Open Source.

~~~
rayiner
I used Linux on the desktop from 2001-2007 or so. Switched to OS X until then.
It's no contest: OS X is smoother, more consistent, and lower maintenance.
Linux desktops seem to have peaked with GNOME 2.x. I'm not even sure what's
going on with Unity.

~~~
idobai
> Linux desktops seem to have peaked with GNOME 2.x. I'm not even sure what's
> going on with Unity.

Gnome 2.x is a dead-end - it was buggy and ugly. Gnome 3.x is far better.
Unity is just another canonical-outrage.

~~~
AnonymousPlanet
Would you mind explaining what you mean by outrage? For productivity, Unity
beats any Gnome 3 setup I've tried so far. And we're still not talking about
the maintenance/security nightmare that is the Gnome 3 plugin system.

~~~
idobai
By "outrage" I've meant canonical has developed it because they didn't like
gnome shell(they like the innovation-thing).

> For productivity, Unity beats any Gnome 3 setup I've tried so far.

Unity has problems with multiple monitors, consumes more RAM and CPU and is
also hard to customize.

> And we're still not talking about the maintenance/security nightmare that is
> the Gnome 3 plugin system.

But we should talk about it if we're here...

~~~
AnonymousPlanet
> By "outrage" I've meant canonical has developed it because they didn't like
> gnome shell(they like the innovation-thing).

After watching the "we're the only ones who know best, so shut up"-antics of
the Gnome developers, I can understand that canonical got cold feet.

> Unity has problems with multiple monitors, consumes more RAM and CPU and is
> also hard to customize.

In my experience, setting up multiple monitors was much less of a hassle under
Unity than under Gnome. I don't have any recent data on the resources use, but
I wouldn't run either Unity or Gnome on a low memory setup. Firefox and Chrome
dwarf any RAM use for compositing anyway.

>But we should talk about it if we're here...

Ok, gladly. In Gnome 3, a lot of functionality comes from extensions. Even
changing the theme (from a _black_ top panel) needs an extension. Installing
extensions is done over the web using your browser (this works to a varying
degree out of the box). I don't know of any recent changes, but about a year
ago I had a look under the hood, because I wanted to make my own extensions,
and was shocked by how they work.

First of all, there seems to be pretty much no integrity checks, signing,
hashing to prevent malicious extensions. That's pretty much a no-go if you
want to use Gnome in any kind of industrial setting (you will have to maintain
them offline and manually on the file system level, sidestepping the supported
way).

My second gripe is the stability of extensions. Since you're downloading from
a website, the currently offered may not fully support your slightly outdated
Gnome install. However, if you keep your Gnome up to date, expect random
failures of your extensions.

From [http://lwn.net/Articles/460037/](http://lwn.net/Articles/460037/) about
the reasoning behind sidestepping distro packaging (emphasis mine): "The
second reason is that extensions are not working with a stable API, so have
very specific version requirements that don't really fit into the normal
assumptions packaging systems make. If a packaged extension says it works with
GNOME Shell 3.2 only and not with GNOME Shell 3.4, then that will likely break
the user's attempt to upgrade to the next version of their distribution. _We
'd rather just disable the extension and let the user find a new version when
it becomes available._"

So, you just updated your Gnome and your productivity extensions fail. Now you
have to search replacements and, should you find them, configure them anew.
Sometimes extensions just randomly fail. This was the main reason I finally
gave up on using Gnome for work.

And speaking of stable APIs: another shock was to see that extensions don't
operate against a plugin API but are basically Javascript code smudged into
the existing running code. This makes gauging the effects one extension has on
another pretty much impossible.

My final conclusion regarding Gnome 3 was that it is a wobbly work in
progress, less configurable than Compiz (there just aren't that much
extensions to choose from in the end), based on questionable design principles
and taste. It's okay for hobby use, I guess. But I have yet to find a distro
that provides an as polished DE setup with Gnome as Ubuntu does with Unity.

Don't get me wrong, I _want_ Gnome to be great, since many distros use it as
default DE and I want an alternative if Canonical mucks up Unity with their
Mir transition and their focus on smart phones. There's also Cinnamon wich I
kind of like, but it has the same problems regarding extensions as Gnome. I
will give KDE a closer look in the future.

~~~
zeveb
> After watching the "we're the only ones who know best, so shut up"-antics of
> the Gnome developers, I can understand that canonical got cold feet.

If only we could exile the GNOME devs, Canonical & the systemd devs to a
desert island, the state of the Linux desktop would be … well, probably not as
good but at least it'd be a much more collegial community.

To get back to the original topic: the attitudes of the GNOME devs, Canonical
& the systemd devs reminds me of that of the OpenBSD devs, with the exception
that the OpenBSD guys are generally _right_ , just socially inept in how they
convey their message.

~~~
AnonymousPlanet
> If only we could exile the GNOME devs, Canonical & the systemd devs to a
> desert island, the state of the Linux desktop would be … well, probably not
> as good but at least it'd be a much more collegial community.

I wouldn't judge them that harshly, but the kerfuffles had the effect of
splitting the Linux community into those who embrace progress and those who
shun it. Sadly, most of the experienced went the latter way because the
progressive path was full of cranks.

> To get back to the original topic: the attitudes of the GNOME devs,
> Canonical & the systemd devs reminds me of that of the OpenBSD devs, with
> the exception that the OpenBSD guys are generally right, just socially inept
> in how they convey their message.

Most of this, in my experience, comes from sticking to a very strong opinion
that is heavily based on ideals. The further apart from the real and existing
world these ideals are, the more caution should be taken when implementing
them. Otherwise you _will_ be placing a huge turd on someone's desk. During
work hours. On a deadline.

I think this is the main problem with the attitude that the Gnome and systemd
devs have. The Canonical devs took their ideals at least closer from a working
model (OS X) and they were (I assume) motivated by pragmatism.

The OpenBSD devs base their ideals probably closer to their own experience.
That makes it more likely to be right.

------
digi_owl
And the hipsters are out in force...

