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-devel

Re: [Xen-devel] question about the guestOS boot

To: "Petersson, Mats" <Mats.Petersson@xxxxxxx>
Subject: Re: [Xen-devel] question about the guestOS boot
From: tgh <tianguanhua@xxxxxxxxxx>
Date: Fri, 09 Mar 2007 20:09:30 +0800
Cc: xen-devel <xen-devel@xxxxxxxxxxxxxxxxxxx>
Delivery-date: Fri, 09 Mar 2007 04:08:40 -0800
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
In-reply-to: <907625E08839C4409CE5768403633E0B018E1A3D@xxxxxxxxxxxxxxxxx>
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
References: <907625E08839C4409CE5768403633E0B018E1A3D@xxxxxxxxxxxxxxxxx>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
User-agent: Thunderbird 1.5.0.7 (Windows/20060909)
Thank you for your reply

And dom0 xc_linux_build() function play a bootloader role in booting VM
,is it right?
or xc_linux_build() does only a part of bootloader's role and guestOS
does the rest of bootloader's role?
or something else?

I am not sure about it
could you help me

Thanks in advance



Petersson, Mats 写道:
>  
>
>   
>> -----Original Message-----
>> From: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx 
>> [mailto:xen-devel-bounces@xxxxxxxxxxxxxxxxxxx] On Behalf Of tgh
>> Sent: 09 March 2007 10:13
>> To: Petersson, Mats
>> Cc: xen-devel
>> Subject: Re: [Xen-devel] question about the guestOS boot
>>
>> Thank you for your reply and guide
>> I try to understand how does the xen provide a virtual platform for 
>> guestOS to run
>> dom0 provides hardware abstract struct as well as software struct for 
>> guestOS
>>
>> and when dom0 boots a vm ,it does prepare the vm 
>> vcpu_guest_context for 
>> guestOS to run
>> so when VM starts ( the same as our PC resets) ,its vcpu 
>> isnot an empty 
>> context like the regular ones without virtualization ,so it doesnot 
>> start from the regular point or function or firmware
>>     
>
> Ehm, ok, lets debunk the first point, which is that the processor is "CPU is 
> empty" when the processor comes out of reset. That is not at all true - yes, 
> most registers are zero, but they still have a DEFINED value out of reset, 
> which may or may not be zero. 
>
> But more to the point of "booting" a virtual machine. Of course, we have to 
> NOT reset the processor to boot a virtual machine, as that would loose the 
> original Xen + Dom0 that is already loaded. So Xen has to perform the 
> load/initialize function. 
>
> But this is no different from what is done in grub or whatever boot-loader 
> you use. It loads the code into memory and sets up some basic start-values in 
> the registers, then jumps to a starting point somewhere. 
>
> In the case of a Xenified kernel, it's at the beginning of the "text" 
> segment, that is, the label _start. The rIP of the VCPU is set to point to 
> this address, and the other registers are set to some sensible values (such 
> as a pointer to any kernel arguments and perhaps some environmental values in 
> other registers that make sense - I haven't looked very closely at it). 
>
> There is a difference in Xen-linux start and a regular linux start, and that 
> is that Xen-linux starts in 32-bit protected mode (but Paging is not yet 
> enabled), whereas the regular Linux starts with real-mode (16-bit mode), and 
> does a few instructions before it gets into 32-bit mode. 
>
>
>   
>> then I do not know where does the guestOS start with in the code
>> could you told me where or which function does the guestOS 
>> start with ?
>>     
>
> As above. The actual code that the Xen kernel starts at is in 
> .../linux-<ver>-xen/arch/<mach>/kernel/head-xen.S
>
> --
> Mats
>   
>> Thanks in advance
>>
>>
>>
>>
>> Petersson, Mats 写道:
>>     
>>>  
>>>
>>>   
>>>       
>>>> -----Original Message-----
>>>> From: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx 
>>>> [mailto:xen-devel-bounces@xxxxxxxxxxxxxxxxxxx] On Behalf Of tgh
>>>> Sent: 09 March 2007 08:17
>>>> To: xen-devel
>>>> Subject: [Xen-devel] question about the guestOS boot
>>>>
>>>> hi
>>>> I try to understand the code about vm create
>>>> and now I am confused about which code does the guestOS start 
>>>> with to run ?
>>>>
>>>> xen domain0 uses the function xc_domain_creat() and 
>>>> xc_linux_build() to
>>>> prepare the necessary struct such as vcpu_guest_context and 
>>>> other things
>>>> for vm guestOS to bootup , in the xc_linux_build(),the 
>>>>         
>> initrd is also
>>     
>>>> loaded in,is it right?
>>>> then guestOS does not run the regular bootloader ,is it right?
>>>>     
>>>>         
>>> That is correct. 
>>>   
>>>       
>>>> then I am confused about which function or which lines of the 
>>>> code does
>>>> the guestOS start with ?
>>>>     
>>>>         
>>> Can you explain your confusion a bit more - I'm not 
>>>       
>> entirely sure what
>>     
>>> you're asking, and it's very hard to answer questions when you don't
>>> know the actual question. 
>>>
>>> Also, it's much better if you explain a little bit about what you're
>>> trying to achieve (I've previously used the example of 
>>>       
>> someone having a
>>     
>>> puncture, going to ask the mechanic how to loosen a wheel-nut, then
>>> going to ask how to jack up the car, then asking how to tighten the
>>> wheel-nut, when the actual problem is a punctured tyre, and 
>>>       
>> the "right"
>>     
>>> question to ask a mechanic is "How do I replace my 
>>>       
>> punctured tyre with
>>     
>>> the spare wheel?"). 
>>>
>>> Asking the overall question you're trying to solve will 
>>>       
>> give you a more
>>     
>>> complete answer to what you're trying to do, rather than a detailed
>>> answer on the point where you're at (and that may actually 
>>>       
>> not help your
>>     
>>> overall problem at all). 
>>>
>>> --
>>> Mats
>>>   
>>>       
>>>> could you help me
>>>>
>>>> Thanks in advance
>>>>
>>>>
>>>> _______________________________________________
>>>> Xen-devel mailing list
>>>> Xen-devel@xxxxxxxxxxxxxxxxxxx
>>>> http://lists.xensource.com/xen-devel
>>>>
>>>>
>>>>
>>>>     
>>>>         
>>>
>>> _______________________________________________
>>> Xen-devel mailing list
>>> Xen-devel@xxxxxxxxxxxxxxxxxxx
>>> http://lists.xensource.com/xen-devel
>>>
>>>
>>>   
>>>       
>> _______________________________________________
>> Xen-devel mailing list
>> Xen-devel@xxxxxxxxxxxxxxxxxxx
>> http://lists.xensource.com/xen-devel
>>
>>
>>
>>     
>
>
>
>
>   


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