[Info-vax] VMWARE/ESXi Linux
Dan Cross
cross at spitfire.i.gajendra.net
Tue Dec 3 11:10:25 EST 2024
In article <vina48$3sjr$6 at dont-email.me>,
Arne Vajhøj <arne at vajhoej.dk> wrote:
>On 12/3/2024 10:36 AM, Dan Cross wrote:
>> In article <vin68p$3sjr$4 at dont-email.me>,
>> Arne Vajhøj <arne at vajhoej.dk> wrote:
>>> On 11/28/2024 8:24 AM, Dan Cross wrote:
>>>> So Goldberg defined two "types" of hypervisor in his
>>>> dissertation: Types 1 and 2. Of course, this is an over
>>>> simplification, and those of us who work on OSes and hypervisors
>>>> understand that these distinctions are blurry and more on a
>>>> continuum than hard and fast buckets, but to a first order
>>>> approximation these categories are useful.
>>>>
>>>> Roughly, a Type-1 hypervisor is one that runs on the bare metal
>>>> and only supports guests; usually some special guest is
>>>> designated as a trusted "root VM". Xen, ESXi, and Hyper-V are
>>>> examples of Type-1 hypervisors.
>>>>
>>>> Again, roughly, a Type-2 hypervisor is one that runs in the
>>>> context of an existing operating system, using its services and
>>>> implementation for some of its functionality; examples include
>>>> KVM (they _say_ it's type 1, but that's really not true) and
>>>> PA1050. Usually with a Type-2 HV you've got a userspace program
>>>> running under the host operating system that provides control
>>>> functionality, device models, and so on. QEMU is an example of
>>>> such a thing (sometimes, confusingly, this is called the
>>>> hypervisor while the kernel-resident component, is called the
>>>> Virtual Machine Monitor, or VMM), but other examples exist:
>>>> CrosVM, for instance.
>>>
>>> I think the relevant distinction is that type 1 runs in the
>>> kernel while type 2 runs on the kernel.
>
>Reinserted:
># If VSI created a hypervisor as part of VMS then if
># it was in SYS$SYSTEM it would be a type 2 while if it
># was in SYS$LOADABLE_IMAGES it would be a type 1.
Irrelevant; this is based on your misconception of what a type-1
hypervisor is vs a type-2.
>> No. They both run in supervisor mode. On x86, this is even
>> necessary; the instructions to enter guest mode are privileged.
>
>That code does something that end up bringing the CPU in
>privileged mode does not make the code part of the kernel.
>
>To build on the VMS example the hypothetical type 2
>hypervisor in SYS$SYSTEM could (if properly authorized)
>call SYS$CMKRNL and do whatever. It would not become
>part of the VMS kernel from that.
This isn't really reelvant.
>Just like VMWare Player or VirtualBox running on Windows
>is not part of the Windows kernel even if they do use CPU
>support for virtualization.
They rely on existing OS services for resource allocation,
scheduling, memory management, etc, which is why they are
type-2 HV's and not type-1. Xen, Hyper-V, and ESXi implement
those things themselves, which is why they are type-1, and not
type-2.
>> Go back to Goldberg's dissertation; he discusses this at length.
^^^
Read this part again, Arne.
>>> KVM runs in Linux not on Linux. Which makes it type 1.
>>
>> Nope. KVM is dependent on Linux at this point. The claim that
>> it is a type-1 hypervisor is predicated on the idea that it was
>> separable from Linux, but I don't think anyone believes that
>> anymore.
>
>It is the opposite. KVM is type 1 not because it is separable
>from Linux but because it is inseparable from Linux.
Kinda. The claim is that KVM turns Linux+KVM into a type-1
hypervisor; that is, the entire combination becomes a the HV.
That's sort of a silly distinction, though, since the real
differentiator, defined by Goldberg, is whether or not the VMM
makes use of existing system services, which KVM very much does.
I wrote about this here, at length, several years ago. C.f.,
https://groups.google.com/g/comp.os.vms/c/nPYz56qulqg/m/vTDtsFNRAgAJ
Perhaps go review that post and read the associated references.
- Dan C.
More information about the Info-vax
mailing list