Up close and personal with FreeBSD

The discerning readers out there may have noticed that I’m becoming disenchanted with Linux — so much so that I’m migrating, slowly, to FreeBSD. Why am I doing this? It really boils down to being a UNIXy type. Linux used to be quite UNIXy, but things are changing. Systemd in particular is changing things, but a look at FreeBSD immediately showed me that the Linux world is moving away from UNIX in many other regards too.

The FreeBSD installer was pretty easy to manage. I came from Slackare via ArchLinux, so I’m not at all worried about messing about with the commandline and ncurses software. I’m totally impressed about the differentiation between the FreeBSD operating system and additional packages installed after that. For one thing, it’s nice to have /etc stay manageable and have all the other configs go in /usr/local/etc. As someone who actually looks at /etc, I find that useful. Same goes for /bin and /usr/bin versus /usr/local/bin.

However, I really started paying attention when looking at the documentation. FreeBSD actually has a design! That design involves staying true to its UNIX roots. When something cool and new comes along, FreeBSD doesn’t just shove it in somewhere. It gets thought through and added in an appropriate way.

One example is encrypted disk partitions. I was investigating how to do this on ArchLinux, and of course there are about 5 different options, each with varying levels of kernel and other support, different capabilities and so on. I wasn’t quite sure how to proceed. In FreeBSD, the obvious method is built right into the kernel, and takes all of two commands to set up.

Another example is the init system. ArchLinux used to have a BSD-based rc.conf for setting up the system, starting services, and so on. It was pretty stupid, without any dependency checking or anything. Then systemd came along and ArchLinux jumped right on board. Systemd does solve a lot of problems, but it also brings massive amounts of change. FreeBSD’s rc.conf, on the other hand, isn’t followed blindly. It gets sanity checked. The service system knows about dependencies, so you can’t just shoot yourself in the foot by starting network services before the network interfaces are up, for example.

I’ll be documenting my process of setting up FreeBSD on an EeePC. That’s my test box, as I can afford to have it half-broken while learning how to set things up to my convenience. Watch for more posts in the coming days.