qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] Running the user emulation


From: Natalia Portillo
Subject: Re: [Qemu-devel] Running the user emulation
Date: Wed, 11 Aug 2010 19:38:59 +0100

You can check how NetBSD does that.

NetBSD is able to run executables from other UNIXes and POSIX-compatible systems, including, Linux, IRIX, Darwin.
They do that with a series of syscall conversions and library substitutions.

That should be portable to use Mac OS X as host instead of NetBSD, and to run thru QEMU (running x86 Linux software on PowerPC Darwin)

Regards,
Natalia Portillo

El 11/08/2010, a las 10:33, C K Kashyap escribió:

I was wondering if it would be easy to force build the user-emulation on mac - as in, lets say my a.out from linux is really trivial - even statically linked for that matter. All it does is, say, write "hello world\n" to the screen - I'd imaging that write system call would be similar on mac (as far as writing to stdout is concerned) .... Would it be possible/easy to give it a shot?


On Wed, Aug 11, 2010 at 2:48 PM, Stefan Weil <address@hidden> wrote:
Am 11.08.2010 11:06, schrieb C K Kashyap:
Let me see if I understand this right -

qemu loads the a.out and begins to interpret the x86 instructions in the a.out and when a system call happens, it makes the call the host system .... is that right?



Right. That's the way how linux user mode emulation (for example qemu-i386) works.
See linux-user/syscall.c if you want to see more details.

bsd-user and darwin-user are also supported (more or less), but darwin-user
only supports translation of darwin/powerpc to darwin/x86 syscalls.
It won't help you to run a linux a.out on your mac.




On Wed, Aug 11, 2010 at 2:12 PM, Stefan Weil <address@hidden> wrote:
Am 11.08.2010 10:31, schrieb C K Kashyap:
Hi,
I've built qemu on my mac osx using this config -
./configure --prefix=/Users/ckk/local/ --target-list="i386-softmmu x86_64-softmmu" --enable-linux-user

Now, I have a simple a.out built on linux - how can I run it using qemu on my mac box?

--
Regards,
Kashyap

Hi Kashyap,

you cannot run it in user mode emulation unless you replace Mac OS by Linux
on your mac box. Linux user emulations requires a Linux host.

If you have a Linux host, you would need --target-list=i386-linux-user.

You can run your a.out if you run system emulation (e.g. i386-softmmu/qemu)
and install Linux there, of course.

Regards,
Stefan



--
Regards,
Kashyap




--
Regards,
Kashyap


reply via email to

[Prev in Thread] Current Thread [Next in Thread]