Hi!
I'm trying to port an OSEK OS to L4. I know that a guest OS runs as a L4 process from Fiasco's point of view. But I have also noticed relevent APIs such as the l4vcpu_* family, VM API for SVM, VMX, and TZ, and the vCPU API of threads.
My questions are as follows: 1. What are the differences between a VM and an ordinary process? 2. Is it possible to run a guest OS without utilizing VM/vCPU APIs? 3. What does a guest OS have to do in order to run on L4Re and Fiasco? Is there a guide for doing this?
I'm new to L4 and probably need concrete instructions.
Thank you in advance!
On Mon, Jul 09, 2012 at 05:02:07PM +0800, ZhangEditing wrote:
- Is it possible to run a guest OS without utilizing VM/vCPU APIs?
Yes. Earlier versions of L4Linux did that.
- What does a guest OS have to do in order to run on L4Re and Fiasco? Is there a guide for doing this?
Maybe you should start reading the master thesis on how OpenBSD was ported to Fiasco.OC (Porting OpenBSD to Fiasco [1]).
Matthias.
[1] http://www.isti.tu-berlin.de/security_in_telecommunications/menue/teaching/d...
Hi,
On Mon Jul 09, 2012 at 17:02:07 +0800, ZhangEditing wrote:
- What are the differences between a VM and an ordinary process?
A VM can be a nested page table, and can be used in conjunction with VM* operations to enter a VM etc. Support for VT/SVM is built using VMs to cover the extra functionality required. Besides that memory can be mapped into a VM as it can be mapped into a normal task. Specifically a VM is derived from a task.
Adam
l4-hackers@os.inf.tu-dresden.de