35
votes

I've used Ubuntu on and off since Warty Warthog. I was thinking about installing Jaunty soon; but I noticed that over the weekend NetBSD 5.0, Dragonfly BSD 2.2.1, OpenBSD 4.5, and FreeBSD 7.2 have all been released, so I got curious:

What is good about the BSDs? Why should or shouldn't I install one of them instead of Ubuntu? What are their main selling points? Performance? Stability? Hardware compatibility? Ease-of-use? Security? Do they run well on older hardware? What is it?

Edit: This is from the point of view of a (primarily Java) desktop developer, but I'd be interested to know what are the pros and cons for others also. Are they targeted more for servers? For corporate users? Or what?

7
  • 1
    Are the good points of BSDs subjective? If so, that explains why I don't personally know anyone who's tried one. :D
    – mmyers
    May 6, 2009 at 13:10
  • 17
    What is good about the BSDs? To crush your enemies, see them driven before you, and hear the lamentation of their women.
    – chaos
    May 6, 2009 at 18:58
  • 1
    @mmyers - have any of your friends ever used Hotmail or Yahoo? Jun 10, 2009 at 13:43
  • Um, a few. Why?
    – mmyers
    Jun 11, 2009 at 12:21
  • 1
    @mmeyers - because both Hotmail and Yahoo use FreeBSD as their main server O/S for their web apps. (Or at least Hotmail used to use it and they couldn't move it off FreeBSD to Windows for years - I'm not sure if they still do). Jun 17, 2009 at 17:54

12 Answers 12

65
votes

Advantages of BSDs

The *BSD family of systems has (IMHO) a few key advantages over Linux, particularly for a server O/S.

  • Simplicity and Control: None of the *BSD distributions have the imperative to add features that the Linux distributors exhibit. Thus, the default install of most BSD derived systems is relatively simple.

  • Stability: Partially driven by the simplicity, BSDs tend to be amongst the most stable O/S platforms around. FreeBSD (which is one of the older of the 'modern' BSDs) powers many well known .coms such as Yahoo and (at one point) hotmail. In fact, at one point Microsoft suffered quite a lot of embarassment over their inability to migrate Hotmail off FreeBSD to Windows.

  • Security: OpenBSD in particular has a very strong track record of security and much of their work rubs off on the *BSD community in general.

  • Portability: NetBSD in particular has ports to dozens of platforms and is notable for being very easy to port.

Some weaknesses

  • Less support for large SMP configurations than Linux. This will become more of an issue as boxes with large numbers of cores becore widespread. However, most of the network service applications that are really BSD's home turf are not all that CPU hungry (1).

    SMP performance on BSD kernels has improved substantially over the past decade. Improving SMP performance was one of the main goals of Dragonfly BSD and the FreeBSD SMPNg project has substantially improved SMP performance on that platform, outperforming Linux on 8-core platforms. This means that one can expect to get good performance on mainstream 2 and 4 socket servers.

    Some debate and early work on providing NUMA support on FreeBSD exists as the system does not currently support APIs for memory allocation, affinity management or other facilities for explicit NUMA support. A good primer on NUMA support can be found here.

  • Smaller range of hardware support than Linux: In practice, this really only means that you need to check components on a hardware compatibility list. For a server this is a non-issue in most cases but installing on a random desktop PC this is a bit thornier. You still have to do a component-by-component check if you want a machine to install BSD on, which is less likely to be the case with Linux.

  • Less emphasis on the desktop: Desktop distributions of Linux (such as Ubuntu) tend to have richer desktop support for multimedia, emulation and bundled applications. While many such applications do have ports onto the various BSD platforms the out-of-the-box support from a desktop Linux distribution will typically be rather better.

  • Some gaps in software: Quite a lot of commercial Linux software does not have a BSD port. For example, none of the major JVM suppliers maintain a native port of their java runtime for any of the BSD platforms. In some cases third parties maintain ports but there is no official support for (for example) Oracle on any of the BSDs. This type of gap pops up in some places on BSD; BSD may not be the platform for you if you work in a space where this type of gap exists.

Some salient points

  • One of the great religious wars of the '90s was GPL vs. BSD. BSDs are licensed under the BSD licence, which comes with a different set of rights than the GPL. Essentially the BSD licence does not require you to redistribute source code of modified versions of BSD licensed software.

  • Commercial vendors such as Oracle do not support BSD to anything like the degree that they support Linux. Therefore, if you want to work with such a product you are probably better off with Linux. However, most offer binary compatibility across Linux, System V, Solaris etc, so you can often run binaries for another O/S.

  • BSD communities tend to be run differently to Linux and are often smaller (although no more genteel in many cases - Theo De Raadt has something of a reputation as a potty-mouth).

  • Some of the BSD variants are niche-market items, optimised for specific goals. For example, OpenBSD is specifically optimised for providing secure network infrastructure on internet-facing computers, with a very large amount of effort going into inspection for security holes like buffer overrun vulnerabilities. Many security conscious organisations use it for precisely this reason. NetBSD is designed for portability with ports to dozens of platforms and is quite widely used in embedded systems. For applications in the sweet spot of one of these systems it may well be the best choice of platform.

