Page 1 of 1

ToroV

Posted: Sun Oct 10, 2021 11:59 am
by z0rr0
Hello everyone, I have started to play with a new idea that would like to share. I am working on a minimalist Virtual Machine Monitor that exposes a POSIX API to the guest. This POSIX API is implemented as a hypercall interface. The PoC is hosted at https://github.com/torokernel/torov. The idea is that the VMM intercepts the syscalls that the app does, and invokes the corresponding service to the host. This allows to partially exposes the host to the guest. The guest does not require an OS to run. It is simply a user application in which the RTL, e.g., libc, has been modified to trigger a VMEXIT during a syscall. I have developed two examples: a simple HelloWorld, and a TCP Echo server. These examples are meant to show the use of different sorts of syscalls. To have an idea, the whole cycle of the HelloWorld example takes only about 8ms. If you have a comment or question about the design, feel free to let me know.

Re: ToroV

Posted: Sun Oct 10, 2021 1:16 pm
by BigBuda
Ok, this sounds really interesting. Btw, are you targetting a specific ISA or a specific version of an ISA? Or are you aiming for portability between ISAs? In the long run, I mean.

Also, I'm surprised (not criticizing) by your choice of language, it was unexpected.

Re: ToroV

Posted: Sun Oct 10, 2021 2:00 pm
by z0rr0
BigBuda wrote:Ok, this sounds really interesting. Btw, are you targetting a specific ISA or a specific version of an ISA? Or are you aiming for portability between ISAs? In the long run, I mean.

Also, I'm surprised (not criticizing) by your choice of language, it was unexpected.
I did not think about that yet. For the moment, I am only targetting x86-64.