Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 2 Dec 2004 21:08:41 +0000
From:      Dick Davies <rasputnik@hellooperator.net>
To:        Mikko Heiskanen <mikko@whitecortex.net>
Cc:        FreeBSD Questions <freebsd-questions@freebsd.org>
Subject:   Re: linux emulation
Message-ID:  <20041202210840.GB23230@lb.tenfour>
In-Reply-To: <1102005825.4361.16.camel@whitecortex.net>
References:  <1102005825.4361.16.camel@whitecortex.net>

next in thread | previous in thread | raw e-mail | index | archive | help
* Mikko Heiskanen <mikko@whitecortex.net> [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:

http://www.onlamp.com/lpt/a/2623


-- 
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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20041202210840.GB23230>