問題描述
Xen ABI 是真正的 ABI 嗎? (is the Xen ABI a true ABI?)
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?
參考解法
方法 1:
Xen has two ways of running guest systems:
- 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).
- 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.
(by Bill Gray、Eduard - Gabriel Munteanu)