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 mesin virtual pada awalnya ditentukan oleh
Popek dan Goldberg sebagai "yang efisien, terisolasi duplikat dari mesin
yang nyata". gunakan saat ini mencakup mesin virtual yang tidak memiliki
surat-menyurat langsung ke perangkat keras yang nyata.
Manfaat mesin virtual
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:
- 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. - 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. - Menjalankan perangkat
lunak terdahulu
Sistem operasi dan perangkat lunak terdahulu dapat dijalankan pada sistem yang lebih baru. - Memudahkan recovery
sistem
Solusi virtualisasi dapat dipakai untuk rencana recovery sistem yang memerlukan portabilitas dan fleksibilitas antar platform. - Demonstrasi perangkat lunak
Dengan teknologi VM, sistem operasi yang bersih dan konfigurasinya dapat disediakan secara cepat.
Program yang ditulis dalam bahasa Java akan dilayani oleh Java Virtual Machine (JVM) dengan cara memberikan perintah-perintah yang dimengerti JVM yang selanjutnya akan memberikan hasil yang diharapkan. Dengan memberikan layanan seperti ini kepada program tersebut, perangkat lunak JVM ini berlaku sebagai sebuah “mesin virtual”, sehingga program tidak lagi perlu untuk mengakses langsung melalui sistem operasi ataupun perangkat keras yang sangat bervariasi dan memerlukan pemrograman masing-masing secara spesifik.
Kekurangan Virtual Machine(VM)
Ada beberapa kesulitan utama dari konsep VM, diantaranya adalah:
• Dalam 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 substansi 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 underlying bare hardware.
• Dalam hal pengimplementasian. Meski konsep VM cukup baik, namun VM sulit diimplementasikan.
Kelebihan Virtual Machine(VM)
Terlepas dari segala kekurangannya, VM memiliki beberapa keunggulan, antara lain:
• Dalam hal keamanan. VM memiliki perlindungan yang lengkap pada berbagai sistem sumber daya, yaitu dengan meniadakan pembagian resources 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.
• 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.