KVM on Windows?
KVM on Windows?
Although I ordinarily wouldn't expect that Virtualbox KVM on Windows should work,
I just did a test and surprisingly the new Guest successfully boot up (KVM paravirtualization on Windows).
So, questions before I start digging deeper...
Although KVM ordinarily is run only on Linux Hosts because KVM is a part of the distributed mainline Linux kernel today, an older version of KVM is installable on Windows although GUI management apps have generally died years ago. Still, from previous experimentation I still have KVM installed on my Windows 10 (from before it was upgraded from a Win8).
Am asking whether Virtualbox 5.x should be able to use KVM paravirtualization on Windows.
Am asking whether the KVM paravitualization option should be greyed out or available on a Windows without KVM installed... and conversely if the Hyper-V option should be greyed out or still available if Virtualbox is installed on a Linux Host.
If the above paravirtualization options are selected but not supported on a Host, is what I'm possibly seeing simply that Virtualbox is falling back to the default Virtualbox hypervisor?
TIA.
I just did a test and surprisingly the new Guest successfully boot up (KVM paravirtualization on Windows).
So, questions before I start digging deeper...
Although KVM ordinarily is run only on Linux Hosts because KVM is a part of the distributed mainline Linux kernel today, an older version of KVM is installable on Windows although GUI management apps have generally died years ago. Still, from previous experimentation I still have KVM installed on my Windows 10 (from before it was upgraded from a Win8).
Am asking whether Virtualbox 5.x should be able to use KVM paravirtualization on Windows.
Am asking whether the KVM paravitualization option should be greyed out or available on a Windows without KVM installed... and conversely if the Hyper-V option should be greyed out or still available if Virtualbox is installed on a Linux Host.
If the above paravirtualization options are selected but not supported on a Host, is what I'm possibly seeing simply that Virtualbox is falling back to the default Virtualbox hypervisor?
TIA.
-
Perryg
- Site Moderator
- Posts: 34369
- Joined: 6. Sep 2008, 22:55
- Primary OS: Linux other
- VBox Version: OSE self-compiled
- Guest OSses: *NIX
Re: KVM on Windows?
Only the log file would be able to tell you this.If the above paravirtualization options are selected but not supported on a Host, is what I'm possibly seeing simply that Virtualbox is falling back to the default Virtualbox hypervisor?
Re: KVM on Windows?
Inspecting the Guest startup log file,Perryg wrote:Only the log file would be able to tell you this.If the above paravirtualization options are selected but not supported on a Host, is what I'm possibly seeing simply that Virtualbox is falling back to the default Virtualbox hypervisor?
I imagine an entry describing the hypervisor used should be in there somewhere, but it's not explicitly identified by name. Maybe it's in there somewhere referenced by a number ID, but it's not obvious. I can see parts of the logfile which are definitely associated with starting various services and in particular calling the many new security functions, but any search of the log file for keywords associated with any hypervisor comes up empty.
Unless someone can describe what I should be looking for in the log file, my original thought was to identify the used hypervisor by testing for the features each hypervisor is supposed to support.
-
Perryg
- Site Moderator
- Posts: 34369
- Joined: 6. Sep 2008, 22:55
- Primary OS: Linux other
- VBox Version: OSE self-compiled
- Guest OSses: *NIX
Re: KVM on Windows?
Very well.
-
Martin
- Volunteer
- Posts: 2562
- Joined: 30. May 2007, 18:05
- Primary OS: Fedora other
- VBox Version: VirtualBox+Oracle ExtPack
- Guest OSses: XP, Win7, Win10, Linux, OS/2
Re: KVM on Windows?
Have a look at the manual:
http://www.virtualbox.org/manual/ch10.html#gimproviders
http://www.virtualbox.org/manual/ch10.html#gimproviders
-
mpack
- Site Moderator
- Posts: 39134
- Joined: 4. Sep 2008, 17:09
- Primary OS: MS Windows 10
- VBox Version: VirtualBox+Oracle ExtPack
- Guest OSses: Mostly XP
Re: KVM on Windows?
KVM/Hyper-v (or none) is a choice of APIs that VirtualBox can present to the guest. The host is not relevant.TSU wrote:Although I ordinarily wouldn't expect that Virtualbox KVM on Windows should work,
I just did a test and surprisingly the new Guest successfully boot up (KVM paravirtualization on Windows).
This is no different than the choice of (say) network card types that VirtualBox can present to the guest. Again the hosts actual network card type is not relevant.
Re: KVM on Windows?
Is this true?mpack wrote:KVM/Hyper-v (or none) is a choice of APIs that VirtualBox can present to the guest. The host is not relevant.TSU wrote:Although I ordinarily wouldn't expect that Virtualbox KVM on Windows should work,
I just did a test and surprisingly the new Guest successfully boot up (KVM paravirtualization on Windows).
This is no different than the choice of (say) network card types that VirtualBox can present to the guest. Again the hosts actual network card type is not relevant.
Somewhere (not the links in this thread) I read that the Host OS determines whether KVM or Hyper-V is available to Virtualbox, which in turn is able to pass that hypervisor to the Guest. This is because KVM is embedded in the Linux kernel and Hyper-V is embedded in the Windows kernel.
The offical Virtualbox docs (Virtualbox Help section 3.4.3 "System Settings > 'Acceleration' tab' ") and the Virtualbox Manual (http://www.virtualbox.org/manual/ch10.html#gimproviders) are both unclear. The term used "paravirtualization interface" is original and nowhere precisely describes whether the interface faces the Host (to accept the hypervisor provided by the OS) or the Guest, which would require Virtualbox to itself have the hypervisor code bits normally provided by the Host OS.
The documentation about the "Minimal" and Virtualbox hypervisors are less unclear, mostly because IMO they describe what can only be provided by only Virtualbox and not from anything else.
And, I don't think that how hypervisors are implemented can in any way be compared with device emulation like selecting network cards. Is a whole different and separate way of implementation, and in fact is where many draw the line between Virt technology "Generation 2" and "Generation 3."
-
michaln
- Oracle Corporation
- Posts: 2973
- Joined: 19. Dec 2007, 15:45
- Primary OS: MS Windows 7
- VBox Version: VirtualBox+Oracle ExtPack
- Guest OSses: Any and all
- Contact:
Re: KVM on Windows?
Yes, it's true.TSU wrote:Is this true?
I don't know where you read that but it's nonsense. VirtualBox provides the Hyper-V/KVM interfaces to the guest OS independently of what is or isn't available on the host.Somewhere (not the links in this thread) I read that the Host OS determines whether KVM or Hyper-V is available to Virtualbox, which in turn is able to pass that hypervisor to the Guest. This is because KVM is embedded in the Linux kernel and Hyper-V is embedded in the Windows kernel.
The device emulation comparison isn't bad, that is more or less how it works. Look at the VirtualBox source code and judge for yourself. Forget stupid meaningless buzzwords like "Generation 3", they're just that... meaningless buzzwords.And, I don't think that how hypervisors are implemented can in any way be compared with device emulation like selecting network cards. Is a whole different and separate way of implementation, and in fact is where many draw the line between Virt technology "Generation 2" and "Generation 3."
-
mpack
- Site Moderator
- Posts: 39134
- Joined: 4. Sep 2008, 17:09
- Primary OS: MS Windows 10
- VBox Version: VirtualBox+Oracle ExtPack
- Guest OSses: Mostly XP
Re: KVM on Windows?
It is clear to me that you are confusing two technologies. After years of warning people that Hyper-v is not a synonym for VT-x or AMD-v (a hardware feature that the Hyper-v product makes use of), here we have the result: people thinking that one implies the other.TSU wrote:Is this true?
Hyper-v is the name of Microsoft software product which makes use of VT-x/AMD-v (hardware features provided by Intel/AMD), and which presents a paravirtualization API to the guest OS - which is AFAIK always Windows of some kind - so that the guest has relatively efficient but indirect access to host hardware resources. This API has nothing to do with VT-x/AMD-v.
VirtualBox is a competing virtualization product. It too makes use of VT-x/AMD-v on the host, which it incidentally requires for 64bit guests, and all Win8 and Win10 guests. VirtualBox v5 has the new ability to present a Hyper-v compatible API to guests - mostly only recent Windows guests will have the ability to use this API. VirtualBox can also present a KVM type API, which will mostly be of use to Linux guests.
And incidentally, the network card analogy is quite apt. In both cases the VM presents an API to the guest, allowing the guest to access host resources. The only difference is that one API works by emulating pre-existing physical hardware, while the other does not. Bypassing the hardware emulation layer makes the guest run more efficiently, OTOH it requires the guest OS to have drivers that are specific to running as a VM.
-
Ramshankar
- Oracle Corporation
- Posts: 793
- Joined: 7. Jan 2008, 16:17
Re: KVM on Windows?
I thought it was clear enough, but perhaps I'll add a paragraph to the User Manual to make it more explicit that this (paravirtualization interface setting of a VirtualBox VM) has nothing to do with Hyper-V on the host or Linux KVM on the host.
Oracle Corp.
-
mpack
- Site Moderator
- Posts: 39134
- Joined: 4. Sep 2008, 17:09
- Primary OS: MS Windows 10
- VBox Version: VirtualBox+Oracle ExtPack
- Guest OSses: Mostly XP
Re: KVM on Windows?
Well, everything I know about the feature was gained by reading the user manual (plus of course prior knowledge of what VT-x and Hyper-v/KVM are), so I'd agree that the user manual is already quite clear.
Re: KVM on Windows?
Thx all for your clarifying comments.
The "Gen2" and "Gen3" labels were very apt historically, I read it first in some early VMware Labs documentation. Unfortunately, I can't find these early documents published roughly about the time CPU extensions first appeared.
IIRC they defined
"Gen 1" virtualization was software only virtualization before hardware extensions.
"Gen 2" only supported CPU and memory extensions. For many years, device emulation was non-existent or at most sparse.
"Gen 3" more or less describes current virtualization with extensive but not yet complete support for virtualizing many if not most common devices
If you haven't been using virtualization long enough, you might not have experienced the days of "Gen 1" when VMware was the only virtualization with high performance and "Gen 2" when you were pretty much restricted to Server apps which didn't need a variety of I/O. So, historically each Gen description was pretty significant.
It may also be that the Virtualbox implementation of a hypervisor may differ from others (Just as Xen is different than just about everybody else) and I have no problem with that. What works, works and the important result is whether what is desired is delivered.
So, just sayin... If you grew up in Virtualbox, you may not be aware that people coming from elsewhere will arrive with certain assumptions and expectations which may not be consistent with "The Virtualbox way" which I repeat is no judgement on what is necessarily the "correct" way when many ways will work.
Thx again,
Tony
The "Gen2" and "Gen3" labels were very apt historically, I read it first in some early VMware Labs documentation. Unfortunately, I can't find these early documents published roughly about the time CPU extensions first appeared.
IIRC they defined
"Gen 1" virtualization was software only virtualization before hardware extensions.
"Gen 2" only supported CPU and memory extensions. For many years, device emulation was non-existent or at most sparse.
"Gen 3" more or less describes current virtualization with extensive but not yet complete support for virtualizing many if not most common devices
If you haven't been using virtualization long enough, you might not have experienced the days of "Gen 1" when VMware was the only virtualization with high performance and "Gen 2" when you were pretty much restricted to Server apps which didn't need a variety of I/O. So, historically each Gen description was pretty significant.
It may also be that the Virtualbox implementation of a hypervisor may differ from others (Just as Xen is different than just about everybody else) and I have no problem with that. What works, works and the important result is whether what is desired is delivered.
So, just sayin... If you grew up in Virtualbox, you may not be aware that people coming from elsewhere will arrive with certain assumptions and expectations which may not be consistent with "The Virtualbox way" which I repeat is no judgement on what is necessarily the "correct" way when many ways will work.
Thx again,
Tony
Re: KVM on Windows?
One last Q related to this thread's topic...
Because VBox possesses its ownn "virtualization interface code" independent of the OS,
Will this mean that if I run a HostOS which <does not> support any hypervisor but have the CPU virt extensions enabled in the BIOS, that Virtualbox will still be able to support hardware assisted virtualization and with 5.x also present a paravirtualization interface of choice to the Guest?
(Key here is that the OS specifically does not support virtualization so VBox essentially bypasses any OS non-support).
Thx,
Tony
Because VBox possesses its ownn "virtualization interface code" independent of the OS,
Will this mean that if I run a HostOS which <does not> support any hypervisor but have the CPU virt extensions enabled in the BIOS, that Virtualbox will still be able to support hardware assisted virtualization and with 5.x also present a paravirtualization interface of choice to the Guest?
(Key here is that the OS specifically does not support virtualization so VBox essentially bypasses any OS non-support).
Thx,
Tony
Re: KVM on Windows?
addendum to my last question about an OS which specifically does not support virtualization,
Seems to me that it'd be useful to describe a concrete scenario,
Windows Home Editions (7, 8, 8.1) are notorious for being feature-handicapped, and virtualization is one such feature. This seems to have been changed for Win10 Home edition though, virtualization is enabled but no User tools are provided.
If VBox 5.0 were installed on Win7, Win8 or Win8.1 Home Editions, would hardware assist still work?
Tony
Seems to me that it'd be useful to describe a concrete scenario,
Windows Home Editions (7, 8, 8.1) are notorious for being feature-handicapped, and virtualization is one such feature. This seems to have been changed for Win10 Home edition though, virtualization is enabled but no User tools are provided.
If VBox 5.0 were installed on Win7, Win8 or Win8.1 Home Editions, would hardware assist still work?
Tony
-
mpack
- Site Moderator
- Posts: 39134
- Joined: 4. Sep 2008, 17:09
- Primary OS: MS Windows 10
- VBox Version: VirtualBox+Oracle ExtPack
- Guest OSses: Mostly XP
Re: KVM on Windows?
As to the final question, it has already been mentioned that the host OS is not relevant.