* Jeremy Fitzhardinge <jeremy at goop.org> wrote: > You could come up with some shim layer which makes the two interfaces > appear similar, and you could spell the name of that shim "VMI". Or > you could call it "paravirt_ops", which is the name we chose. And you > could implement the interface to that layer as a binary ABI, or you > could make it a normal source-level Linux kernel interface, which is > what we chose to do. i think you are missing my point. paravirt_ops is a Linux-internal abstraction that tries to make our life easier but it has no relevance whatsoever to an external hypervisor - be that Xen, VMWare/ESX or Windows/Longhorn. What matters is the /ABI/ that the hypervisor uses to talk to a Linux guest. In the VMWare/ESX case that's VMI. In the Xen case that's the hypercall page call-table ABI or the legacy int $0x82 ABI. My suggestion would be for Linux to make only a /single/ external ABI promise: VMI. (and we can extend it with higher-level paravirt ops, etc.) paravirt_ops has ZERO relevance here... Anyone who suggests that paravirt_ops somehow magically hides the ABIs that are behind it (and its effects on Linux) is smoking something real funny ;-) Ingo