views:

167

answers:

1

I was reading the wikipedia page on ABI, which describes what an ABI must specify, and the Xen page which states that they have a special hypercall ABI for their paravirtualisation. My question is, since programs will execute using say, the Windows ABI in the VM, how is the Xen ABI an ABI?

A: 

Xen has two ways of running guest systems:

  1. Paravirtualized guests, which employ that ABI to cooperate with the hypervisor. This requires the guest to be modified in order to work (which requires the availability of its source code).
  2. Using virtualization features of CPUs, like AMD's SVM or Intel's VT. In this case, there's no ABI the guest has to comply to.

So Xen's ABI relates only to the first case.

EDIT: The userspace applications running on the guest OS need not be modified, assuming they do not try to access the hardware directly (or the OS traps those accesses and handles them in a host-friendly manner). So only the kernel (here including drivers and so on) of that guest needs to be modified, and it will run whatever unmodified applications.

Eduard - Gabriel Munteanu
If the guest was modified, would all compiled binaries on that guess not work on a normall install of the same os?
Bill Gray
I have edited my reply to answer your question.
Eduard - Gabriel Munteanu