On 12/09/2010 08:16 AM, Paolo Bonzini wrote:
On 12/08/2010 10:43 PM, Stefano Bonifazi wrote:
Anyway running it with a com file as argument gave the error:
mmap: Operation not permitted
You have to run it as root I think.
Paolo
Thank you! Running as root worked, though it raises then the following
error (from gdb) I am currently trying to understand:
/home/stefano/LinuxDev/qemu-0.12.5/tcg/tcg.c:1367: tcg fatal error
Program received signal SIGABRT, Aborted.
0x0012e416 in __kernel_vsyscall ()
Surely any hint on how to to fix this will be very welcome :)
I wish I could understand also what was wrong before, I mean /mmap/.. I
understand you can't babysit me, but the gap between what one studies at
university and the real world is very big and I feel lost :(
I've read pretty much about mmap trying to figure out myself but
understanding how to map a file (what I could find in every article
about mmap online) is not the same as understanding how it works inside
QEMU ..
I know each process gets its own logical address space, if I understood
fine mmap should take a portion of qruncom address space and give it to
the emulator that should then see that as its own address space (please
correct me if I am wrong!) ..
Now if I got fine the flag MAP_FIXED, obliges the process to give that
portion of address space starting at its /addr/ parameter (the first)..
or if it is not possible to give an error..
My big doubt is how can the process give exactly that portion of address
space starting at zero by just running it as root?.. I am expecting
that area of address space to be taken by I dunno, code, data of the
process itself.. honestly I don't know how things are allocated when a
process is run(and I wish I could learn that).. but how can one think
that addresses around zero are free for a mapping??
I'll appreciate very much any explanation, or links where to learn those
topics! :)
Thank you very much!
Best Regards!
Stefano B.