VM ย่อมาจาก “Virtual Machine” หมายถึง โปรแกรมคอมพิวเตอร์ที่จำลองการทำงานของเครื่องคอมพิวเตอร์ (computer) จริงๆ โดยสร้างขึ้นมาเพื่อให้ผู้ใช้งานสามารถรันโปรแกรมหรือซอฟต์แวร์ต่างๆ ได้บนเครื่องคอมพิวเตอร์หลายๆ เครื่องได้ โดยไม่จำเป็นต้องติดตั้งโปรแกรมหรือซอฟต์แวร์นั้นๆ ลงบนเครื่องคอมพิวเตอร์ทุกเครื่อง ในกรณีที่ต้องการรันโปรแกรมนั้นบนเครื่องคอมพิวเตอร์ต่างๆ
การพัฒนา VM เริ่มต้นขึ้นในปี ค.ศ. 1960 โดย IBM ที่พัฒนาโปรแกรมสำหรับเครื่อง System/360 ซึ่งเป็นเครื่องคอมพิวเตอร์ใหญ่ของ IBM ในยุคนั้น โดย VM ในยุคนั้นถูกออกแบบให้สามารถรันหลายระบบปฏิบัติการบนเครื่องเดียวกันได้ นับเป็นเทคโนโลยีที่มีประสิทธิภาพสูงและประหยัดทรัพยากรมากกว่าการใช้เครื่องจำลองฮาร์ดแวร์ที่ต้องมีฮาร์ดแวร์สำหรับแต่ละระบบปฏิบัติการ ต่อมาในปี ค.ศ. 1972 นักวิทยาการคอมพิวเตอร์ชื่อว่า Bob Supnik ได้พัฒนาโปรแกรมชื่อชุด SIMH ที่เป็นโปรแกรมจำลองเครื่องคอมพิวเตอร์โดยใช้โครงสร้างของ VM เพื่อใช้ในการจำลองเครื่องคอมพิวเตอร์โบราณเช่น PDP-11, VAX และ DECsystem-10 ซึ่งชุดโปรแกรม SIMH นี้ได้รับความนิยมในการใช้จำลองเครื่องคอมพิวเตอร์โบราณจนถึงปัจจุบัน และในปี ค.ศ. 1998 บริษัท VMware ได้เปิดตัวโปรแกรม VMware Workstation ซึ่งเป็นโปรแกรมจำลองเครื่องเพื่อใช้ในการทดสอบและพัฒนาระบบปฏิบัติการและแอปพลิเคชัน โดย VM จะสร้างสภาพแวดล้อมที่เหมือนกับเครื่องจริงๆ ที่รองรับการทำงาน ทำให้ผู้ใช้งานสามารถรันโปรแกรมหรือไฟล์ซอฟต์แวร์ต่างๆ ได้บน VM ได้เหมือนกับการรันบนเครื่องจริงๆ โดย VM จะรับรู้คำสั่งและคำขอการทำงานจากผู้ใช้งาน และแปลงเป็นรหัสเครื่องที่เข้าใจได้ แล้วส่งคำสั่งไปยังเครื่องจริง เพื่อทำการดำเนินการต่อไป
หัวใจหลักๆ ของ VM ประกอบด้วย Host Machine และ Guest Machine Host Machine หรือคอมพิวเตอร์จริง จะรันระบบปฏิบัติการ (Operating System) และ VM จะถูกติดตั้งบนระบบปฏิบัติการดังกล่าว ซึ่งทำหน้าที่เป็น Hypervisor หรือ Virtual Machine Monitor (VMM) เพื่อจัดการทรัพยากรของเครื่องจริง ๆ เพื่อให้ VM ที่ถูกสร้างขึ้นมาสามารถเข้าถึงและใช้งานทรัพยากรดังกล่าวได้อย่างมีประสิทธิภาพ
Guest Machine หรือคอมพิวเตอร์จำลองบน VM นั้นจะถูกติดตั้งระบบปฏิบัติการและแอปพลิเคชันต่างๆ ที่ผู้ใช้งานต้องการใช้งาน โดยที่ VM จะจัดการทรัพยากรของเครื่องจำลองให้แก่ Guest Machine เหมือนกับเครื่องจริง ๆ ที่มีหลายหน้าต่างและแอปพลิเคชันที่รันพร้อมกันได้ ตัวอย่าง VM ที่สามารถใช้งานได้ฟรี:
1. VirtualBox: เป็นโปรแกรม VM ที่ได้รับความนิยมมากๆ และมีการพัฒนาโดย Oracle โดยสามารถใช้งานบน Windows, Mac และ Linux
2. VMware Workstation Player: เป็นโปรแกรม VM ที่ได้รับความนิยมอย่างมาก มีฟีเจอร์หลากหลาย และสามารถใช้งานบน Windows และ Linux
3. KVM (Kernel-based Virtual Machine): เป็นโปรแกรม VM ที่เป็น Open Source และสามารถใช้งานบน Linux ได้ฟรีๆ โดยใช้งานผ่าน Terminal โดยไม่ต้องมี GUI (Graphical User Interface)
นอกจาก VM แบบดั้งเดิมที่ใช้ Hypervisor เพื่อจัดการรันและจำลองระบบปฏิบัติการ ยังมีเทคโนโลยี Containerization ที่เป็นทางเลือกที่มากขึ้นในช่วงสองสามปีที่ผ่านมา การใช้งาน Containerization ช่วยลดความซับซ้อนในการจัดการระบบและการใช้ทรัพยากร โดยใช้ Container เพื่อแยกแยะและจำลองแอปพลิเคชันในรูปแบบเลเยอร์บนระบบปฏิบัติการเดียวกัน ซึ่งมีความสามารถในการใช้ทรัพยากรน้อยกว่า VM และเร็วกว่าในการเริ่มต้นและหยุดใช้งาน
ในอนาคต คาดว่าการใช้งาน Containerization จะมีความนิยมมากขึ้นเนื่องจากความสามารถในการจัดการระบบที่เป็นมาตรฐานและความรวดเร็วในการรันและเลิกใช้งาน Container อีกทั้งยังเริ่มมีการพัฒนาและการใช้งานเทคโนโลยีอื่น ๆ เช่น MicroVMs ซึ่งเป็นการรันแอปพลิเคชันในรูปแบบของ Virtual Machine ที่มีขนาดเล็กกว่าและใช้ทรัพยากรน้อยกว่า และเทคโนโลยี Serverless Computing ที่ให้ความยืดหยุ่นและประหยัดทรัพยากรในการรันแอปพลิเคชันโดยไม่ต้องกังวลเรื่องราคาและความซับซ้อนในการดูแลระบบซอฟต์แวร์