VIRTUAL MACHINE
A. Sejarah dan Definisi
Mesin virtual pada mulanya didefinisikan oleh Gerard J. Popek dan Robert P. Goldberg pada tahun 1974 sebagai sebuah duplikat yang efisien dan terisolasi dari suatu mesin asli. Pada masa sekarang ini, mesin-mesin virtual dapat mensimulasikan perangkat keras walaupun tidak ada perangkat keras aslinya sama sekali.Contoh, 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.
Mesin virtual terdiri dari dua kategori besar, dipisahkan menurut cara penggunaan dan tingkat keterhubungannya dengan mesin-mesin aslinya. Sebuah mesin virtual sistem adalah perangkat yang berupa platform sistem yang lengkap dan dapat menjalankan sebuah sistem operasi yang lengkap pula. Sebaliknya, mesin virtual proses didesain untuk menjalankan sebuah program komputer tertentu (tunggal), yang berarti mesin virtual ini mendukung proses tertentu juga. Karakteristik mendasar dari sebuah mesin virtual adalah batasan-batasan bagi perangkat lunak yang berjalan di dalam mesin tersebut, sumber daya yang dibatasi, dan tidak dapat mengakses ke luar tembok batasan dunia maya itu.
B. Kegunaan
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.
C. Kelebihan dan kekurangan
Kelebihan :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:
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:
1. VM sistem di mana sebuah VM dapat menjalankan sebuah sistem operasinya sendiri.
2. VM proses di mana VM hanya menjalankan sebuah proses saja.
Kemudian VM juga dibagi berdasarkan tingkat virtualisasinya:
1. Virtualisasi penuh yang mensimulasikan seluruh fitur perangkat keras sehingga memungkinkan perangkat lunak berjalan pada VM tanpa modifikasi.
2. Virtualisasi paruh, di mana tidak semua fitur perangkat keras disimulasikan.
3. Virtualisasi asli, yang mana merupakan virtualisasi penuh yang digabungkan dengan bantuan perangkat keras yang mendukung virtualisasi.