I don't pretend to understand the intricacies of the caompatibility layer - but yes, FreeBSD bill it as not an emulator.
My limited understanding is that the kernel module intercepts and rewrites system calls as required.
I've had reports from users that their linux only binaries / programs run faster or with less fuss than under 'true' linux.
However there are reports on the freebsd mailing lists of some things not working - so it isn't a golden bullet. It is, however, pain free to set up and completely transparent.
Some things to note :
- It requires the kernel module to be loaded
- You need to install the linux compatibility package which basically puts a skeleton fedora install into /opt/compat
- It presents itself as a 2.4 based system. I believe the version shipping with FreeBSD -CURRENT (7) will present as 2.6
As for your 64 bit query, I don't *think* so. Here is the blurb from the package :
Information for linux_base-fc-4_10:
Base set of packages needed in Linux mode (for i386/amd64)
This port contains packages from a near-minimal installation of Fedora Core
Linux 4. These packages, in conjunction with the linux kernel module,
form the basis of the Linux compatibility environment. It is designed to
provide a nice user experience by using the FreeBSD configuration for
corresponding Linux stuff where possible. Because of this any work which
needs to chroot into the linux base may not work as expected (no fallthrough
to the FreeBSD config possible).
This port is only available for the i386/amd64 architecture (i386/32 bit mode).
If you want to run X11 applications, install the x11/linux-xorg-libs port.
For cross-development this port is not suitable, you should use a linux_dist
port instead in this case.
Which seems to imply 32 bit only I'm afraid.
However you should check for information on 7 which may address this (above info from a 6.2 system)