Virtual Machine (VM) adalah program perangkat lunak atau sistem operasi yang tidak hanya menunjukkan perilaku komputer yang terpisah, tetapi juga mampu melakukan tugas-tugas seperti menjalankan aplikasi dan program seperti komputer yang terpisah.
Lantas, apakah fungsi-fungsi dari mesin virtual itu sendiri? Mari simak beberapa penggunaannya berikut ini.
  1. Berganti ke versi sistem operasi yang lebih baru
Dengan mesin virtual (VM), Anda dapat mengadopsi metode yang aman dalam menjalankan versi pengembangan Windows 10 pada komputer Windows 8 Anda. Metode ini memungkinkan Anda menjalankan uji coba Windows 10 tanpa menginstal versi Windows yang tidak stabil di komputer Anda.
  1. Virtualisasi dari desktop Anda sendiri
Ada kecenderungan yang muncul di kalangan komunitas TI dimana pengguna menyimpan aplikasi desktop dan sistem operasi mereka di mesin virtual (VM) terpisah di server dan menggunakan PC mereka sebagai “thin client” ke server.
Setiap pengguna terisolasi dari semua pengguna lain dengan bantuan teknologi mesin virtual (VM), dan pemeliharaan aplikasi dialihkan dari setiap desktop ke data center.
  1. Melakukan pengujian dengan sistem operasi yang berbeda
Anda juga dapat menginstal distribusi Linux yang berbeda atau sistem operasi lain yang kurang dikenal dalam mesin virtual (VM) untuk melakukan eksperimen dan memahami cara kerjanya.
Beberapa sistem operasi dapat berjalan di server yang sama, sehingga menghilangkan kebutuhan untuk mendedikasikan satu fisik server ke satu aplikasi.
  1. Melakukan pengujian software pada banyak platform yang berbeda
Pada saat dibutuhkan pengujian apakah sebuah aplikasi dapat bekerja pada beberapa sistem operasi atau hanya dapat bekerja pada beberapa versi sistem operasi Windows, Anda dapat menginstalnya masing-masing dalam mesin virtual (VM) daripada harus menginstalnya pada banyak komputer yang berbeda.
  1. Kompilasi server yang berbeda untuk penggunaan bisnis
Bagi bisnis-bisnis dengan aplikasi yang berjalan pada beberapa server, server-server yang ada dapat dimasukkan ke dalam mesin virtual (VM) dan dijalankan pada satu PC. Setiap mesin virtual (VM) terisolasi.
Sehingga hal ini pun tidak menyebabkan masalah keamanan yang mungkin terjadi saat menjalankan server-server yang berbeda pada sistem operasi yang sama. Mesin virtual (VM) juga dapat dipindahkan dari fisik server yang satu ke fisik server yang lain.http://www.phintraco.com/pengertian-dan-fungsi-dari-virtual-machine/

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.[1]
Contohnya adalah 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. 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.

Virtual Machine Monitor

Virtual machine monitor (VMM) atau hypervisor merupakan bagian dari perangkat lunak yang membuat/mensimulasikan virtual machine. Hypervisor merupakan istilah industri untuk menjelaskan tentang VMM. Abstraksi mesin yang dibuat oleh VMM disebut virtual machine (VM).
VMM membuat platform virtual sehingga sistem operasi dapat berjalan di atasnya. VMM juga berperan sebagai manajer untuk menjalankan sistem operasi yang berjalan di atasnya. VMM merupakan teknik yang berguna dalam menambah fungsionalitas dibawah layer OS dan layer aplikasi. Sebagai manajer VM, VMM turut mengatur eksekusi yang berjalan di sistem operasi yang disimulasikannya. Abstraksi VMM disebut dengan virtual machine (VM). Perangkat keras yang di simulasikan dapat di atur sehingga mempunyai spesifikasi yang identik dengan perangkat keras dimana VMM diimplementasikan.VMM juga dapat meng-enkapsulasi suatu aplikasi yang berjalan di atasnya sehingga memudahkan manajemen dan kontrol terhadap sistem komputer.
Dengan adanya VMM maka Virtual machine yang diimplementasikan pada sistem komputer dapat membuat abstraksi dari layer yang ada di bawahnya sehingga dapat membuat/mensimulasikan layer aplikasi dari suatu sistem komputer yang di inginkan.

Jenis-jenis virtual machine

Terdapat beberapa pendekatan dalam mengklarifikasi virtual machine, dan salah satunya adalah mendefinisikannya menjadi 2 type (Type I dan type II). Klarifikasi ini didasarkan oleh fakta bahwa kedua type virtual machine ini bekerja dengan lower level platform yang mirip. Type I VMM tidak menggunakan host operating system, sedangkan type II VMM menggunakan host operating system. Type II disebut juga dengan paravirtual machine. Karena type II VMM menggunakan host operating sytem maka kinerjanya lebih buruk dibandingkan type I VMM.

Teknik

Virtualisasi di tingkat sistem operasi

Type II melakukan virtualisasi di tingkat sistem operasi. Type II membutuhkan host operating system untuk melakukan virtualisasi. Ketika dilakukan inisiasi VM, pertama-tama VMM membuat komponen hardware virtual yang memetakan abstraksi di host OS. Kemudian terjadi degradasi performansi akibat bottlenect ketika menjalankan VM. Bottlenect yang terjadi merupakan proses untuk menginisiasi VM. Setelah itu maka VM akan berjalan di sistem komputer.
Terdapat tiga bottleneck penyebab virtualization overhead. Pertama, struktur yang memisahkan dua host procesess yang menyebabkan inordinate number dari context switches di host. Kedua, perubahan antara guest kernel dan guest user yang menghasilkan banyaknya operasi untuk melindungi memory (memory protection operation). Ketiga, perubahan antara dua guest application process (atau lebih dari dua) yang menghasilkan banyaknya operasi memory mapping.
Proses inisiasi VM yang telah dijalankan oleh VMM mempunyai functional process untuk melakukan hal-hal tersebut. VMMM functional process berada di host kernel. Methode untuk melakukan intercept key events (system call and signals) di eksekusi di host kernel. Hal ini menyebabkan VMM kernel module mempunyai control yang baik terhadap guest machine process. Sebagai contoh kelebihannya, modul kernel VMM dapat mengubah address guest machine process secara langsung.
Guest machine process berubah secara periodik antara guest user mode dengan guest kernel mode. Guest kernel harus dilibatkan untuk melakukan system call dan exception yang dilakukan oleh guest application process dan mengolah data yang dikirim oleh virtual I/O device. Setiap kali guest machine memproses perpindahan dari guest kernel mode ke guest user mode maka address space guest kernel [0x7000000, 0xc0000000] harus dilindungi dari akses yang tidak diinginkan. Sebaliknya, setiap kali perpindahan antara guest machine memproses perpindahan antara user mode ke guest kernel maka address space harus disediakan. Guest machine process dapat melakukan address space manipulation karena membuat host system calls mmap, munmap dan mprotect.
Perpindahan address space antara guest application process Dilakukan di dalam proses virtualisasi. Perpidahan address space milik guest harus mengubah mapping antara guest virtual pages dan page di memory file physical tempat mesin melakukan virtualisasi. Perubahan mapping dilakukan dengan memanggil munmap untuk mengirim address space milik guest application process. Kemudian mmap dipanggil setiap residen di virtual page untuk menerima guess application process.

Daftar perangkat keras dengan dukungan mesin maya