Hypervisor Types
A hypervisor is software that creates and manages virtual machines (VMs). Type 1 (Bare Metal) hypervisor: runs directly on hardware without a host OS. More efficient, better performance. Used in enterprise servers. Examples: VMware ESXi, Microsoft Hyper-V (server), Citrix Hypervisor (XenServer), KVM (Linux kernel). Type 2 (Hosted) hypervisor: runs as an application on top of a host OS. Host OS manages hardware; hypervisor runs as a process. Used for desktop/client virtualization. Examples: VMware Workstation, Oracle VirtualBox (free), VMware Fusion (macOS), Parallels Desktop (macOS). For A+ exam, client-side virtualization uses Type 2 hypervisors. Type 1 is discussed in the context of server and cloud infrastructure.
Hardware Requirements for Virtualization
CPU: must support hardware-assisted virtualization. Intel VT-x (Virtualization Technology for IA-32/64) or AMD-V (AMD Virtualization). Must be enabled in BIOS/UEFI — often disabled by default. Check: Task Manager → Performance → CPU → Virtualization: Enabled/Disabled. RAM: host OS + hypervisor + all running VMs must fit in physical RAM. Minimum 8 GB host RAM to run one VM comfortably; 16 GB+ for multiple VMs. Each VM needs dedicated RAM allocation (e.g., 2 GB for Windows VM). Storage: VM files (virtual hard disks) require significant disk space. A Windows 11 VM needs at least 64 GB allocated. Use fast SSDs for VM storage to minimize performance impact. 64-bit CPU: required to run 64-bit guest OSes. CPU cores: more cores = better VM performance (assign vCPUs to VMs).
Virtual Machine Components
Virtual Hard Disk (VHD/VMDK/VDI): file on host storage that represents the VM's hard drive. Types: Dynamically allocated (grows as needed up to maximum size — saves host storage). Fixed size (pre-allocated — better performance). Virtual Network Adapters: VM gets a virtual network interface. Three common modes: Bridged — VM appears as a separate device on the physical network with its own IP. NAT — VM shares host's IP; host routes traffic (VM can access internet, internet cannot reach VM directly). Host-only — VM communicates only with the host, isolated from external network. Snapshots: save the VM state at a point in time. Roll back to a snapshot to undo changes. Ideal for testing software installs or malware. Virtual CPU (vCPU): CPU cores assigned to the VM.
Client Virtualization Use Cases
Software testing: run experimental software in a VM; if it breaks, restore snapshot. No risk to host OS. Legacy application support: run old software (Windows XP/7 apps) in a VM on a modern host. Security testing: run malware analysis in an isolated VM (host-only network mode prevents spread). Developer environments: run Linux on a Windows machine, or vice versa. Training environments: practice OS configurations without affecting production machines. Sandbox testing: isolated environment for untrusted code. Browser security: run untrusted websites in a sandboxed browser VM. Containerization (Docker): lighter-weight alternative to full VMs — shares the host OS kernel but isolates applications. Containers start faster and use fewer resources than VMs. VDI (Virtual Desktop Infrastructure): server-side VMs delivered to thin clients — enterprise remote desktop environment.
VM Security Considerations
VM escape: theoretically possible attack where malware breaks out of the VM and affects the host. Rare but documented in research. Keep hypervisor software updated. VM isolation: VMs on host-only networks cannot reach the internet or physical network — appropriate for malware analysis. Snapshots are not backups: snapshots store VM state changes as delta files linked to the base disk. If the base disk is corrupted or lost, snapshots become useless. Always back up VM files separately. Resource contention: running too many VMs starves host OS of RAM/CPU — monitor performance. Network bridged VMs are visible on the network like physical machines — apply same security policies. VM templates: master VM image deployed as clones — used in enterprise for rapid deployment. Sysprep (Windows) used to generalize a VM before cloning (removes unique identifiers like SID).