Talk:Paravirtualization

Page contents not supported in other languages.
From Wikipedia, the free encyclopedia

I think this article should also state what effects current virtualization aware processor architectures (e.g. VT-x, AMD-V) have on the necessity for paravirtualization. I believe that with such processors the necessity to have paravirtualized operating systems is effectively obsolete, but I am still looking for a source to confirm this assumption. Maybe someone with deeper knowledge could clarify this in the article?


— Preceding unsigned comment added by 84.112.247.209 (talk) 15:25, 9 December 2013 (UTC)[reply]

I believe this statement is simply incorrect - "The intent of the modified interface, is to reduce the portion of the guest's execution time spent performing "computationally expensive tasks", which refers to any operation which is substantially more difficult to run in a virtual environment compared to a non-virtualized environment."

Paravirtualization is about improving guest performance, but it does this by avoiding duplication of effort between the host and guest, not by moving high CPU tasks to the host. It takes the same amount of CPU to calculate PI to 10k digits in a guest as a host.

For example, IBM's zVM Control Program hypervisor does I/O on behalf of CMS guests. CMS doesn't have support for disk error recovery because it never sees an error - the errors are all handled by the hypervisor. The same can be said of virtual NICs and page/swap; if the guest knows it is a guest, the host and guest can cooperate, reducing overhead.

Victor.Sac (talk) 00:03, 25 August 2009 (UTC)[reply]

Are you thinking that the term "computationally expensive tasks" isn't adequately qualified by the clauses which refers to any operation which is substantially more difficult to run in a virtual environment compared to a non-virtualized environment? The fix is easy: join the two clauses. ;-) 84.13.167.146 (talk) 13:35, 27 August 2009 (UTC)[reply]

I deleted the use of the term "abstraction" from this page. Reason: (para-)virtualization needs to be distinguished from abstraction. Virtualization does no abstraction at all. This issue is detailed in an IEEE Magazin (think, it is the april 2005 issue or so).

Interface is a better word. Good catch. Mark Williamson 03:29, 17 September 2005 (UTC)[reply]

The article combines two related but separate things and calls them both paravirtualization, specifically, that of presenting a differing software interface and that of making a hypercall into the VM layer. Hypercalls are one (common) method of implementing paravirtualization. It's perfectly possible for a hosted OS to use a hypercall for something other than virtualisation support - IBM's VM-CMS uses it for management of virtual machine resources. Lucidion 17:42, 8 January 2007 (UTC)[reply]


Regarding this edit... I added back some of the text, because it seemed useful. Even if redundant with the text that replaced it, it's a less technical (more accessible) version.

Also, regarding the "layer 1 of an x86 architecture" statement... is this needed? Paravirtualization seems like it's a concept that could apply to any platform, and even though the examples given are all x86, it would still be nice to keep the article more or less platform-agnostic (unless it's really the case that paravirtualization will never be used on other platforms, in which case, this information should be stated earlier and more prominently). --Interiot 16:38, 26 September 2005 (UTC)[reply]

More details on usage[edit]

Could the article have more details on the uses of paravirtualization, like is it used in modern-day x86 systems, and if so, how, where, when and why is it used over standard virtualisation?

Is it a major change to convert an operating system to support paravirtualization? Possibly links in the related section to other alternatives to paravirtualization.

If anyone knows the answers to the above, then I suggest they are intergrated into the article, as I feel it's a bit short on detail at the moment.

Thanks --Wierdy1024 20:07, 5 April 2006 (UTC)[reply]

Ring 0[edit]

Actually, Xen on AMD processors runs in "Ring -1", sometimes called "AMD Virtualization Technology". Both Intel and AMD are adding better virtualization support, but in totally incompatible ways. I suggest either dropping the details from the article, or finding an operating system internals expert to write a better description.

Actually, we currently have at least these options for virtualization of x86:

  • Simulate and translate for execution on non-native hardware. Example: Virtual PC
  • Prescan code and patch out non-virtualizable instructions. Example: VMware
  • Write special version of OS that doesn't use non-virtualizable instructions. Example: Xen/Linux.
  • Use new hardware support for virtualization, run unmodified OS. Example: Xen/Windows

Anybody want to take this and go with it?

--John Nagle 02:50, 6 April 2006 (UTC)[reply]

Paravirtualization vs Hypervisor ??[edit]

like to have a clarification on this. what are the same, the different. thank you.—Preceding unsigned comment added by 61.19.242.176 (talkcontribs)

I think this article confuses the two and that's evident by the very first sentence!

Paravirtualization simply means that the guest operating systems cooperate with a host operating system (which can be a hypervisor, but it can likewise be something bigger), rather than live in a sandbox where they "think" they're running alone. This is why, for example, User Mode Linux and CoLinux are frequently refered to as examples of paravirtualization. Neither, however, use Hypervisors.

Hypervisors are one approach to paravirtualization. They consist of an extremely simple host operating system, apportioning real system resources amongst cooperating guests.

I think this article needs substantial rewrites. It's talking, essentially, about hypervisors, but the latter is merely one approach, not the sole approach, and by defining paravirtualization this way it's misleading and wrong in many places. --98.254.202.225 (talk) 13:59, 30 November 2011 (UTC)[reply]

Paravirtualization simplifies the VMM?[edit]

Is that really the case? What is the primary intent of paravirtualization? Is it to a) reduce the performance hit of trying to virtualize tricky/nasty CPU-instructions by pushing them into the host's domain (instead of trying to execute them in the virtual domain) b) turn formerly unvirtualizable software into virtualizable software (by re-targeting them for the paravirtual VMM), in instances where some instructions simply can't be satisfatorially virtualized (i.e. fails to satisfy that formal requirement) —Preceding unsigned comment added by 99.3.83.93 (talk) 03:48, 8 April 2009 (UTC)[reply]

Clarification of NIC example?[edit]

About that example in the History section:

"An example of using paravirtualization for performance, the virtual monitor can present the host operating system with an intelligent NIC with support for DMA-based sending of packets, even though the NIC on the real system lacks this capability."

Doesn't the virtual monitor present the guest operating system with an intelligent NIC? That is, the guest operating system is afforded a DMA-capable NIC despite the real system not having one? object01 (talk) 02:29, 16 April 2009 (UTC)[reply]

Where is there any "hypercall" in the NIC example? Marchash (talk) 08:19, 28 July 2009 (UTC)[reply]

ParaVM[edit]

Paravirtualized machines are (unsurprisingly) referred to as ParaVMs. Anyone have a source to cite for that? I went ahead and added a redirect page. Ken (talk) 22:34, 6 July 2009 (UTC)[reply]

Wording[edit]

"cannot be run on top of a paravirtualized VMM" -- should rather be "paravirtualizing VMM" ?! —Preceding unsigned comment added by 78.145.188.119 (talk) 19:16, 3 August 2009 (UTC)[reply]

Hyphenation?[edit]

Why is the word hyphenated in the lead, but nowhere else in the article, including it's title? 87.75.117.183 (talk) 18:01, 27 October 2020 (UTC)[reply]