The home turf of *BSD is in network services - email and web servers, infrastructure and suchlike. You can set up a perfectly good geek desktop with any of the BSDs, and could in theory produce something as warm and fluffy as Ubuntu. However, this is not the core focus of most of the BSD products, although some such as PC-BSD do aim to provide desktop systems.

If you want to make a trad unix geek desktop BSD will do this just as well as any other unix-oid system.

  1. For example, back in the VAX/4.2BSD era of the 1980s a machine like a VAX-11/750 could provide email servce to an entire department or university campus, and would probably be doing other work as well (although one should note that most emails were text only and attachments weren't so prevalent as today - disk drives used on this machine typically ranged from 120-450MB capacity). A modern server has 3-4 orders of magnitude more CPU power and memory and a disk subsystem with maybe 2 orders of magnitude more throughput and 3-4 orders of magnitude more space.
9
  • 9
    Particularly good pairing: OpenBSD and BIND. If I was running a public DNS Server it would be BIND on OpenBSD. DNS servers get attacked a lot and OpenBSD is probably the most secure general-purpose unix. May 6, 2009 at 16:12
  • 2
    Fantastic answer. Two aspects I would add: BSD is smaller than Linux (so can run in smaller environments), and is better documented (every command in FreeBSD has a man page - every one!)
    – Mei
    Jun 17, 2009 at 23:57
  • 3
    I've heard say that BSD was what you'd get if you asked a Unix programmer to write a PC OS, whereas Linux is what you'd get if you asked a Windows programmer to write a Unix OS.
    – gbjbaanb
    Jul 1, 2009 at 12:45
  • 1
    Great answer! When I've been trying various OSes, it was linux like mangrova marsh (out of date incomplete documentation, many various inconsistent philosophies) and when I tried FreeBSD, it was like coming into a library - ordered, single consistent philosopy, everything documented (up to date!). Maybe less exciting, but certainly easy to go into.
    – slovon
    Sep 4, 2009 at 13:54
  • 3
    I don't think it is right to refer to Theo as being a potty-mouth. He does have strong opinions and he is not diplomatic about them, but he doesn't swear. The most annoying thing about Theo De Raadt is that he either has a good point or he's right :-P
    – DutchUncle
    Jan 20, 2011 at 1:31
15
votes

I don't consider BSD to be quite as mature as Linux on the Desktop but for servers it's rock solid.

Whether you want to install BSD or not depends entirely on what you use your machine for. While many things are similar to Linux many things are different too.

However here is a run down of the different BSDs

  • OpenBSD : One if it's mail goals is to be the most secure OS (and it probably is)

  • NetBSD : It's motto is "Of course it'll run NetBSD". This has to be one of the most portable operating systems around. Many people run it on desktops too.

  • FreeBSD : Very popular for servers although again many people run it on the desktop too. Probably the most popular of all the BSDs

  • DragonFly BSD : A relative new comer (2003), it was a fork of FreeBSD 4.8. I've not used it myself but apparently is stable.

1
  • 5
    The BSD's are amongst the most mature architectures out there - parts of the 4.xBSD code base are older than many Serverfault posters. You can easily make a traditional unix geek desktop based on a BSD. However most don't attempt to produce a consumer or business desktop in the way that Canonical has with Ubuntu. Blah blah young whippersnappers ... ;-} May 12, 2009 at 10:41
11
votes

In the Linux world, distributions tend to be lacking in that... cohesive feeling. They are often built in a decentralized manner, which tends to lead to this.

The BSDs are usually managed by one person, so you get the feeling that each variant is an actual product that had a lot of planning behind it. Things work together very well, and all components are very well documented. You rarely find kludges.

This lays a very solid foundation, making the BSDs an easy to maintain platform, therefore having the potential to lead to a more secure and manageable environment.

I've been a Linux user for 13 years now, and while I still consider it a viable platform, I have moved all of my production and personal servers to the BSDs for the reasons mentioned above.

However, Linux still might be the better choice for the desktop due to its bleeding edge driver support.

3
  • 1
    Actually if you want bleeding edge desktop support, best option is to run either BSD or Linux in VirtualBox on Windows ;-)
    – vartec
    May 6, 2009 at 15:07
  • @OP, this is the most compelling reason to switch from [linux distro] to *bsd Jun 15, 2009 at 12:03
  • 1
    Or go to a one-man-on-the-top distro like Slackware ;)
    – voyager
    Jun 19, 2009 at 11:02
