Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

You will find that FreeBSD is way easier to configure manually, but you have to.

One of the biggest differences when compared to Linux distributions is that you have a base system which split from third party software. This is true for the other BSDs too. I think that's a huge point for people using one of the BSDs. The reason is that in practice it means you can have a stable and recent system. Where in Ubuntu on Debian one usually relies on third party repositories having a stable FreeBSD with the latest PostgreSQL for example is something you can decide on having. In fact that is so inherent that they have a lot of PostgreSQL versions in their ports tree which means you are not forced to use the old or the new version. However in a production environment it also means you want to use a tool like poudriere (extremely easy system to build packages and install them with the package manager on other systems. It's really easy) so in case you have a library dependency you don't get stuck. In the PostgreSQL example that would be true for PostGIS. That's actually one of the primary reasons for me using FreeBSD in production. I don't have a day or more to make PostgreSQL version X working on a system and then making that setup work with PostGIS version Y. If you have such a problem you really should have a look at FreeBSD and poudriere.

And then there are tons of small things. Packages come as intended, unmodified. pf and ipfw are (in my opinion) way nicer than iptables. jails are a nice way to abstract your system using virtualization (even though there is LXC). Sane and secure defaults are another I really like. Sometimes you want to change them for performance reasons, but most of the time it means that you don't have to worry about stuff popping up.

Then a personal experience: Updates and upgrades are nice. They always work out for me. I don't think that this is a pure FreeBSD thing, but I have used many systems where I had to be really scared about upgrades. FreeBSD isn't one of those.

It has nice tons of nice features like HAST. That is file system replication. I am not talking about ZFS here, which is also a really fine thing. If you somehow work with files, especially when it comes to high availability you should take a look at FreeBSD for both ZFS and HAST.

My biggest con until recently was performance. Linux had especially when it comes to HD access and stuff like memory mapping (something all kinds of DBs need to be performant) a standing way ahead of the BSDs. I think as of now the order for such things (based on various PostgreSQL benchmarks) is: DragonFly BSD, Linuxm FreeBSD, with DragonFly being the fastest, but all of them being so close that it mostly depends on specifics of Hardware, data set, exact DB version, etc.

Another problem you run into is that the world is often very Linuxy and it's especially at the beginning really hard to grasp that FreeBSD is not Linux. It is a separate operating system, just like FreeBSD, DragonFly, NetBSD, OpenBSD and MacOSX are all different BSDs. They simply are, so you can not really expect things to work in the same way and making things closer to something like Linux means that they will lose their strengths and disadvantages.

If you are happy with Linux then there is no reason to use FreeBSD. Neither system is magically perfect.

I mostly enjoy FreeBSD for knowing what is going on and I think that has mostly to do with people having a similar way of thinking and should there be a problem I will easily get to the right track. However as a matter of fact I know lots of experts with something like RedHat or Debian who have the same experience with those systems.

What I really want to disagree with because people always mention it is that using FreeBSD is hard. If you ever installed and configured Slackware, Arch Linux or Debian from scratch then installing any BSD will most likely be easier. However it is different. It is not like knowing Linux and trying just a new distribution, even if it at some points looks like it. OpenBSD might have a scare install procedure, but in the end it is just doing the ordinary stuff without using ncurses, GTK or whatever. It has questions like "Do you intend to use X11?" and you enter y or n. At first boot you have a nice mail in your inbox, etc. That's about as hard as it gets there. Slackware and Arch Linux can be way harder to use (I use Arch Linux on the Desktop and have been using it since its beginnings).

What is really great about the BSDs is how much they care about good official documentations, be it on their web pages, manual pages, etc. A big mistakes people sometimes make is going the usual Linux way googling for the problem they wanna solve. On the BSDs the documentation on the website will usually tell you things so you understand them. They are at a really good shape and things are rarely outdated. People really consider good documentation part of their software. There is a total lack of attitudes in the way of "I will do documentation later" or "It will be outdated soon anyway, so why care?". Community wise there is an age difference. There have been surveys on that. BSD folks tend to be older, both when it comes to users and developers. That's just a side note, because you asked for differences. Also I seem to be an exception here, because my first contact with FreeBSD was when I was 16 or so. So that's really just stats.

Sometimes stuff really is Linux specific, but it's usually only the kind of things that only work on one Linux distribution. Basically every piece of software can be found in FreeBSD ports, but if you have something that is optimized for Ubuntu for example (so basically things you find on GitHub) you might run into troubles getting in run on FreeBSD. However, you will usually also have some issues trying to run that on RedHat or Slackware then.

The most common problem I run into when using something made for Linux is shebangs that look like '#!/usr/bin/python' instead of '#!/usr/bin/env python' (FreeBSD has third party software, so everything you install as a package in /usr/local/bin). However, since I am an Arch Linux user I also run into that problem, because Python 3 is the default.

One last thing: You will most likely learn to use sysctls. FreeBSD tend to be extremely conservative about certain settings. That is good from a security point of view and from preventing servers to get into a state where you can't even connect to them anymore, but sometimes that is a hindrance for your performance. Typical example are databases again, but then if you think about PostgreSQL then you probably know their default settings are also conservative and still work fine for most people.

Taking a look at FreeBSD is really worth it, even if you end up not using it. People in the BSD community often respond something like "If you are happy with Linux why would you want to switch?". That might be related to their age, having used many tools seeing how everything has benefits and weaknesses. However, you really have to keep in mind that it is not Linux. It really is a different operating system and some things will be weird first. It's like learning a new programming language, maybe even a new paradigm. People in the BSD community don't usually try to convince everyone and they want people to understand stuff, so you will maybe have a hard time if you ask for copy&paste resolution, like on Ubuntu forums or so. That might also mean that you will end up understand the system in a more in-depth way than other systems in a really short time.

Saying one of them is better doesn't make a lot of sense anyway even in single instances, because things change so rapidly (see the LXC example). FreeBSD might suit you needs, but so might Linux and in a year or so that might have completely changed.



Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: