Hacker News new | ask | show | jobs
by pkandathil 4949 days ago
Why is FreeBSD such a big deal? What advantages does it have over Ubuntu?
6 comments

Some of the common answers to that question are clang/llvm, ZFS, DTrace, pf, superpages, geom, journalled softupdates, and capsicum.
Don't forget kqueue/libdispatch. Yes, with epoll and friends you can essentially reproduce kqueue's functionality, but there are some really interesting things you can do when all that functionality is available in one place and you have a library like libdispatch written on top of it.
Right, libdispatch is a OSXism which I've never used because I like to write portable code. -- but if you know that your code is always going to run on systems which support it, it's definitely something which can be useful.
Incidentally, some of these things work on Ubuntu: superpages, zfs, and clang. & I wouldn't call Journalled Softupdates an advantage, more of a catch-up to the various journalled filesystems supported by Linux.
Journalled softupdates is much better than mere journalling.

I don't know what the current state of ZFS on Linux is, but last time I looked it was done with a very fragile FUSE setup.

I remember hearing rants from FreeBSD VM people about how Linux did superpages wrong, but I don't know any of the details there.

Actually there is a native ZFS port for linux: http://zfsonlinux.org/

The license doesn't allow to distribute a binary build of it, but you can build your own rpm and deb packages and install it to your own servers.

(According to their FAQ: "In a nutshell [...] This means that a single derived work of the Linux kernel and ZFS cannot be legally distributed."

Honestly, besides some quick tests I don't have any experience to judge how stable it is, but definitely better than the fragile fuse setup you are mentioning.

Anyone has more experience with it?

I found softupdates to be superior to traditional journaled filesystems for boot filesystem - BIOS can't replay the journal, but softupdates provide always consistent fs state on disk, so kernel and modules can be loaded and booted. Only leaks of free blocks need to be fixed with background fsck if filesystem is dirty.
Not a real FreeBSD user myself, but I've heard that it has good/complete documentation[1], a solid foundation that doesn't change too often and a nicer firewall than Linux's iptables[2]. Also, it's not really an advantage per se, just interesting, but Mac OS X's kernel is half-derived from FreeBSD's[3].

[1] http://www.freebsd.org/doc/handbook/

[2] http://www.freebsd.org/doc/handbook/firewalls-pf.html

[3] http://en.wikipedia.org/wiki/XNU#BSD

Edit: cperciva has more/better examples.

I have tons of experience with FreeBSD in an enterprise environment and can say hands down that pf is the best firewall money can't buy. That said, Red Hat has largely replaced FreeBSD for a lot of CIOs over the last 10 years. I really think startups should launch on CentOS instead of Ubuntu which seems to be the trend.
There is a reason for that trend - Ubuntu LTS on the server takes less time to set up and manage than Red Hat/CentOS. Red Hat of course now does 10-year support for its releases as well as excellent security out of the box (10-year support is especially appealing to me as a system admin) but the ease of Ubuntu LTS upgrades and more frequent releases (i.e. up-to-date software) combined with the admin friendliness make for a more compelling business case.
The problem with Ubuntu is that if you ever move from the cloud to dedicated hardware, you will be in for a world of pain. None of the Tier-1 hardware vendors officially support Ubuntu, which makes it very difficult to perform firmware upgrades without custom solutions, or obtain diagnostic/monitoring software. We couldn't even get Ubuntu 12.04 to work _at all_ on our new Dell 12th-generation (Ivy Bridge) servers for several months after release. EL 6, on the other hand, was totally supported.

I hope that the availability of official CentOS AMIs will incent startups to think ahead and use it instead of Ubuntu, otherwise they could become a victim of their own success.

Another thing that's great about Red Hat and its clones is that they guarantee backward compatibility across minor releases (e.g. 6.0 -> 6.3), and ensure that if you deploy a given release it will be identical across all nodes. Contrast with Ubuntu, where an installation of a given LTS release (with "-updates") could vary depending on the day you deploy it.

Speaking as a Linux user/developer who hasn't touched any BSD in a long, long time, I can perfectly understand why many people would prefer FreeBSD. Not dissing on Linux (it's still my personal favorite, and Debian is my goto for everything), but it's always good to have choices; to each their own. From what I understand, whilst Linux has the drivers and software, most server setups could be easily swapped out for FreeBSD (drivers are usually not problems on servers, and most server software you'd want to run is open source and already ported and packaged), plus FreeBSD has some things still not in Linux that a smart admin could use to give their startup an edge.
None, Linux is better on almost every aspects, I don't see a real IT company using BSD over Linux. Linux is faster and support way more software / hardware. BSD was equal to Linux years ago, but Linux grew up much faster due to his large community and support from the industry.
FreeBSD has a simple and consistent upgrade path between major releases, excellent stability, excellent hardware support (on the server side, at least; that's where it matters to me personally), a magnificent packaging and ports system, excellent documentation, an excellent firewall stack (pf), a proper ZFS implementation, a powerful and easy-to-manage jails system, and is used in plenty of corporations, large and small, both as a conventional server platform and as a base for commercial products.

It is a well-curated shop, while GNU/Linux is a street bazaar.

It is a pleasure to administer.

You might want to take a closer look.