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>