qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Ian Rogers <irogers@cs.man.ac.uk>
To: qemu-devel@nongnu.org
Cc: Darwine List <darwine-devel@lists.sourceforge.net>
Subject: Re: [Qemu-devel] qemu-darwin-user
Date: Fri, 27 Aug 2004 13:25:37 +0100	[thread overview]
Message-ID: <412F2841.4090407@cs.man.ac.uk> (raw)
In-Reply-To: <4C85E3A8-F823-11D8-8547-000A2796D230@opendarwin.org>

Hi,

I think there will be a fundamental limit you reach with this work. The 
reason being the mach messages can contain pointers to data structures 
which the kernel fills in. If the pointers are in the wrong endian then 
the kernel will do something to the application. You can write code to 
perform transformations on pointers for all the messages you can find 
documentation on, but some systems will be entirely closed (for example, 
microsofts messages). Of course you could emulate both the server and 
the application, but I think you will need a lot of kernel jiggery 
pokery still. I believe this is the same problem that stops Mac OS X 
being in a 64bit memory space. You basically need different messages for 
every kind of pointer you can have. Apple estimated it would take 
6months to write support for all those messages, but they revised that 
up to 2 years iirc. 64 bit OS X applications send 32bit messages 
currently and pointers to datastructures must appear within the first 
4Gb as a consequence. Let me know if I'm wrong.

Hope this is of help,

Ian

Pierre d'Herbemont wrote:

> Jocelyn,
>
> I am interested by your code, is there a place where I can get it?
>
> Pierre.
>
> Le 27 août 04, à 14:08, Jocelyn Mayer a écrit :
>
>> On Fri, 2004-08-27 at 13:13, Pierre d'Herbemont wrote:
>>
>>> Hi all,
>>
>>
>> Hi,
>>
>>> I have done some work on the darwin-user side. Since it doesn't work
>>> yet, I don't submit patch for it but I have updated the qemu branch on
>>> opendarwin [1][2], and you can now ./configure
>>> --target-list=i386-darwin-user. Basically it can load a Fat or a
>>> regular binary, and have the dynamic linker called. Unfortunately it
>>> crashes somewhere in _dyld_reloc right now.
>>
>>
>> You may be interressed to know that I have working code for BSD/Darwin
>> program emulation, including working FAT/mach-O loader.
>> In fact, I was working on Darwin emulation before I integrate my PPC
>> emulation code into Qemu.
>> As I already emulated all basic syscalls & sysctl for the 4 BSD flavours
>> (Net, Open, Free & Darwin), but Mach ones, you may like to get my code.
>> This code used to be in the Linux kernel but I can easily adapt it for
>> Qemu. The big missing parts to allow the execution of complex programs
>> are mach syscalls and signals management, but I guess this part can be
>> taken from Linux-user emulation with a few changes.
>>
>> -- 
>> Jocelyn Mayer <l_indien@magic.fr>
>> Never organized
>>
>
>
>
> _______________________________________________
> Qemu-devel mailing list
> Qemu-devel@nongnu.org
> http://lists.nongnu.org/mailman/listinfo/qemu-deve
> l

  reply	other threads:[~2004-08-27 12:31 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-08-27 11:13 [Qemu-devel] qemu-darwin-user Pierre d'Herbemont
2004-08-27 12:08 ` Jocelyn Mayer
2004-08-27 12:17   ` Jocelyn Mayer
2004-08-27 12:19   ` Pierre d'Herbemont
2004-08-27 12:25     ` Ian Rogers [this message]
2004-08-27 13:02       ` Jocelyn Mayer
2004-08-27 13:49         ` Ian Rogers

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=412F2841.4090407@cs.man.ac.uk \
    --to=irogers@cs.man.ac.uk \
    --cc=darwine-devel@lists.sourceforge.net \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).