[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] Re: Questions about the control tools in Xen



> In the Xenolinux source code, I found that in function of
> HYPERVISOR_dom0_op, it would set the interface version to
> DOM0_INTERFACE_VERSION!!
> Does Xen VMM check the commands come from domain0 or not just acording with
> the interface version?

DOM0_INTERFACE_VERSION is #defined in xen/include/hypervisor-ifs/dom0_ops.h 
(which holds various details about the valid dom0 ops and their data 
structures).  The idea is that whenever there is a change to the interface, 
the interface version number will be changed.  This way, if you're using a set 
of control tools that were built for an older version of the interface, Xen 
will see that the version is different (the check for this is in 
xen/common/dom0_ops.c::do_dom0_op() ).  This is to prevent people using 
control tools that are built with the wrong interface.

> If another domain boot by the xenolinux kernel as same as domain 0 and use
> the privileged tools, can this domain create or delete another domains?

The xenolinux kernel normally used by dom0 includes a control interface for 
sending commands to Xen from the control tools.  The interface consists of 
some files under /proc/xeno/ - you've probably already seen some of the code 
related to this.

If you boot other domains using this kernel then they will also have those 
special files BUT they *won't* be able to use them to do privileged control 
ops *unless* they are made privileged.  By default, other domains are not made 
privileged, so usually the control interface in /proc/xeno won't do anything 
in non-0 domains.  If you want you can build a different kernel for your 
non-privileged domains, removing the control interface in the kernel config.

When domains attempt to perform privileged operations, Xen checks that they 
are really allowed to do them (i.e. that they are privileged).  You can see 
one such check at the start of xen/commond/dom0_ops.c::do_dom0_op() - Xen 
returns an EPERM error if the domain is not privileged.

Well, that's the detail.  But in summary: only privileged domains can access 
the Xen control interface.  Domains (other than 0) are unprivileged by 
default.  The /proc/xeno interface only works on privileged domains, on others 
it won't do anything.

HTH.

Mark



-------------------------------------------------------
SF.Net is sponsored by: Speed Start Your Linux Apps Now.
Build and deploy apps & Web services for Linux with
a free DVD software kit from IBM. Click Now!
http://ads.osdn.com/?ad_id=1356&alloc_id=3438&op=click
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxxxx
https://lists.sourceforge.net/lists/listinfo/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.