Isn't FreeBSD binary compatible with Linux though?
Yep, most linux binaries will work on FreeBSD systems, due to an emulation layer that the dynamic object loader uses to start binaries. (FreeBSD and Linux both use the same API/ABI, but different kernel interfaces, the emulation provides a dymanic remap of the kernel interface, so even apps that talk directly to the kernel work fine).
This is possible, due to the ELF object format supporting a OS/System field. the object loader on FreeBSD reads this field and can setup an emulation layer for those binaries marked as "linux".
Last time I read, this also works for SYSV marked binaries as well. (eg some x86 Solaris/HP-UX/AIX binaries).
FreeBSD jails (like Zones on Solaris) are also a nice touch as well, far better than just a chroot environment, without going to a full VM environment.
A few things are still lacking like are user roles and role based security. Where you can elevate a users permissions to perform certain functions as well, such as being able to mount cd-roms/dvd-roms, tape management, user management, power management, package management without giving them 'root' access.
Another item lacking (which may have been added recently, not too sure) is dynamic memory relocation for shared object files. (
http://en.wikipedia.org/wiki/Address_space_layout_randomization ). OpenBSD was the first to implement, with MS implementing it for Vista/2008 +. Apple has some support for this in OSX 10.5.
But I will admit, a FreeBSD box is a harder target to hit than your average Ubuntu box, when looking at it from an 'out-of-box' experience.