vkernel & GSoC, some questions
Alexander Sack
pisymbol at gmail.com
Mon Mar 17 20:40:55 UTC 2008
Some interesting reading for anyone who cares:
http://citeseer.ist.psu.edu/rd/89980079%2C480988%2C1%2C0.25%2CDownload/http://citeseer.ist.psu.edu/cache/papers/cs/24361/http:zSzzSzwww.usenix.orgzSzpublicationszSzlibraryzSzproceedingszSzusenix01zSzsugermanzSzsugerman.pdf/venkitachalam01virtualizing.pdf
> These shortcuts are going to be considerably more efficient, resulting
> in better performance. It is also the claim to fame that a vkernel
> architecture has. In fact, XEN is really much closer to a vkernel
> architecture then it is to a hypervisor architecture. A vkernel can
> be thought of as the most generic and flexible implementation, with
> access to many system calls verses the fairly limited set XEN provides,
> and a hypervisor's access to the same subset is done by emulating
> hardware devices.
I've never used XEN (paravirtualization) but I assume that the target
OS then has special system calls or shortcuts to ask the underlying
monitor/hypervisor to the right things (like allocate safe (virtual)
memory instead of relying on a shadow/trap model etc.).
> In all three cases the emulated hardware -- disk and network basically,
> devolves down into calling read() or write() or the real-kernel
> equivalent. A hypervisor has the most work to do since it is trying to
> emulate a hardware interface (adding another layer). XEN has less work
> to do as it is really not trying to emulate hardware. A vkernel has
> even less work to do because it is running as a userland program and can
> simply make the appropriate system call to implement the back-end.
I'm pretty sure this is what VMWare does for the their hosted product.
Its a simple userland process that makes syscalls and traps
interrupts which eventually devolve into reads and writes. I believe
they do a lot of performance work in interrupt coalescing and doing
their darnest to prevent world-wide context switches.
> There are more similarities then differences. I expect VMWare is feeling
> the pressure from having to hack their code so much to support multiple
> operating systems... I mean, literally, every time microsoft comes out
> with an update VMWare has to hack something new in. it's really amazing
> how hard it is to emulate a complete hardware environment, let alone do
> it efficiently.
No doubt virtualization is a tough job and I'm wondering if future
hardware enhancements will make software like VMWare/vkernel/XEN
obsolete in the end.
> Frankly, I would love to see something like VMWare force an industry-wide
> API for machine access which bypasses the holy hell of a mess we have
> with the BIOS, and see BIOSes then respec to a new far cleaner API. The
> BIOS is the stinking pile of horseshit that has held back OS development
> for the last 15 years.
EFI? Just kidding...
-aps
--
"What lies behind us and what lies in front of us is of little concern
to what lies within us." -Ralph Waldo Emerson
More information about the freebsd-hackers
mailing list