2011/1/13 Richard W.M. Jones <rjones(a)redhat.com>:
On Wed, Jan 12, 2011 at 03:51:04PM -0700, Eric Blake wrote:
> [adding Richard Jones, as he is more familiar with OS inspection]
>
> On 01/12/2011 03:29 PM, Matthias Bolte wrote:
> >
> > One thing I wonder about is, where to get the list of possible values
> > for the guest OS type and variation from? Do we use what
> > virt-install/virt-manager currently use and map that onto the fixed
> > guest OS types (and variations) that VMware and VirtualBox understand
> > in the ESX/VMware and VirtualBox driver? Or do we expose the list of
> > possible values in driver capabilities? Or ...
>
> I imagine it should either be via some sort of .xml file (similar to
> libvirt's cpu_map.xml used for determining valid cpu models), or via
> linking in a common shared library that can share the work among
> multiple clients. IIRC, there is work under way to provide a library to
> standardize on detection and description of various operating systems
> installed in a guest, but I cannot seem to quickly find a reference to
> such a library at the moment.
The library is libosinfo:
https://fedorahosted.org/libosinfo/
http://git.fedorahosted.org/git/?p=libosinfo.git;a=summary
Despite patchy development efforts by several people, it hasn't really
gained much traction. I'm not even sure if we are using it in libvirt
or virt-manager which was the original intent.
For virt-inspector we classify OSes very simply using two text
strings:
http://libguestfs.org/virt-inspector.1.html#_operatingsystem_
<name> (which corresponds to
http://libguestfs.org/guestfs.3.html#guestfs_inspect_get_type in the
API) is "linux" or "windows".
<distro> (
http://libguestfs.org/guestfs.3.html#guestfs_inspect_get_distro)
is one of a small set of distro strings.
I don't know the best way to do what you want, but I will say there
are many different aspects to inspection, and one size won't fit all.
For example:
- OS type
- OS distro
- installer location
- how to download and install
- preferred devices to expose to a new installation
- does it support virtio?
- what applications are installed in a particular instance?
- what device drivers are installed in a particular instance?
- licensing requirements
Rich.
Actually, for the ESX/VMware and VirtualBox driver I don't really care
about detailed OS inspection, I think. The initial point was that some
hypervisors allow to specify OS type and distro in order to enable OS
dependent stuff like optimizations and workarounds. But libvirt
currently doesn't allow you to specify this in the XML config in order
to pass this information to the driver.
FYI, here's a (probably incomplete) list of guest OS types used by
VMware: