I3lood Eagle

Honorable
Oct 1, 2013
4
0
10,510
I have a project due where I have to conceptualize what type of Virtualization software is best applied where, how it's different in appeal to other software of the same caliber, and how it is used in comparison to the aforementioned software. My instructor was talking about Visors I'm going to go out on a limb here and say he means software like VirtualBox, VMWare, Citrix, Etc... I am still a little bit new to everything but VirtualBox so if you could point me in the right direction or just give me a general list of Vsoftware I would greatly appreciate it. Thanks in advance!
 
Solution
Virtualization is an incredibly deep concept with a lot of literature written on it. It may be "new" as far as x86 microprocessors are concerned, but its roots go all the way back to the 1960s.

If you really want to dig deep into virtualization, Wikipedia is a good place to start.

However, I'll give you a bit of a run down.

All applications are virtualized by design and have been since the introduction of the 80386 in the mid 1980s. This is what protects applications from other applications, and the operating system itself from applications. If a running task wants to perform something outside of its own little sandbox it can only do so through a system call. Task level virtualization is conceptually related to operating system level...

Pinhedd

Distinguished
Moderator
Virtualization is an incredibly deep concept with a lot of literature written on it. It may be "new" as far as x86 microprocessors are concerned, but its roots go all the way back to the 1960s.

If you really want to dig deep into virtualization, Wikipedia is a good place to start.

However, I'll give you a bit of a run down.

All applications are virtualized by design and have been since the introduction of the 80386 in the mid 1980s. This is what protects applications from other applications, and the operating system itself from applications. If a running task wants to perform something outside of its own little sandbox it can only do so through a system call. Task level virtualization is conceptually related to operating system level virtualization (as it shares many of the same properties) but is distinct.

Operating system level virtualization is what most people mean when they talk about virtualization. Whereas task level virtualization is performed by the hardware simply by enabling some memory management options, OS level virtualization requires that aspects of the OS that are normally unvirtualized or privieged run inside of a context in which those aspects are virtualized or unprivileged.

Take for example, power cycling. Virtual machines would not be very useful if restarting the virtual machine also restarted the host computer. A virtual machine that is not aware that it is being virtualized will try and restart the machine as if it were running on the metal. Obviously something needs to prevent this while still allowing the virtual machine to perform its functions. Introducing the Hypervisor!

The Hypervisor is a resource management engine for virtual machines that sits at the core of the Virtual Machine Manager or VMM. It has a lot in common with operating system kernels.

There are two types of hypervisors, Type 1 and Type 2.

Type 1 hypervisors run on the metal and directly control the hardware without going through a host operating system. This is the recommended way of virtualizing server hardware. In a Type-1 environment even the machine used to control the hypervisor is virtualized. Good examples of virtualization software with type-1 hypervisors are VMWare's vSphere and Microsoft's Hyper-V.

Type 2 hypervisors run as applications underneath a normal operating system (it is possible to run virtual machines within virtual machines). To this end, they act as applications and have all of the associated constraints. Good examples of virtualization software with type-2 hypervisors are VMWare Workstation and VirtualBox.

The biggest appeal of a Type-1 hypervisor is that a fault anywhere in any virtual machine will not impact any other virtual machine running on the box. If one virtual machine crashes, all other machines will be unaffected. The crashed machine can be recovered simply by connecting remotely to the management console (which is itself a virtual machine).

Type-1 hypervisors also have a unique advantage over type-2 hypervisors; they run directly on the metal and are fully responsible for all resource management in the entire system. This allows them to connect hardware to virtual machines directly without exposing it as virtual hardware through a computationally expensive abstraction layer. For example, a machine with two graphics cards can expose each one to a different virtual machine. Type-2 hypervisors have to emulate the hardware or expose it as a specially designed virtual device. Virtual graphics cards perform poorly compared to graphics cards that are attached directly.

Type-2 hypervisors avoid the overhead and drawbacks of having a type-1 hypervisor which can include poor real time performance and clock issues. As a drawback though, heavy hardware such as GPUs cannot effectively be virtualized using a type-2 environment.

There's also security concerns with type-2 environments. The type-2 VMM runs as a task underneath of an existing operating system kernel which has full access to its memory and the memory of all the virtual machines. Type-1 environments can at least ensure that the machines do not have access to either the VMM's memory or the memory of other virtual machines, but neither of them are considered to be as good as machines that are physically networked or air gapped.

The best and most secure solution is known as LPAR or Logical Partitioning. This is similar to a type-1 environment in many respects but with a much larger degree of hardware and firmware support. LPAR style virtualization can be found on IBM mainframes. For the purposes of security, properly partitioned hardware is equivalent to physically isolated machines.
 
Solution

I3lood Eagle

Honorable
Oct 1, 2013
4
0
10,510


Turns out I need some reasons why you would deploy them over the other and pros and cons of each can you help me out with that? I know some of them are more suited towards consumers (VirtualBox) and some are suited towards others such Citrix and VMWare for companies. Thanks in advance for the help.