Virtual adalah istilah yang awalnya berasal dari optik, untuk
memahami objek di cermin. Objek dalam cermin adalah cerminan dari suatu benda
fisik yang sebenarnya, tetapi cermin tidak benar-benar objek. Ini berarti bahwa
gambar tersebut terlihat seperti objek aktual dan terlihat menjadi di lokasi
yang sama.
Sebuah mesin virtual (VM) adalah implementasi perangkat lunak
dari sebuah mesin (misalnya komputer) yang mengeksekusi program-program seperti
mesin fisik. Mesin virtual dipisahkan menjadi dua kategori utama, didasarkan
pada penggunaan dan tingkat korespondensi untuk setiap mesin nyata. Sebuah
mesin virtual sistem menyediakan lengkap platform sistem yang mendukung
pelaksanaan lengkap sistem operasi (OS). Sebaliknya, mesin virtual proses
didesain untuk menjalankan satu program , yang berarti bahwa ia mendukung satu
proses . Karakteristik penting dari sebuah mesin virtual adalah bahwa perangkat
lunak yang berjalan di dalam terbatas pada sumber daya dan abstraksi yang
disediakan oleh mesin virtual tidak dapat keluar dari dunia virtual. 
Sebuah proses VM, kadang-kadang disebut mesin virtual aplikasi, berjalan sebagai aplikasi biasa di dalam sebuah OS dan mendukung proses tunggal. Hal ini tercipta saat proses itu dimulai dan hancur ketika keluar. Tujuannya adalah untuk menyediakan sebuah platform program lingkungan independen-yang abstrak jauh rincian perangkat keras yang mendasarinya atau sistem operasi, dan memungkinkan sebuah program untuk mengeksekusi dengan cara yang sama pada platform apapun. 
Sebuah proses VM menyediakan tingkat abstraksi tinggi - yang dari bahasa pemrograman tingkat-tinggi (dibandingkan dengan tingkat ISA abstraksi-rendah sistem VM). Proses VMS diimplementasikan menggunakan interpreter , kinerja yang sebanding dengan bahasa pemrograman dikompilasi dicapai dengan menggunakan just-in waktu kompilasi- . 
Jenis VM telah menjadi populer dengan bahasa pemrograman Java , yang diimplementasikan dengan menggunakan mesin virtual Java . Contoh lain termasuk mesin virtual Parrot , yang berfungsi sebagai lapisan abstraksi untuk bahasa beberapa diinterpretasikan, dan Framework. NET , yang berjalan pada sebuah VM yang disebut Common Language Runtime . 
Sebuah kasus khusus dari proses VMS adalah sistem yang abstrak atas mekanisme komunikasi dari (berpotensi heterogen) cluster komputer . VM tersebut tidak terdiri dari sebuah proses tunggal, tetapi satu proses per mesin fisik di cluster. Mereka dirancang untuk memudahkan tugas pemrograman aplikasi paralel dengan membiarkan programmer fokus pada algoritma daripada mekanisme komunikasi yang disediakan oleh interkoneksi dan OS. Mereka tidak menyembunyikan fakta bahwa terjadi komunikasi, dan dengan demikian tidak berusaha untuk menyajikan cluster sebagai mesin paralel tunggal. 
Tidak seperti VM proses lainnya, sistem ini tidak menyediakan bahasa pemrograman tertentu, tetapi tertanam dalam bahasa yang sudah ada; biasanya sistem tersebut menyediakan binding untuk beberapa bahasa (misalnya, C dan FORTRAN ). Contohnya adalah PVM ( Paralel Virtual Machine ) dan MPI ( Message Passing Interface ). Mereka tidak ketat mesin virtual, sebagai aplikasi yang berjalan di atas masih memiliki akses ke semua layanan OS, dan karenanya tidak terbatas pada model sistem yang disediakan oleh "VM". 
Teknologi virtual 
machine memiliki  banyak kegunaan
seperti  memungkinkan konsolidasi  perangkat keras,  memudahkan 
recovery  sistem,  dan menjalankan perangkat lunak
terdahulu.  Salah  satu penerapan penting dari teknologi  VM adalah  
integrasi   lintas  platform. Beberapa   penerapan  
lainnya   yang   penting adalah:
1.      Konsolidasi  server
Jika beberapa server menjalankan aplikasi yang hanya memakan
sedikit sumber daya, VM dapat digunakan untuk menggabungkan aplikasi-aplikasi
tersebut sehingga berjalan pada satu server saja, walaupun aplikasi tersebut
memerlukan sistem operasi yang berbeda-beda.
2.      Otomasi dan konsolidasi lingkungan pengembangan dan testing
Setiap VM  dapat   berperan  
sebagai   lingkungan   yang  
berbeda,   ini  memudahkan pengembang sehingga tidak perlu
menyediakan lingkungan tersebut secara fisik.
3.      Menjalankan perangkat  lunak
terdahulu
Sistem operasi dan perangkat lunak terdahulu dapat dijalankan
pada sistem yang lebih baru.
4.      Memudahkan  recovery  sistem
Solusi  
virtualisasi   dapat   dipakai  
untuk rencana recovery sistem yang memerlukan portabilitas dan
fleksibilitas antar platform.
5.      Demonstrasi perangkat lunak
Dengan teknologi VM, sistem operasi yang bersih dan
konfigurasinya dapat disediakan secara cepat.
KELEBIHAN VIRTUAL
MACHINE (VM)
1.      Hal  keamanan.
VM memiliki 
perlindungan yang  lengkap pada
berbagai sistem  sumber   daya,  
yaitu   dengan  meniadakan  
pembagian   sumber   daya secara 
langsung,  sehingga  tidak ada masalah proteksi  dalam VM. 
Sistem VM adalah kendaraan yang sempurna untuk penelitian dan
pengembangan sistem operasi. Dengan VM, jika terdapat suatu perubahan pada satu
bagian dari mesin, maka dijamin tidak akan mengubah komponen lainnya.
2.      Memungkinkan   untuk  mendefinisikan   suatu  
jaringan   dari   Virtual Machine   (VM).
Tiap-tiap   bagian  mengirim 
informasi  melalui   jaringan komunikasi  virtual. 
Sekali   lagi,   jaringan 
dimodelkan   setelah komunikasi
fisik jaringan diimplementasikan pada perangkat lunak.
KEKURANGAN VIRTUAL
MACHINE.  Beberapa kesulitan utama dari
konsep VM, diantaranya adalah:
1.      Sistem penyimpanan.
Sebagai contoh kesulitan dalam sistem penyimpanan adalah   sebagai  
berikut:   Andaikan   kita  
mempunyai   suatu   mesin  
yang memiliki  3  disk drive 
namun  ingin mendukung 7 VM.  Keadaan 
ini   jelas tidak memungkinkan
bagi kita untuk dapat mengalokasikan setiap disk drive untuk  tiap VM, 
karena perangkat   lunak untuk
mesin virtual   sendiri  akan membutuhkan   ruang disk  
secara   substansial  untuk menyediakan  memori virtual  dan 
spooling.  Solusinya   adalah dengan menyediakan disk  virtual atau  
yang   dikenal   pula  
dengan  minidisk,   dimana  
ukuran   daya penyimpanannya   identik  
dengan   ukuran   sebenarnya.  
Dengan   demikian, pendekatan VM
juga menyediakan sebuah antarmuka yang identik dengan perangkat keras yang
mendasari.
2.      Pengimplementasian sulit.
Meski konsep VM cukup baik, namun VM sulit diimplementasikan.
Contoh virtual machine : Vmware, Xen VMM , Java VM
Jenis-jenis dari VM
adalah
- VM sistem di mana sebuah VM dapat menjalankan sebuah sistem operasinya sendiri.
 - VM proses di mana VM hanya menjalankan sebuah proses saja.
 
Kemudian VM juga dibagi berdasarkan tingkat virtualisasinya:
- Virtualisasi penuh yang mensimulasikan seluruh fitur perangkat keras sehingga memungkinkan perangkat lunak berjalan pada VM tanpa modifikasi.
 - Virtualisasi paruh, di mana tidak semua fitur perangkat keras disimulasikan.
 - Virtualisasi asli, yang mana merupakan virtualisasi penuh yang digabungkan dengan bantuan perangkat keras yang mendukung virtualisasi.
 







