As mentioned previously, I was going to install FreeBSD to see how it fared compared to the FreeSBIE live CD and the various Linux distributions I’ve tried over the years. I have to say it fares reasonably well. I installed FreeBSD over a couple of days at the start of the week, and aside from simply wanting to try it, it’s useful in some small way for my project as well. A happy coincedence.
The installer is a fairly basic text-based installer which does the job very nicely. It’s not perfect, but it’s in the same league as any Linux installer. One interesting thing to note, which I was aware of prior to installation, was that in FreeBSD terminology, a disk partition is called a slice, and logical sections within that slice are themselves known as partitions. Initially thrown by this idea, I realise that it seems much cleaner. I have a 5GB parti-cough-slice which is simply where FreeBSD lives; within that slice are a number of logical partitions which keeps the relevant parts of FreeBSD’s filesystem separate. I like this a lot.
On finalising the install, I had the inevitable irritation of simply setting things up how I like them. This is an irritation I have with any operating system I install, and I accept that I have a couple of days of setup time to make the thing feel right. It’s always little things, like sorting out the mouse wheel, cutting out boot processes, getting X + a window manager running how I want it to, etc. This is all very similar to how Linux works, since we’re talking applications here, not the core of the OS itself.
I’m still feeling my way around it, and the FreeBSD handbook is proving very useful. Documentation… what a novelty!
Package management is always something I find lacking in Linux systems (Debian’s apt system is pretty much rock-solid though, and I hear good things of Gentoo’s portage). FreeBSD doesn’t do too badly here, but it’s not bullet-proof either. It employs two different forms of package management - ‘packages’, and ‘ports’. As I understand it, packages are essentially pre-compiled ports, and ports is an automated system for grabbing source for an application, patching it, compiling it, installing it, and updating the packages database as appropriate. It almost works perfectly; dependencies are dealt with by both systems, but not to the point where version numbers are taken into account. There seems to be no easy automated dependency update to ensure a newer version of an application will work. Tools are available to make sure that manual updates aren’t too painful, but it’s still a hurdle which, having gotten used to the world of apt-get, doesn’t really have to be there. Also, if you’re looking to use more up-to-date versions of software, you probably want to run the STABLE branch, rather than RELEASE (in which the packages system will look for the version of any software included in the last official RELEASE, rather than the latest version of the software in question). CURRENT is the branch most prone to breaking, but most up-to-date.
Kernel configuration is nice and simple. No dialogs, no ncurses based configurators, simply a text file with a list of options. Comment out what you don’t want, uncomment what you do want, and tell make the name of the kernel you want to compile. Easy. I haven’t ventured too far down this route, but it seems pretty workable.
Application support is as good as you’ll get in Linux. And, if you find something that’s not ported to FreeBSD but you can’t live without, there’s a Linux compatibility layer available for installation.
It’ll fall over for me on trying to play back DVDs or run any sort of hardware 3D acceleration thanks to my obscure video hardware, but I don’t see that as much of a problem. If, over the holidays, I adopt FreeBSD as my main ‘work’ operating system, I’ll always have Linux to fall back on for DVD playback.
All in all, I’m enjoying it.