WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-users

[Xen-users] From 'xm create' to HVM guest

To: xen-users@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-users] From 'xm create' to HVM guest
From: Guillaume Thouvenin <guillaume.thouvenin@xxxxxxxxxx>
Date: Tue, 30 Jan 2007 20:56:43 +0100
Delivery-date: Tue, 30 Jan 2007 11:56:46 -0800
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-users-request@lists.xensource.com?subject=help>
List-id: Xen user discussion <xen-users.lists.xensource.com>
List-post: <mailto:xen-users@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-users>, <mailto:xen-users-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-users>, <mailto:xen-users-request@lists.xensource.com?subject=unsubscribe>
Sender: xen-users-bounces@xxxxxxxxxxxxxxxxxxx
User-agent: Internet Messaging Program (IMP) H3 (4.0.4)
Hello,

I'd like to know if I understand correctly how different parts of Xen
communicates and how a HVM domain is started. I will try to describe
steps starting from the 'xm create domU.hvm' to the HVM guest is
up. There certainly are mistakes so if you want to add comments or/and
fix mistakes you're welcome. Thus, before going deeper in the code
I'd like to know if the following quick overview of Xen is correct.
Thanks in advance for all comments.

# xm create domU.hvm

1) 'xm' is a python script (tools/python/xen/xm). It checks arguments and
it passes them through the Xen daemon called 'xend'. It acts as a client
and xend acts as server. Xend provides two kinds of connection: HTTP and
UNIX socket.

2) 'xend' is a mix between python and C (tools/python/xen/xend/server).
When it starts, '/usr/sbin/xend' launches xenstored, xenconsoled, blktapctrl
and starts itself as a daemon. When it gets information that a domain
must be create it sends information to xenstore daemon called 'xenstored'
through /var/run/xend/socket.

3) 'xenstored' is a C program (tools/xenstore). It's used to communicate
between domains and to store a database that contains information about
created domains. It offers two sockets, /var/run/xend/socket and
/var/run/xend/ro_socket, and a device /dev/xen/evtchn. When it receives
the information of created domains, it refreshes the tdb (trivial database)
by using transaction. After that, it sends a message to Xen to tell that
a domain must be created by puting an event to the xenbus.

4) Xen gets informations from xenbus that uses HYPERCALL. The hypervisor
creates the structure needed to keep information about the new domain. At
this point I don't know yet how HVMLoader is called.

... to be completed :) ...

5) The goal of the HVMLoader (tools/firmware) is to emulate the BIOS. It
sets environment needed by a kernel to start. It loaded the ROMBIOS, the
VGABIOS and the VMXASSIST. Now we have the basis to start an unmodified
kernel.


Best regards,
Guillaume



_______________________________________________
Xen-users mailing list
Xen-users@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-users

<Prev in Thread] Current Thread [Next in Thread>