In terms of specific features, jails and ZFS are the ones that immediately come to mind. But if you want features FreeBSD is probably not the system for you; it's built with stability as a higher priority.
pmount and udev are both simple pieces of software that automate away common tasks. I don't understand all the hate.
If I only have to do it once it's no biggie. Do you want to have to rummage around in /dev to see which new name your DVD writer has been given today? I suspect that specific udev bug has been fixed by now, but I still don't feel confident that I can reboot a linux system and have my device nodes be the same ones they were before, even though I haven't plugged anything new into the USB ports since 2009.
>Do you really want to edit /etc/fstab to mount a flash drive?
I should've been clearer; if you set it to allow user-level mounting then FreeBSD will let one simply use the regular "mount" command with its ordinary arguments to mount a flash drive. No need for a new command with a new name.
I'm sorry to hear that? udev lets you match devices by their serial number, so there's no reason why device symlinks should be moving around on you unless you've written overly-general rules. (Expecting something like /dev/ttyUSB0 to point to a particular device is rather optimistic, of course, which is why you write a rule to make that /dev/avr_programmer or something.)
And then the rule format changes, or something. Point is I've never had a problem finding a device without udev; I don't generally hotplug things into my desktop. The exception would be flash drives, but the first one plugged in becomes da0, the next one becomes da1... it's never been an issue for me because my only use cases are "leave this drive plugged in all the time and mount it in fstab", in which case it has a stable device node in practice if not in theory, and "mount a friend's drive that I will most likely never connect again"... anyway. My experience is that for a system with the same set of devices plugged into it, multiple boots will reliably give each device the same /dev node on a non-udev system.
The core system installs in couple of minutes and runs well on even the crappiest hardware.
There is not WTF stuff associated with runlevels (there are no runlevels).
You can find and install software by navigating a certain directory in the system and typing in one standard command. Great for feature discovery.
FreeBSD has the best documentation among all the software I have ever used: the Handbook, the help screens in the installer, the security emails, the upgrade notes.
I have used it as a desktop OS for a few years, and it was definitely a learning experience for me. It was a great one though, because the experience helped me land my first job right out of college in a shop that extensively uses FreeBSD.
But TBH, you should probably just use it for servers ;)
You may have trouble with flash, but didn't you get the memo? Flash is dying. :)
The handbook is brilliant, FreeBSD is the first non-windows OS I've ever installed. Back then I didn't have an internet connection and did everything with the Handbook alone.
Compared to ubuntu (or really most linux distros, or even PCBSD) it's of course much more complicated, but I really understood what I was doing and how stuff worked.
If you really want to understand how a un*x system works, I really recommand that you give it a try (I've heard similar testimonies from people installing Slackware as well, but FreeBSD's handbook is really stellar).
Beyond that, of course it's not Linux so the hardware support is sometimes sub-par, so I use Linux on the desktop these days. It's still my OS of choice for my servers tho and I wouldn't trade it for anything else.
Linux has competing technologies such as btrfs and SystemTap, but they may not be as mature.