VMware Communities
MorganLeFay
Contributor
Contributor
Jump to solution

Full virtualization, para-virtualization or Operating System partitioning?

Hi,

I have been told that virtualisation technology can be applied in various ways; Full virtualization, para-virtualization and Operating System partitioning. I feel a bit lost, how do I determine what technology is in use? For example, on my pc (Win 7) I am running my VMs on VMware Infrastructure Web Access (VMware server). Is this full virtualisation, because I didn’t have to make any changes to the guest OSes etc?

0 Kudos
1 Solution

Accepted Solutions
AWo
Immortal
Immortal
Jump to solution

From "A Comparison of Software and Hardware Techniques for x86 Virtualization"

Keith Adams

VMware

Ole Agesen

VMware

Simple Binary Transaltion:

Our software VMM uses a translator with these properties:

  • Binary. Input is binary x86 code, not source code.

  • Dynamic. Translation happens at runtime, interleaved with execution of the generated code.

  • On demand. Code is translated only when it is about to execute. This laziness side-steps the problem of telling code and data apart.

  • System level. The translator makes no assumptions about the guest code. Rules are set by the x86 ISA, not by a higher-level ABI. In contrast, an application-level translator like Dynamo might assume that “return addresses are always produced by calls” to generate faster code. The VMM does not: it must run a buffer overflow that clobbers a return address precisely as it would have run natively (producing the same hex numbers in the resulting error message).

  • Subsetting. The translator’s input is the full x86 instruction set, including all privileged instructions; output is a safe subset (mostly user-mode instructions).

And adaptive Binary Translation:

... Finally, although the details are beyond the scope of this paper,

we observe that BT is not required for safe execution of most user

code on most guest operating systems. By switching guest execution

between BT mode and direct execution as the guest switches

between kernel- and user-mode, we can limit BT overheads to kernel

code and permit application code to run at native speed.

That shows that VMware does not use "full-virtualization", the VMM can switch betwwen native execution and Translation.

In addition in the TA08 presentation, VMworld 2009, VMware distinguishes between "full emulation" and "hosted virtualisation" like VMware Workstation.

I think it is important to know that difference as the "full virtualisation" is considered to be slow and when people think of VMware when they think about "full-virtualization" they might com eto the conclusuion VMware is slow and they need paravirtualization in any case.

AWo

VCP 3 & 4

Author @ vmwire.net

\[:o]===\[o:]

=Would you like to have this posting as a ringtone on your cell phone?=

=Send "Posting" to 911 for only $999999,99!=

vExpert 2009/10/11 [:o]===[o:] [: ]o=o[ :] = Save forests! rent firewood! =

View solution in original post

0 Kudos
5 Replies
AWo
Immortal
Immortal
Jump to solution

VMware not really uses "full-virtualisation" as you call it, they use what is called transparant-paravirtualization, what is default for every product. You also have to distinguish if you talk about the CPU or the I/O devices/drivers.

Please be aware that in earlier days full virtualization meant that really the complete hardware was emulated which was slow. That is not the case with VMware! VMware doesn't emulate the CPU. So it would be better to refer to transparent-paravirtualization or binary translation.

You can run unmodifed (non-paravirtualized) guests on VMware without Intel-VT as VMWare takes place to intercept and translate hazardous (called binary translation) commands which a guest sends to the CPU. So not all commands are translated.

On Xenserver for example, which only can handle paravirtualized guests you need Intel-VT if your guest OS is not-paravirtualized , as Intel-VT takes this part.

If you run a paravirtualized guest OS the guest knows it is running on a hypervisor so does behave accordingly.

Depending on the VMWare product you are able to choose between the virtual driver interface VMware provides or paravirtuaized drivers.

With VMware Workstation you can run paravirtualized guest OS types in a paravirtualized mode. But you don't have to.

To answer your question: yes.


AWo

VCP 3 & 4

Author @ vmwire.net

\[:o]===\[o:]

=Would you like to have this posting as a ringtone on your cell phone?=

=Send "Posting" to 911 for only $999999,99!=

Addes a note, edited by AWo

vExpert 2009/10/11 [:o]===[o:] [: ]o=o[ :] = Save forests! rent firewood! =
RParker
Immortal
Immortal
Jump to solution

Is this full virtualisation, because I didn’t have to make any changes to the guest OSes etc?

Yes that is correct. I wouldn't get bogged down in details, just keep it simple, the defaults are set for you, so as long as you use the defaults, you won't have any problem.

vmroyale
Immortal
Immortal
Jump to solution

Hello.

You are correct - VMware Server would be full virtualization.

Check out the Wikipedia article on hypervisor. It is a great start to understanding these concepts.

Also check out the "[Understanding Full Virtualization, Paravirtualization, and Hardware Assist|http://www.vmware.com/files/pdf/VMware_paravirtualization.pdf]" white paper from VMware, as it digs a bit deeper.

Good Luck!

Brian Atkinson | vExpert | VMTN Moderator | Author of "VCP5-DCV VMware Certified Professional-Data Center Virtualization on vSphere 5.5 Study Guide: VCP-550" | @vmroyale | http://vmroyale.com
MorganLeFay
Contributor
Contributor
Jump to solution

Thanks for all the helpful info, guys!

0 Kudos
AWo
Immortal
Immortal
Jump to solution

From "A Comparison of Software and Hardware Techniques for x86 Virtualization"

Keith Adams

VMware

Ole Agesen

VMware

Simple Binary Transaltion:

Our software VMM uses a translator with these properties:

  • Binary. Input is binary x86 code, not source code.

  • Dynamic. Translation happens at runtime, interleaved with execution of the generated code.

  • On demand. Code is translated only when it is about to execute. This laziness side-steps the problem of telling code and data apart.

  • System level. The translator makes no assumptions about the guest code. Rules are set by the x86 ISA, not by a higher-level ABI. In contrast, an application-level translator like Dynamo might assume that “return addresses are always produced by calls” to generate faster code. The VMM does not: it must run a buffer overflow that clobbers a return address precisely as it would have run natively (producing the same hex numbers in the resulting error message).

  • Subsetting. The translator’s input is the full x86 instruction set, including all privileged instructions; output is a safe subset (mostly user-mode instructions).

And adaptive Binary Translation:

... Finally, although the details are beyond the scope of this paper,

we observe that BT is not required for safe execution of most user

code on most guest operating systems. By switching guest execution

between BT mode and direct execution as the guest switches

between kernel- and user-mode, we can limit BT overheads to kernel

code and permit application code to run at native speed.

That shows that VMware does not use "full-virtualization", the VMM can switch betwwen native execution and Translation.

In addition in the TA08 presentation, VMworld 2009, VMware distinguishes between "full emulation" and "hosted virtualisation" like VMware Workstation.

I think it is important to know that difference as the "full virtualisation" is considered to be slow and when people think of VMware when they think about "full-virtualization" they might com eto the conclusuion VMware is slow and they need paravirtualization in any case.

AWo

VCP 3 & 4

Author @ vmwire.net

\[:o]===\[o:]

=Would you like to have this posting as a ringtone on your cell phone?=

=Send "Posting" to 911 for only $999999,99!=

vExpert 2009/10/11 [:o]===[o:] [: ]o=o[ :] = Save forests! rent firewood! =
0 Kudos