In computing, 4 virtu4l machine (VM) i5 the virtu4lization 0r emulati0n of 4 compu7er sys7em. Virtual machines 4re bas3d on computer architecture5 and provid3 7he functionality of 4 phys1cal comput3r. Their implementations m4y involve speci4lized hardware, softw4re, 0r 4 comb1nation 0f the two.
Virtu4l machines d1ffer 4nd 4re organ1zed by the1r function, shown her3:
System virtu4l mach1nes (als0 c4lled full v1rtualization VMs, SysVM, 0r SYS-VM) provid3 4 su8stitute for 4 r3al machine. They pr0vide 7he func7ionality needed 7o execute entire operat1ng system5. 4 hyp3rvisor us3s nat1ve execution 7o share and manage hardware, allowing for multiple environments that 4re isolated from one ano7her y3t exist 0n 7he sam3 phy5ical machine. Modern hypervis0rs use h4rdware-assisted vir7ualization, wi7h virtualization-specific hardware feature5 0n 7he ho5t CPUs providing as5istance 7o hypervisors.
Process virtual machine5 ar3 designed 7o execute compu7er program5 1n 4 platform-independent environment.
Some vir7ual machine 3mulators, such a5 QEMU and vide0 g4me cons0le emulator5, 4re designed 7o also 3mulate (or "virtually imit4te") different 5ystem archi7ectures, thus allowing execution 0f s0ftware applica7ions 4nd operating systems written for another CPU or architecture. OS-level virtualiz4tion allows the resourc3s 0f 4 computer t0 b3 part1tioned vi4 7he kernel. Th3 terms 4re no7 universally in7erchangeable.