I am presenting to my class on virtualization.
While researching, I am confused between a bare metal hypervisor an full virtualization mode with binary translation.
Could someone please explain that ?
Server Fault is a question and answer site for system and network administrators. It only takes a minute to sign up.Sign up to join this community
Bare-Metal hupervisors (a type of Virtualization) take advantage of CPU capabilities to give guest OSes the impression that they are the only OS on the computer. They necessarily virtualize most of the device access so the guests don't cause problems. The main advantage is speed, it's quite quick (normally).
Virtualization via Binary Translation is essentially an emulator. It's a program running in another OS that shows your the results of it's "analysis" of the Guest. For example, instead of running the code that adds 1 + 2 (and letting the CPU figure out that the answer is 3), it will have algorithsm that evaluate the code, determines that it's adding two numbers, finds those numbers, adds them, and presents the results to you. As you can see, it's a much more involved process. The main advantage is that the CPU of the Guest does not have to have be the same as the CPU of the Host.
I'm not sure where you're seeing full virtualization with binary translation; example?
Bare metal hypervisors are generally considered something like VMWare's ESX(i) tool. You have a server that just handles virtualization; you can't sit at the console and web browse while in the background it's running a virtualization engine. It is a dedicated server for the purpose of virtualizing PC environments, and it's usually a modified bare-bones Windows kernel (for Microsoft's products) or a modified, specialized Linux distribution (VMWare, Citrix, etc.) that's stripped down specifically to run with their product bundle.
The bare metal comes from the fact that you don't need to install a multiuser operating system or configure much at all. You buy the server, slap in a CD, and ten minutes later it's ready for you to begin configuring virtualized machines. It literally isn't designed for you to do anything but create virtual machines. The alternative, as in the link, is for you to run the hypervisor as a hosted application, sharing access to the hardware via system calls with your installed operating system.
Binary translations sounds like something like Rosetta on the Mac, or virtual machines like the Java or .NET bytecode translations. Rosetta takes non-native code and translates it to a native version to run on a different hardware platform for better performance, rather than translating each system call as it comes in. For the Mac, it takes PowerPC code and lets it run on the Intel processor.
A bare metal hypervisor (like VMWare ESXi for example) is a hypervisor running directly on the Hardware, there is no OS in between like it would be for example when running VMWare Server/Fusion or Workstation on a PC or Mac and then running another OS in the Virtualization. Full Virtualization as I see it means virtualizing the whole hardware availible to the OS running as Guest, not passing through commands directly to the Hardware like when a VM has a dedicated Disc or NIC. Depends on the Topic of your class you should include the Virtualization in Hardware, which is done by IBM Mainframes or to some small extend via Intel VT oder AMD-V.