How come OS X allows multiple virtualization software at the same time while other systems don't?
up vote
0
down vote
favorite
I was surprised to experience that VirtualBox and docker's HyperKit can run VMs at the same time on OS X. Using different hypervisors at the same is not possible on Windows or Linux. How come it works on OS X?
virtualization hypervisor
migrated from serverfault.com Nov 21 at 11:31
This question came from our site for system and network administrators.
add a comment |
up vote
0
down vote
favorite
I was surprised to experience that VirtualBox and docker's HyperKit can run VMs at the same time on OS X. Using different hypervisors at the same is not possible on Windows or Linux. How come it works on OS X?
virtualization hypervisor
migrated from serverfault.com Nov 21 at 11:31
This question came from our site for system and network administrators.
1
You can run Hyper-V and VirtualBox 32bit (but not 64bit) VMs on Windows at the same time. What bitness were your VMs?
– lx07
Nov 21 at 11:40
Docker isn't actually considered a hypervisor. Docker requires a hypervisor to run. On Windows Hyper-V or VirtualBox can be used. On Linux or OSX it appears VirtualBox plays that roll.
– Ramhound
Nov 21 at 14:01
Docker on Linux does not need a hypervisor as Linux namespaces are native to Linux, so no VM is needed. Docker For Mac uses HyperKit.
– Tarnay Kálmán
Nov 21 at 14:17
@lx07, both 64 bit. VirtualBox showed that it was using hardware virtualization. I can't tell if HyperKit was using it, but it should be using it according to an official Docker blog post ( blog.docker.com/2016/05/docker-unikernels-open-source ).
– Tarnay Kálmán
Nov 21 at 14:22
add a comment |
up vote
0
down vote
favorite
up vote
0
down vote
favorite
I was surprised to experience that VirtualBox and docker's HyperKit can run VMs at the same time on OS X. Using different hypervisors at the same is not possible on Windows or Linux. How come it works on OS X?
virtualization hypervisor
I was surprised to experience that VirtualBox and docker's HyperKit can run VMs at the same time on OS X. Using different hypervisors at the same is not possible on Windows or Linux. How come it works on OS X?
virtualization hypervisor
virtualization hypervisor
asked Nov 21 at 11:21
Tarnay Kálmán
2,06152130
2,06152130
migrated from serverfault.com Nov 21 at 11:31
This question came from our site for system and network administrators.
migrated from serverfault.com Nov 21 at 11:31
This question came from our site for system and network administrators.
1
You can run Hyper-V and VirtualBox 32bit (but not 64bit) VMs on Windows at the same time. What bitness were your VMs?
– lx07
Nov 21 at 11:40
Docker isn't actually considered a hypervisor. Docker requires a hypervisor to run. On Windows Hyper-V or VirtualBox can be used. On Linux or OSX it appears VirtualBox plays that roll.
– Ramhound
Nov 21 at 14:01
Docker on Linux does not need a hypervisor as Linux namespaces are native to Linux, so no VM is needed. Docker For Mac uses HyperKit.
– Tarnay Kálmán
Nov 21 at 14:17
@lx07, both 64 bit. VirtualBox showed that it was using hardware virtualization. I can't tell if HyperKit was using it, but it should be using it according to an official Docker blog post ( blog.docker.com/2016/05/docker-unikernels-open-source ).
– Tarnay Kálmán
Nov 21 at 14:22
add a comment |
1
You can run Hyper-V and VirtualBox 32bit (but not 64bit) VMs on Windows at the same time. What bitness were your VMs?
– lx07
Nov 21 at 11:40
Docker isn't actually considered a hypervisor. Docker requires a hypervisor to run. On Windows Hyper-V or VirtualBox can be used. On Linux or OSX it appears VirtualBox plays that roll.
– Ramhound
Nov 21 at 14:01
Docker on Linux does not need a hypervisor as Linux namespaces are native to Linux, so no VM is needed. Docker For Mac uses HyperKit.
– Tarnay Kálmán
Nov 21 at 14:17
@lx07, both 64 bit. VirtualBox showed that it was using hardware virtualization. I can't tell if HyperKit was using it, but it should be using it according to an official Docker blog post ( blog.docker.com/2016/05/docker-unikernels-open-source ).
– Tarnay Kálmán
Nov 21 at 14:22
1
1
You can run Hyper-V and VirtualBox 32bit (but not 64bit) VMs on Windows at the same time. What bitness were your VMs?
– lx07
Nov 21 at 11:40
You can run Hyper-V and VirtualBox 32bit (but not 64bit) VMs on Windows at the same time. What bitness were your VMs?
– lx07
Nov 21 at 11:40
Docker isn't actually considered a hypervisor. Docker requires a hypervisor to run. On Windows Hyper-V or VirtualBox can be used. On Linux or OSX it appears VirtualBox plays that roll.
– Ramhound
Nov 21 at 14:01
Docker isn't actually considered a hypervisor. Docker requires a hypervisor to run. On Windows Hyper-V or VirtualBox can be used. On Linux or OSX it appears VirtualBox plays that roll.
– Ramhound
Nov 21 at 14:01
Docker on Linux does not need a hypervisor as Linux namespaces are native to Linux, so no VM is needed. Docker For Mac uses HyperKit.
– Tarnay Kálmán
Nov 21 at 14:17
Docker on Linux does not need a hypervisor as Linux namespaces are native to Linux, so no VM is needed. Docker For Mac uses HyperKit.
– Tarnay Kálmán
Nov 21 at 14:17
@lx07, both 64 bit. VirtualBox showed that it was using hardware virtualization. I can't tell if HyperKit was using it, but it should be using it according to an official Docker blog post ( blog.docker.com/2016/05/docker-unikernels-open-source ).
– Tarnay Kálmán
Nov 21 at 14:22
@lx07, both 64 bit. VirtualBox showed that it was using hardware virtualization. I can't tell if HyperKit was using it, but it should be using it according to an official Docker blog post ( blog.docker.com/2016/05/docker-unikernels-open-source ).
– Tarnay Kálmán
Nov 21 at 14:22
add a comment |
1 Answer
1
active
oldest
votes
up vote
1
down vote
Let me try to answer this not-very-simple question.
There are two types of hypervisors, as summarized by
Wikipedia:
Type-1, native or bare-metal hypervisors
These hypervisors run directly on the host's hardware to control the
hardware and to manage guest operating systems. For this reason, they
are sometimes called bare metal hypervisors.
Type-2 or hosted hypervisors
These hypervisors run on a conventional operating system (OS) just as
other computer programs do.
Hyper-V is type 1, which means that it when installed becomes the computer.
Installing the Hyper-V feature in effect relegates the installed Windows version
to being just a virtual machine, which is however allocated 100% of the hardware
resources.
VirtualBox and VMWare for Windows are type 2, meaning that they work
under Windows as normal programs, where CPUs are emulated as threads,
so could in theory still run under a type 1 hypervisor such as Hyper-V.
The problem arises when hardware virtualization assistance is used for
the emulation of dissimilar CPUs, namely Intel VT-x and AMD-V.
Such hardware is required for emulating, for example, a 32-bit CPU
on a 64-bit computer.
Hardware virtualization can have only one owner (or user).
This means that only one hypervisor can use it at any one time and precludes
having two type 2 hypervisors running on the same computer.
In addition, specifically for the mentioned Docker, this is not a hypervisor.
As Wkipedia explains:
Docker is a computer program that performs operating-system-level virtualization, also known as "containerization".
Docker does not do any CPU or device emulation, but supplies a thin layer
for translating containerized operating system calls to host
operating system calls. Containers are very limited in how much their
operating system can diverge form that of the host, as it must be similar
enough for simple and light translation of the calls.
Docker therefore doesn't conflict with hypervisors on hardware usage.
Hi, thanks for the explanation of type 1 and type 2. I understand that Docker is not a hypervisor. OS X's kernel is so dissimilar from Linux, that Docker containers cannot run directly on it, so Docker For Mac is using a Linux VM behind the scenes by default, this VM is run using HyperKit which in turn uses Hypervisor.framework, which requires VT-x (so hardware virtualization assistance?).
– Tarnay Kálmán
Nov 21 at 23:48
In addition, there are aspects such as network integration, hardware acceleration, memory management and sharing and other sharing (eg. shared folders, clipboard) that can occasionally get in the way when operating VMs from multiple hypervisors concurrently, so even it it seems to work, likely it will not be supported by the vendor.
– Cameron Kerr
Nov 22 at 8:58
add a comment |
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
up vote
1
down vote
Let me try to answer this not-very-simple question.
There are two types of hypervisors, as summarized by
Wikipedia:
Type-1, native or bare-metal hypervisors
These hypervisors run directly on the host's hardware to control the
hardware and to manage guest operating systems. For this reason, they
are sometimes called bare metal hypervisors.
Type-2 or hosted hypervisors
These hypervisors run on a conventional operating system (OS) just as
other computer programs do.
Hyper-V is type 1, which means that it when installed becomes the computer.
Installing the Hyper-V feature in effect relegates the installed Windows version
to being just a virtual machine, which is however allocated 100% of the hardware
resources.
VirtualBox and VMWare for Windows are type 2, meaning that they work
under Windows as normal programs, where CPUs are emulated as threads,
so could in theory still run under a type 1 hypervisor such as Hyper-V.
The problem arises when hardware virtualization assistance is used for
the emulation of dissimilar CPUs, namely Intel VT-x and AMD-V.
Such hardware is required for emulating, for example, a 32-bit CPU
on a 64-bit computer.
Hardware virtualization can have only one owner (or user).
This means that only one hypervisor can use it at any one time and precludes
having two type 2 hypervisors running on the same computer.
In addition, specifically for the mentioned Docker, this is not a hypervisor.
As Wkipedia explains:
Docker is a computer program that performs operating-system-level virtualization, also known as "containerization".
Docker does not do any CPU or device emulation, but supplies a thin layer
for translating containerized operating system calls to host
operating system calls. Containers are very limited in how much their
operating system can diverge form that of the host, as it must be similar
enough for simple and light translation of the calls.
Docker therefore doesn't conflict with hypervisors on hardware usage.
Hi, thanks for the explanation of type 1 and type 2. I understand that Docker is not a hypervisor. OS X's kernel is so dissimilar from Linux, that Docker containers cannot run directly on it, so Docker For Mac is using a Linux VM behind the scenes by default, this VM is run using HyperKit which in turn uses Hypervisor.framework, which requires VT-x (so hardware virtualization assistance?).
– Tarnay Kálmán
Nov 21 at 23:48
In addition, there are aspects such as network integration, hardware acceleration, memory management and sharing and other sharing (eg. shared folders, clipboard) that can occasionally get in the way when operating VMs from multiple hypervisors concurrently, so even it it seems to work, likely it will not be supported by the vendor.
– Cameron Kerr
Nov 22 at 8:58
add a comment |
up vote
1
down vote
Let me try to answer this not-very-simple question.
There are two types of hypervisors, as summarized by
Wikipedia:
Type-1, native or bare-metal hypervisors
These hypervisors run directly on the host's hardware to control the
hardware and to manage guest operating systems. For this reason, they
are sometimes called bare metal hypervisors.
Type-2 or hosted hypervisors
These hypervisors run on a conventional operating system (OS) just as
other computer programs do.
Hyper-V is type 1, which means that it when installed becomes the computer.
Installing the Hyper-V feature in effect relegates the installed Windows version
to being just a virtual machine, which is however allocated 100% of the hardware
resources.
VirtualBox and VMWare for Windows are type 2, meaning that they work
under Windows as normal programs, where CPUs are emulated as threads,
so could in theory still run under a type 1 hypervisor such as Hyper-V.
The problem arises when hardware virtualization assistance is used for
the emulation of dissimilar CPUs, namely Intel VT-x and AMD-V.
Such hardware is required for emulating, for example, a 32-bit CPU
on a 64-bit computer.
Hardware virtualization can have only one owner (or user).
This means that only one hypervisor can use it at any one time and precludes
having two type 2 hypervisors running on the same computer.
In addition, specifically for the mentioned Docker, this is not a hypervisor.
As Wkipedia explains:
Docker is a computer program that performs operating-system-level virtualization, also known as "containerization".
Docker does not do any CPU or device emulation, but supplies a thin layer
for translating containerized operating system calls to host
operating system calls. Containers are very limited in how much their
operating system can diverge form that of the host, as it must be similar
enough for simple and light translation of the calls.
Docker therefore doesn't conflict with hypervisors on hardware usage.
Hi, thanks for the explanation of type 1 and type 2. I understand that Docker is not a hypervisor. OS X's kernel is so dissimilar from Linux, that Docker containers cannot run directly on it, so Docker For Mac is using a Linux VM behind the scenes by default, this VM is run using HyperKit which in turn uses Hypervisor.framework, which requires VT-x (so hardware virtualization assistance?).
– Tarnay Kálmán
Nov 21 at 23:48
In addition, there are aspects such as network integration, hardware acceleration, memory management and sharing and other sharing (eg. shared folders, clipboard) that can occasionally get in the way when operating VMs from multiple hypervisors concurrently, so even it it seems to work, likely it will not be supported by the vendor.
– Cameron Kerr
Nov 22 at 8:58
add a comment |
up vote
1
down vote
up vote
1
down vote
Let me try to answer this not-very-simple question.
There are two types of hypervisors, as summarized by
Wikipedia:
Type-1, native or bare-metal hypervisors
These hypervisors run directly on the host's hardware to control the
hardware and to manage guest operating systems. For this reason, they
are sometimes called bare metal hypervisors.
Type-2 or hosted hypervisors
These hypervisors run on a conventional operating system (OS) just as
other computer programs do.
Hyper-V is type 1, which means that it when installed becomes the computer.
Installing the Hyper-V feature in effect relegates the installed Windows version
to being just a virtual machine, which is however allocated 100% of the hardware
resources.
VirtualBox and VMWare for Windows are type 2, meaning that they work
under Windows as normal programs, where CPUs are emulated as threads,
so could in theory still run under a type 1 hypervisor such as Hyper-V.
The problem arises when hardware virtualization assistance is used for
the emulation of dissimilar CPUs, namely Intel VT-x and AMD-V.
Such hardware is required for emulating, for example, a 32-bit CPU
on a 64-bit computer.
Hardware virtualization can have only one owner (or user).
This means that only one hypervisor can use it at any one time and precludes
having two type 2 hypervisors running on the same computer.
In addition, specifically for the mentioned Docker, this is not a hypervisor.
As Wkipedia explains:
Docker is a computer program that performs operating-system-level virtualization, also known as "containerization".
Docker does not do any CPU or device emulation, but supplies a thin layer
for translating containerized operating system calls to host
operating system calls. Containers are very limited in how much their
operating system can diverge form that of the host, as it must be similar
enough for simple and light translation of the calls.
Docker therefore doesn't conflict with hypervisors on hardware usage.
Let me try to answer this not-very-simple question.
There are two types of hypervisors, as summarized by
Wikipedia:
Type-1, native or bare-metal hypervisors
These hypervisors run directly on the host's hardware to control the
hardware and to manage guest operating systems. For this reason, they
are sometimes called bare metal hypervisors.
Type-2 or hosted hypervisors
These hypervisors run on a conventional operating system (OS) just as
other computer programs do.
Hyper-V is type 1, which means that it when installed becomes the computer.
Installing the Hyper-V feature in effect relegates the installed Windows version
to being just a virtual machine, which is however allocated 100% of the hardware
resources.
VirtualBox and VMWare for Windows are type 2, meaning that they work
under Windows as normal programs, where CPUs are emulated as threads,
so could in theory still run under a type 1 hypervisor such as Hyper-V.
The problem arises when hardware virtualization assistance is used for
the emulation of dissimilar CPUs, namely Intel VT-x and AMD-V.
Such hardware is required for emulating, for example, a 32-bit CPU
on a 64-bit computer.
Hardware virtualization can have only one owner (or user).
This means that only one hypervisor can use it at any one time and precludes
having two type 2 hypervisors running on the same computer.
In addition, specifically for the mentioned Docker, this is not a hypervisor.
As Wkipedia explains:
Docker is a computer program that performs operating-system-level virtualization, also known as "containerization".
Docker does not do any CPU or device emulation, but supplies a thin layer
for translating containerized operating system calls to host
operating system calls. Containers are very limited in how much their
operating system can diverge form that of the host, as it must be similar
enough for simple and light translation of the calls.
Docker therefore doesn't conflict with hypervisors on hardware usage.
answered Nov 21 at 16:01
harrymc
249k10257550
249k10257550
Hi, thanks for the explanation of type 1 and type 2. I understand that Docker is not a hypervisor. OS X's kernel is so dissimilar from Linux, that Docker containers cannot run directly on it, so Docker For Mac is using a Linux VM behind the scenes by default, this VM is run using HyperKit which in turn uses Hypervisor.framework, which requires VT-x (so hardware virtualization assistance?).
– Tarnay Kálmán
Nov 21 at 23:48
In addition, there are aspects such as network integration, hardware acceleration, memory management and sharing and other sharing (eg. shared folders, clipboard) that can occasionally get in the way when operating VMs from multiple hypervisors concurrently, so even it it seems to work, likely it will not be supported by the vendor.
– Cameron Kerr
Nov 22 at 8:58
add a comment |
Hi, thanks for the explanation of type 1 and type 2. I understand that Docker is not a hypervisor. OS X's kernel is so dissimilar from Linux, that Docker containers cannot run directly on it, so Docker For Mac is using a Linux VM behind the scenes by default, this VM is run using HyperKit which in turn uses Hypervisor.framework, which requires VT-x (so hardware virtualization assistance?).
– Tarnay Kálmán
Nov 21 at 23:48
In addition, there are aspects such as network integration, hardware acceleration, memory management and sharing and other sharing (eg. shared folders, clipboard) that can occasionally get in the way when operating VMs from multiple hypervisors concurrently, so even it it seems to work, likely it will not be supported by the vendor.
– Cameron Kerr
Nov 22 at 8:58
Hi, thanks for the explanation of type 1 and type 2. I understand that Docker is not a hypervisor. OS X's kernel is so dissimilar from Linux, that Docker containers cannot run directly on it, so Docker For Mac is using a Linux VM behind the scenes by default, this VM is run using HyperKit which in turn uses Hypervisor.framework, which requires VT-x (so hardware virtualization assistance?).
– Tarnay Kálmán
Nov 21 at 23:48
Hi, thanks for the explanation of type 1 and type 2. I understand that Docker is not a hypervisor. OS X's kernel is so dissimilar from Linux, that Docker containers cannot run directly on it, so Docker For Mac is using a Linux VM behind the scenes by default, this VM is run using HyperKit which in turn uses Hypervisor.framework, which requires VT-x (so hardware virtualization assistance?).
– Tarnay Kálmán
Nov 21 at 23:48
In addition, there are aspects such as network integration, hardware acceleration, memory management and sharing and other sharing (eg. shared folders, clipboard) that can occasionally get in the way when operating VMs from multiple hypervisors concurrently, so even it it seems to work, likely it will not be supported by the vendor.
– Cameron Kerr
Nov 22 at 8:58
In addition, there are aspects such as network integration, hardware acceleration, memory management and sharing and other sharing (eg. shared folders, clipboard) that can occasionally get in the way when operating VMs from multiple hypervisors concurrently, so even it it seems to work, likely it will not be supported by the vendor.
– Cameron Kerr
Nov 22 at 8:58
add a comment |
Thanks for contributing an answer to Super User!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fsuperuser.com%2fquestions%2f1377255%2fhow-come-os-x-allows-multiple-virtualization-software-at-the-same-time-while-oth%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
1
You can run Hyper-V and VirtualBox 32bit (but not 64bit) VMs on Windows at the same time. What bitness were your VMs?
– lx07
Nov 21 at 11:40
Docker isn't actually considered a hypervisor. Docker requires a hypervisor to run. On Windows Hyper-V or VirtualBox can be used. On Linux or OSX it appears VirtualBox plays that roll.
– Ramhound
Nov 21 at 14:01
Docker on Linux does not need a hypervisor as Linux namespaces are native to Linux, so no VM is needed. Docker For Mac uses HyperKit.
– Tarnay Kálmán
Nov 21 at 14:17
@lx07, both 64 bit. VirtualBox showed that it was using hardware virtualization. I can't tell if HyperKit was using it, but it should be using it according to an official Docker blog post ( blog.docker.com/2016/05/docker-unikernels-open-source ).
– Tarnay Kálmán
Nov 21 at 14:22