Okay, so I'll start with something more concrete that should help me
understand a few things. Let's say I wanted to implement a hypercall
and for the purposes of this discussion, let's assume ARM.
A user process on the Linux VM can issue a hypercall with the HVC
instruction, right? Where would I need to add code to the VMM to
handle this hypercall?
Also, it is my understanding that certain instructions will cause a
trap into the VMM. Where is that handled?
Thanks!
On Thu, Jun 8, 2017 at 8:10 PM,
Hi Mike,
Unfortunately we haven't yet written any documentation on the VMM internals or how it works. You are actually the first person to express interest in this. Will try to make it a higher priority to write at least a brief overview of the structure. For now my advice is to be familiar with CAmkES, have a built version of the VMM so that you can code search for generated code and then start exploring from either https://github.com/seL4/camkes-vm/blob/master/components/Init/src/main.c#L52... or https://github.com/SEL4PROJ/camkes-arm-vm/blob/master/components/VM/src/main... depending on whether you are asking about the arm or x86 VMM.
Adrian
On Fri 09-Jun-2017 2:26 AM, Mike Clark wrote:
Is there any documentation on how the VMM works? If I wanted to start hacking on the VMM and extend its capability, where should I start looking to learn how it works, etc?
That might be a pretty broad topic, because there are lots of ways the VMM can be extended, I'm sure. Broad is fine, until I get things more figured out.
_______________________________________________ Devel mailing list Devel@sel4.systems https://sel4.systems/lists/listinfo/devel