[virt-tools-list] [libosinfo] Add Windows OS metadata

Daniel P. Berrange berrange at redhat.com
Fri Jun 17 10:42:56 UTC 2011


On Fri, Jun 17, 2011 at 11:18:34AM +0100, Richard W.M. Jones wrote:
> On Fri, Jun 17, 2011 at 10:38:43AM +0100, Daniel P. Berrange wrote:
> > On Thu, Jun 16, 2011 at 08:14:00PM +0100, Richard W.M. Jones wrote:
> > > On Thu, Jun 16, 2011 at 07:49:12PM +0300, Zeeshan Ali wrote:
> > > > From: "Zeeshan Ali (Khattak)" <zeeshanak at gnome.org>
> > > > +  <os id="http://microsoft.com/win2k8">
> > > > +    <short-id>win2k8</short-id>
> > > > +    <name>Microsoft Windows Server 2008</name>
> > > > +    <version>6.0</version>
> > > > +    <vendor>Microsoft</vendor>
> > > > +    <upgrades id="http://microsoft.com/windows"/>
> > > > +  </os>
> > > > +
> > > > +  <os id="http://microsoft.com/vista">
> > > > +    <short-id>vista</short-id>
> > > > +    <name>Microsoft Windows Vista</name>
> > > > +    <version>6.0</version>
> > > > +    <vendor>Microsoft</vendor>
> > > > +    <upgrades id="http://microsoft.com/windows"/>
> > > > +  </os>
> > > 
> > > You need to expose the product variant field somewhere, else there is
> > > no way to distinguish between these two operating systems.  IIRC for
> > > W2K8 this field contains "Server" and for Vista it contains "Client".
> > > If you have an existing Windows guest, run virt-inspector on it to
> > > display the product variant from the registry.
> > > 
> > > Product variants are also useful elsewhere.  In virt-inspector, we use
> > > this field to distinguish different spins of RHEL (like Red Hat
> > > Desktop vs. the regular Server spin).
> > > 
> > > http://libguestfs.org/virt-inspector.1.html#_operatingsystem_
> > > http://libguestfs.org/guestfs.3.html#guestfs_inspect_get_product_variant
> > 
> > We could introduce a new OS relationship for this purpose. eg Have
> > a general OS for 'vista', and then add further OS for the variants.
> > I imagine each would have the same supported hardware, so hardware
> > info could go into the generic 'vista' OS, but we could record the
> > different install media paths in the variants
> > 
> >   <os id="http://microsoft.com/vista/client">
> >     <short-id>vista-client</short-id>
> >     <name>Microsoft Windows Vista Client Edition</name>
> >     <version>6.0</version>
> >     <vendor>Microsoft</vendor>
> >     <variant id="http://microsoft.com/vista"/>
> >     <media>
> >       ...
> >     </media>
> >   </os>
> 
> A wider question: what is the purpose of these descriptions?
> 
> If it is so that someone can look at the Windows registry[1], and work
> out what version of Windows they are dealing with, then you need both
> the version (which you have) *and* the product variant string (which
> you don't have), in order to do the mapping correctly.
> 
> You may even need the Service Pack number too -- it might be important
> for some users.  Perhaps even make a distinction between uniprocessor
> or multiprocessor variants.
> 
> This is all a big mess of course and brings you in contact with the
> complexities of the Windows registry (and similar problems for other
> OSes).  But my point is that version is not enough, even on RHEL.

The version field isn't really intended to be used in this way
by applications. The important things are really the '<name>'
field which should match the OS vendor's preferred name for
the product,  and the relationships between different OS. The
product name here is, as per the install media, so it would
typically include suffixes like the variant or service pack or
update. Arguably we should just not bother including the <version>
on its own, since it doesn't really have useful semantics for apps
to work against.

Daniel
-- 
|: http://berrange.com      -o-    http://www.flickr.com/photos/dberrange/ :|
|: http://libvirt.org              -o-             http://virt-manager.org :|
|: http://autobuild.org       -o-         http://search.cpan.org/~danberr/ :|
|: http://entangle-photo.org       -o-       http://live.gnome.org/gtk-vnc :|




More information about the virt-tools-list mailing list