9
votes

BSD is generally considered secure by default, by disabling all but the core services. It's also very stable, you can tell this by looking at one of the many uptime monitoring services.

Be warned however, that Linux isn't the same as BSD...there is a learning curve, so don't expect to jump straight into it. For example you'll find all the core commands, such as ls have different flags which can be confusing at first and can take a while to break an old habit of using Linux flags.

8
votes

*BSD is a complete OS, meaning the kernel and the userland is developed from the same source tree, whereas Linux distributions are butchered together from various sources. This is why BSD systems feel much more cohesive and solid. Also better documented.

8
votes

Just a few issues:

Pro (Free)BSD:

  • ZFS filesystem/volume management
  • Dtrace for tracing/analysis
  • Excellent and easy to find documentation (FreeBSD Handbook, OpenBSD FAQ, Manual pages are really good and do actually have useful examples)
  • Clean and rock solid OS release upgrade process
  • Separation of the core OS from other software ("Ports collection")
  • BSD license (no licensing crusaders here)
  • Great firewall/packet filter: PF (Linux iptables makes my head explode)

Contra BSD:

  • Virtualization (VM host) products not supported (VMware, KVM, Xen, VirtualBox)
1
8
votes

I really like /usr/ports. This isn't to say that I don't also really like apt-get, but it's a pleasing feeling to know that your installs are being built on and for your particular machine, with any optimizations you felt like throwing into the makefile defaults.

How much of the perceived benefit of that is superstition, I haven't done the research to find out, but I like it. :)

2
  • 1
    So it's sort of like Gentoo? That sounds like it might get tedious after a while (which is one reason I've never tried Gentoo).
    – mmyers
    May 6, 2009 at 20:16
  • 6
    Gentoo's "portage" comes from BSD, as do other things. However, most BSDs also have binary packages available in addition. OpenBSD, for instance, has both ports and packages. In fact, they're actually the same thing.
    – dwc
    May 20, 2009 at 19:25
7
votes

As a Java developer, the big gotcha is there is no mainstream JVM for *BSD. Before everyone flames me out of existence, what I mean is, there is no current shipping JDK from Sun or any of the other major vendors (IBM, BEA/Oracle) so you will always be playing second fiddle to linux and window users.

4
  • That's useful to know. Is anyone porting OpenJDK or something?
    – mmyers
    May 6, 2009 at 20:17
  • Yes, check out openjdk.java.net/projects/bsd-port. However this port is not done and is unlikely to be commercially supported. Working for a Java based software company we support the Sun JVM, and Bea and JRocket begrudgingly. There is no way we could extend support resources to help someone who wanted to run our software on IceTea, or Blackdown, or GCJ, etc May 10, 2009 at 8:41
  • Yes, I see what you mean. (By the way, you left the out the "no" in your first sentence. :)
    – mmyers
    May 11, 2009 at 21:08
  • Just saw this "OpenJDK BSD port progress" post: robilad.livejournal.com/49303.html .
    – mmyers
    May 20, 2009 at 13:48
5
votes

Licensing

The main difference between the BSDs and Linux is the licensing.

You can take a BSD code base, make whatever changes you want to it, and distribute the resulting binary, sell it, etc, without opening the source code changes you made.

This is very attractive for companies, such as Apple, where legal obligations to their stockholders may require them to keep proprietary IP 'safe'. Apple based some of its kernel on FreeBSD, for instance.

Tivo wouldnt' have had the (minor) licensing issues it suffered years ago if they built on top of BSD rather than Linux.

Some practical differences

  • The BSDs aren't as popular as Linux, and so don't have drivers for bleeding edge hardware.
  • There are fewer BSDs than Linux distributions, and they are very well defined so you know, generally, when you should use one over another.
  • They all focus more on stability than many other factors, and thus are often used in high reliability situations.

-Adam

3
  • 1
    +1. The benchmarking truth is that bsds are not as good performers and still lack many kernel features that linux and solaris already have. The bsd license is the best(or worst) part about bsd. May 19, 2009 at 13:58
  • Nice thing about benchmarks is that there are so many to choose from. For networking/filtering tasks, I've used BSD with better results than Linux--- for numerical modeling, I've used Linux or Solaris with the Sun Studio compiler suite.... it's all a matter of figuring out what's the best tool for the job.
    – Bill B
    Jun 9, 2009 at 20:38
  • 4
    It would be nice to see some proof of this statement: "The benchmarking truth is that bsds are not as good performers..." Jun 11, 2009 at 12:20
1
vote

Security, security and one more time security.

1
vote

Besides everything already mentioned I'd like to add that the documentation is very good. The man(1) pages are excellent!

0
votes

BSD (Berkeley Software Distribution) known by their stability: FreeBSD,
security: OpenBSD
and support of a multitude of platform: NetBSD

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .