linux emulation

Dick Davies rasputnik at
Thu Dec 2 13:08:42 PST 2004

* Mikko Heiskanen <mikko at> [1244 16:44]:
> I've been wondering about this some time now.
> The linux compatibility layer (kernel module + linux_base -port)
> is told to be able to run linux binaries. The handbook even describes
> for a couple of heavy-duty applications how this is done.
> However, after reading that part of the handbook and googling around the
> net, I haven't the slightest idea how I'm supposed to run such program.

Same as any other binary.

> Let's say I have a program. Should I put it in /compat/linux/somewhere,
> run it like /compat/linux/somewhere/executable and it just somehow
> works? Or should I chroot to /compat/linux?
> How does FreeBSD know when to use linuxemu? 

A Linux binary looks different to a native one. The system notices and 
kicks off the emulation layer. (effectively you have a different system
call table for each emulated OS, if that means anything to you).

There's a detailed explanation of NetBSDs way of doing this (I expect
FreeBSDs is very similar) in a six part onlamp series starting at:

And if you think you're going to bleed all over me
you're even wronger than you normally be - The Specials, 'Little Bitch'
Rasputin :: Jack of All Trades - Master of Nuns

More information about the freebsd-questions mailing list