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?
Xen has two ways of running guest systems:
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.