On Thu, 2020-12-10 at 08:46 +0800, Lu Baolu wrote: > +/* > + * We want to figure out which context we are running in. But the hardware > + * does not introduce a reliable way (instruction, CPUID leaf, MSR, whatever) > + * which can be manipulated by the VMM to let the OS figure out where it runs. > + * So we go with the below probably_on_bare_metal() function as a replacement > + * for definitely_on_bare_metal() to go forward only for the very simple reason > + * that this is the only option we have. > + */ > +static const char * const possible_vmm_vendor_name[] = { > + "QEMU", "Bochs", "KVM", "Xen", "VMware", "VMW", "VMware Inc.", > + "innotek GmbH", "Oracle Corporation", "Parallels", "BHYVE", > + "Microsoft Corporation" > +}; People do use SeaBIOS ("Bochs") on bare metal. You'll also see "Amazon EC2" on virt instances as well as bare metal instances. Although in that case I believe the virt instances do have the 'virtual machine' flag set in bit 4 of the BIOS Characteristics Extension Byte 2, and the bare metal obviously don't.
Attachment:
smime.p7s
Description: S/MIME cryptographic signature