Posted Jun 4, 2009 23:05 UTC (Thu) by caitlinbestler
Parent article: Xen again
Actually Dom0 is not "the hypervisor portion of the Xen System", it is the
hypervisor designated default owner of devices.
To be even more precise, Device Domains (or DomDs) are the owners of
specific devices. Dom0 is the traditional and default DomD.
The separation of Device control from *the* hypervisor is one of the key
strengths of the Xen architecture because it keeps the true Hypervisor (on
which *all* other kernels rely) very stable. I suspect at least part of
the opposition to "Xen Dom0" is not actually about "Dom0" but to the
fact that the Xen Hypervisor is *not* Linux.
But focusing on what DomDs/Dom0 really requires the following pieces:
- The actual/native device driver(s).
- The "backend" drivers that support the Xen "frontend" drivers.
- Glue to connect the backend drivers to the actual drivers.
- The ability to configure that glue, preferably from user mode.
There is no particular reason why a Device backend has to be implemented
in Linux. But Linux is particularly inviting for reasons #1,#3 and #4.
Especially reason #1.
Understood, the "ABI" question is really a distraction. It is actually
the Backend drivers that have stable ABIs, not Linux. The fact that Linux
insists that kernel modules count as "Linux" is a Linux issue. People who
develop those modules would really rather be free to follow their own
coding standards, etc. Being GPL and following coding standards is
reasonable, but having your module's interfaces being viewed as though
they were Linux interfaces is a totally different issue.
So the real question is what kernel capabilities do backend modules
truly need, and are these legitimate generic capabilities rather than
Xen inflicting itself on the kernel?
Ultimately these relate to the ability to communicate with other Virtual
Machines through shared memory and delegation of PCI functions and MSI-X
interrupts. If you accept the concept that a non-Linux Hypervisor may
partition a machine into physical machines, then is there any legitimate
reason why mainline Linux should not be usable for Device controlling
Rejecting this application of Linux because Linux would rather also be the
Hypervisor strikes me as taking your baseball home because the team wants
somebody else to pitch. The true spirit of Open development would allow
users to decide on Hypervisor versus Device Control separately
rather than forcing them to lock the two decisions together.
to post comments)