[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] RE: [Xen-users] Clear definitions
> -----Original Message----- > From: xen-users-bounces@xxxxxxxxxxxxxxxxxxx > [mailto:xen-users-bounces@xxxxxxxxxxxxxxxxxxx] On Behalf Of > Fabio Viero > Sent: 04 April 2007 17:51 > To: Xen-users@xxxxxxxxxxxxxxxxxxx > Subject: [Xen-users] Clear definitions > > Hi list > > I´m really new to Xen. My question is probably an easy one. First, yes > i went through the documentation and also came across some messages > that helped me clarify (not so clear actually) my next few question. > They are: > > What exactly is a "modified guest". I know linux and BSD´s fall in > this category. But, well i can run an unmodified version of linux, > paravirtualized, with Xen don´t? A modified guest is the same as a paravirtualized guest (a paravirtual guest runs with a modified kernel, to put it in a different way). > > Talking about windows, i know i nedd Intel-VT or AMD-V to use it. Will > Windows run paravirtualized or full virtualized in this environmet? I > think "full virtualized" is the answer, but if anyone could go a > little bit further on that...thanks!! Short answer: Windows is only possible to run in "full-virtualization". Long answer: Whilst it's technically possible to run Windows (or almost any other OS) on top of Xen as a para-virtual guest, practical things such as contracsts and laws makes the availability of the source-code and/or the relevant changes necessary to make the OS para-virtual makes it (nearly) impossible to get a para-virtual Windows onto your machine [as in, not only do you need to have source-code to Windows - which in itself is generally difficult to get, but you also need the relevant changes to make it para-virtual]. And if you did have access to those bits, you still can't distribute the resulting binary (but you could use it yourself). And some more about the Intel VT/AMD-V technologies. Essentially this is what enables full-virtualization without other complicated technologies (such as "binary translation" or "binary patching" (the latter is a form of para-virtualization, but based on replacing the machine-code inside the guest-OS, rather than modifying the source-code of the operating system). The virtualization technology essentially allows the hypervisor to tell the processor to executed code in a guest-OS, but when certain events happen (such as certain exceptions or reads/writes of some special register(s)) the processor should stop executing and get back to the hypervisor. This way, the hypervisor can keep track of things and make sure the guest is behaving itself. Also, the hypervisor will "lie" to the guest about things like where it's memory is - almost all OS's expect memory to start at zero and grow to some fixed size without too many gaps or missing bits, but if you run multiple OS's in the machine, that's not going to be the case - and the memory may not be in one contiguous section either: imagine that you start three 256MB guests, then terminate two of those guests, but leave the "middle" one - now start a single 512MB guest: you can't do that if you require the memory to be contiguous, because there isn't a single 512MB section available. So the hypervisor will "hide" the truth and tell the OS "what it wants to hear", and then make the necessary modificiations as and when it needs to (for example maintaining two page-tables, one that the guest thinks is the page-table, and one that is given to the processor). > > What is involved in "modify" a guest OS? Basicly, take some parts of the guest-OS (source-code) and rewrite the direct accesses to for example page-tables and a bunch of other things to make them virtualization aware. This is on the scale of "difficult programming" somewhere around 8-10 range on a 0-10 scale of difficulty (where higher number -> more difficult). > > and last but not least. I came across a number of definitions for > "paravirtualized" or paravirtualization. I know it provides an API for > the virtual machines to interface with rather a full abstraction of > the underlying hardware. I guess that´s not all about it. Once more, > if someone could go furthur with an explanation. Well, I think "providing an API/interface for a hypervisor (virtual machine monitor) to a guest-OS" is a pretty good definition. I don't believe there is a STRICT definition of para-virtualization as such - it's simply "to make the OS more or less aware that it's running in a virtual environment so that it can co-operatively perform some of the tasks necessary to make it run as a virtual machine". -- Mats > > I would like to excuse for these sort of basic question and also wish > to thank for any answar i might get. > > Cheers > > _______________________________________________ > Xen-users mailing list > Xen-users@xxxxxxxxxxxxxxxxxxx > http://lists.xensource.com/xen-users > > > _______________________________________________ Xen-users mailing list Xen-users@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-users
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |