Anda di halaman 1dari 11

Bab 8.

Virtual Machine (VM)


8.1 Pendahuluan
Virtual machine (VM) adalah suatu environment, biasanya sebuah program atau
system operasi, yang tidak ada secara fisik tetapi dijalankan dalam environment
lain. Dalam konteks ini, VM disebut “guest” sementara environment yang
menjalankannya disebut “host”. Ide dasar dari virtual machine adalah
mengabtraksi perangkat keras dari satu komputer (CPU, memori, disk, dst) ke
beberapa environment eksekusi, sehingga menciptakan illusi bahwa masing-
masing environment menjalankan komputernya [terpisah] sendiri.

VM muncul karena adanya keinginan untuk menjalankan banyak sistem operasi


pada satu komputer.

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.

Kelebihan Virtual Machine (VM)


Teknologi VM memiliki beberapa keunggulan, antara lain:
• 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.
• 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 (VM)


Beberapa kesulitan utama dari konsep VM, diantaranya adalah:
• 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.
• Pengimplementasian sulit. Meski konsep VM cukup baik, namun VM sulit
diimplementasikan.
8.2 Macam-macam Virtual Machine
8.2.1 Virtual Machine Sistem
VM sistem memungkinkan pembagian sumber daya perangkat keras yang ada
ke dalam VM-VM yang berbeda, masing-masing menjalankan sistem
operasinya sendiri. Lapisan perangkat lunak yang menyediakan virtualisasi
disebut virtual machine monitor atau hypervisor. Sebuah hypervisor bisa
berjalan pada perangkat keras (Tipe 1 atau native VM) atau di atas sebuah
sistem operasi (Tipe 2 atau hosted VM).

Keunggulan utama dan VM sistem adalah:

• Berbagai lingkungan sistem operasi dapat berjalan pada komputer yang


sama, dalam isolasi antar lingkungan yang kuat
• VM dapat menyediakan instruction set architecture (ISA) yang berbeda
dengan yang ada pada perangkat keras.

Sistem operasi guest (yang berjalan di atas VM) tidak harus merupakan sistem
operasi yang sama (sehingga bisa menjalankan sistem operasi terdahulu untuk
menggunakan perangkat lunak yang belum di-port ke versi yang lebih baru).
Penggunaan VM untuk mendukung berbagai sistem operasi yang berbeda
menjadi populer pada embedded system, di mana sistem operasi real time
digunakan bersamaan dengan sistem operasi high level seperti Linux atau
Windows.

Kegunaan lainnya adalah untuk men-sandbox (mengisolasi perubahan kode-


kode yang masi belum terpercaya ) dari OS yang belum bisa dipercaya, karena
masih dalam tahap pengembangan. VM memiliki manfaat lain pada
pengembangan system operasi seperti akses debugging yang lebih baik dan
reboot yang lebih cepat.

8.2.2 Virtual Machine Proses


Suatu VM proses, kadang disebut application virtual machine, berjalan sebagai
applikasi normal di dalam sebuah sistem operasi dan mendukung satu proses.
VM Proses diciptakan saat proses tersebut dimulai dan dihancurkan (destroyed)
ketika prosesnya exit. Tujuannya adalah menyediakan environment
pemrograman yang platform-independent yang mengabstraksi detil-detil
perangkat lunak atau sistem operasi, dan mengizinkan suatu program
tereksekusi dengan cara yang sama pada platform manapun.
VM proses menyediakan abstraksi tingkat-tinggi (dibandingkan abstraksi
tingkat rendah dari VM sistem) – yaitu abstraksi bahasa pemrograman tingkat
tinggi. VM proses diimplementasi menggunakan interpreter.

Tipe VM ini menjadi populer dengan bahasa pemrograman Java, yang


diimplementasi dengan Java Virtual Machine. Contoh lainnya adalah .NET
Framework, yang berjalan atas VM disebut Common Language Runtime.

Kasus istimewa dari VM proses adalah sistem yang mengabstraksi mekanisme


komunikasi dari cluster komputer (yang mungkin heterogen). VMnya tidak
terdiri dari satu proses, melainkan satu proses per mesin fisik di dalam cluster.
VM tersebut dirancang untuk mempermudah pekerjaan memrogramkan aplikasi
parallel dengan membiarkan programmer fokus pada algoritma daripada
mekanisme komunikasi yang disediakan oleh interconnect dan sistem operasi.
Kenyataan bahwa komunikasi terjadi tidak disembunyikan, dan cluster tidak
diusahakan direpresentasi sebagai satu mesin.

8.2.3 Virtualisasi Penuh


Virtualisasi penuh dalam ilmu komputer ialah teknik virtualisasi yang
digunakan untuk implementasi pada berbagai macam lingkungan virtual
machine, yang mana pada virtualisasi penuh menyediakan simulasi lengkap dari
perangkat keras. Simulasi lengkap ini menyebabkan semua perangkat lunak
yang bisa dieksekusi langsung pada perangkat keras dieksekusi juga pada VM,
termasuk semua sistem operasi.

Salah satu ilustrasi dari virtualisasi penuh adalah dalam program kontrol dari
sistem operasi CP/CMS dari IBM. Setiap pengguna dari CP/CMS diberikan
sebuah sistem komputer (yang sebenarnya merupakan virtual machine) yang
berdiri sendiri. Virtual machine tersebut memiliki semua kemampuan dari
perangkat keras yang mendasarinya, dan untuk penggunanya, virtual machine
tidak dapat dibedakan dengan sebuah sistem yang tersendiri. Simulasi dilakukan
secara menyeluruh dan didasarkan prinsip operasi dari perangkat keras sehingga
mencakup instruction set, main memory, interrupts, exceptions, and device
access. Hasilnya adalah sebuah mesin yang dapat dibagi antar banyak
pengguna.

Virtualisasi penuh hanya dimungkinkan dengan kombinasi perangkat keras dan


perangkat lunak yang tepat. Sebagai contoh, tidak dimungkinkan untuk
kebanyakan sistem IBM System/360. Sistem x86 juga dulunya disangka tidak
dapat menjalankan virtualisasi penuh (walaupun banyak VM di sistem ini cukup
dekat untuk disebut virtualisasi penuh misalnya Vmware Workstation, VMware
Server, VirtualBox, Parallels Desktop for Mac, Adeos, Mac-on-Linux,
Win4BSD, and Win4Lin Pro), tetapi dengan menggunakan teknik binary
translation, VMware bisa menjalankan virtualisasi penuh.

Tantangan utama pada virtualisasi penuh adalah simulasi dari operasi yang
memerlukan hak khusus seperti instruksi M/K. Pengaruh dari setiap operasi
yang dilakukan dalam VM harus dijaga agar tetap di dalam VM – operasi
virtual tidak diizinkan untuk mengubah status pada VM lain, program kontrol,
atau perangkat keras. Instruksi yang pengaruhnya diatur oleh program kontrol
bisa langsung dieksekusi oleh perangkat keras. Sedangkan instruksi yang bisa
berpengaruh sampai ke luar VM harus dibungkus dan disimulasikan.

Virtualisasi penuh sejauh ini terbukti sukses untuk keperluan pembagian sebuah
sistem komputer untuk digunakan banyak pengguna dan untuk isolasi pengguna
dengan pengguna lain dan dengan program kontrol untuk memperoleh
keandalan dan keamanan sistem.

8.2.4 Virtualisasi Paruh


Virtualisasi paruh dalam ilmu komputer ialah teknik virtualisasi yang digunakan
untuk pengimplementasian pada berbagai macam lingkungan virtual machine,
yang mana pada virtualisasi paruh ini lingkungan VM hanya menyediakan
simulasi perangkat keras secara sebagian saja. Tidak semua fitur perangkat
keras disimulasikan sehingga tidak semua perangkat lunak dapat berjalan tanpa
modifikasi terlebih dahulu.

Kunci utama dari partial virtualization adalah virtualisasi alamat, yang artinya
setiap virtual machine terdiri dari sebuah alamat yang independen. Kemampuan
ini haruslah didukung oleh kemampuan untuk merelokasi alamat dari sebuah
perangkat keras – sudah ada pada kebanyakan implementasi praktis dari
virtualisasi paruh.

Virtualisasi paruh adalah awal dari adanya virtualisasi penuh. Virtualisasi paruh
digunakan pada generasi pertama dari sistem time-sharing CTSS dan sistem
paging eksperimental pada IBM M44/44X. Istilah ini juga bias digunakan untuk
mendeskripsikan system operasi yang menyediakan ruang alamat yang terpisah
untuk pengguna atau proses yang berbeda.

Virtualisasi paruh ini jauh lebih mudah diimplementasi daripada virtualisasi


penuh, seringkali sanggup menyediakan VM yang berguna dan tangguh serta
mendukung aplikasi-aplikasi penting. Kekurangannya adalah masalah
kompabilitas perangkat keras terdahulu dan portabilitas (tidak mendukung
banyak sistem). Jika suatu fitur perangkat keras tidak disimulasikan maka
perangkat lunak yang menggunakan fitur tersebut akan gagal berjalan.
8.2.5 Virtualisasi Asli
Virtualiasi asli adalah teknik dimana VM digunakan untuk mensimulasi suatu
environment perangkat keras lengkap supaya sistem operasi yang tidak
dimodifikasi dapat dijalankan untuk tipe CPU yang sama di terisolasi lengkap di
dalam wadah VM. Native virtualization memanfaatkan kemampuan bantuan
perangkat keras yang tersedia di dalam prosesor-prosesor termutakhir dari Intel
(Intel VT) dan Advanced Micro Devices (AMD-V) untuk menyediakan
performa mendekati sistem aslinya.

Virtualisasi asli, juga dikenal sebagai virtualisasi terakselerasi atau virtualisasi


hybrid adalah kombinasi virtualisasi penuh dan teknik akselerasi I/O dan sering
dipakai untuk sangat meningkatkan performa virtualisasi penuh. Biasanya,
metode ini dimulai dengan Virtual Machine Monitor yang mampu virtualisasi
penuh lalu, berdasarkan analisa performa, menjalankan teknik akselerasi
terpilih. I/O dan network drivers adalah bagian yang paling umum diakselerasi
dalam virtualisasi asli.

8.3 Contoh Virtual Machine


8.3.1 VMware
Pada GNU/Linux salah satu virtual machine yang terkenal adalah VMware
http://www.vmware.com. VMware memungkinkan beberapa sistem operasi
dijalankan pada satu mesin PC tunggal secara bersamaan. Hal ini dapat
dilakukan tanpa melakukan partisi ulang dan boot ulang. Pada Virtual Machine
(VM) yang disediakan akan dijalankan sistem operasi sesuai dengan yang
diinginkan. Dengan cara ini maka pengguna dapat memboot suatu sistem
operasi (misal Linux) sebagai sistem operasi tuan rumah (host) dan lalu
menjalankan sistem operasi lainnya misal MS Windows. Sistem operasi yang
dijalankan di dalam sistem operasi tuan rumah dikenal dengan istilah sistem
operasi tamu (guest).
Gambar 8.1. Contoh skema penggunaan pada VMware versi ESX Servers

Kebanyakan orang berpikir bahwa secara logisnya VMware diibaratkan sebagai


software yang sering digunakan untuk keperluan percobaan game, aplikasi,
untuk meng-install dua sistem operasi dan menjalankannya (misalnya Windows
maupun Linux) pada harddisk yang sama tanpa memerlukan logout dari sistem
operasi yang lainnya, secara gampang kita hanya tinggal menekan Alt + Tab
untuk mengganti SO.

Akan tetapi pada dasarnya VMware bukanlah emulator, karena tidak


mengemulasikan CPU dan perangkat keras di dalam suatu Virtual Machine
(VM), tetapi hanya membolehkan sistem operasi lainnya dijalankan secara
paralel dengan sistem operasi yang telah berjalan. Setiap Virtual Machine (VM)
dapat memiliki alamat IP sendiri (jika mesin tersebut di suatu jaringan), dan
pengguna dapat menganggapnya sebagai mesin terpisah.

8.3.2 Xen VMM


Xen adalah open source virtual machine monitor, dikembangkan di University
of Cambridge. Dibuat dengan tujuan untuk menjalankan sampai dengan seratus
sistem operasi ber-fitur penuh (full featured OSs) di hanya satu komputer.
Virtualisasi Xen menggunakan teknologi paravirtualisasi menyediakan isolasi
yang aman, pengatur sumberdaya, garansi untuk quality-of-services dan live
migration untuk sebuah mesin virtual.

Untuk menjalankan Xen, sistem operasi dasar harus dimodifikasi secara khusus
untuk kebutuhan tersendiri dan dengan cara ini dicapai kinerja virtualisasi
sangat tinggi tanpa hardware khusus.

Gambar 8.2. Contoh dari penggunaan Xen VMM

8.3.3 Java VM
Program Java yang telah dikompilasi adalah platform-neutral bytecodes yang
dieksekusi oleh Java Virtual Machine (JVM). JVM sendiri terdiri dari: class
loader, class verification, runtime interpreter, Just In-Time (JIT) untuk
meningkatkan kinerja kompilator.

Bahasa mesin terdiri dari sekumpulan instruksi yang sangat sederhana dan dapat
dijalankan secara langsung oleh CPU dari suatu komputer. Sebuah program
yang dibuat dengan bahasa tingkat tinggi tidak dapat dijalankan secara langsung
pada komputer. Untuk dapat dijalankan, program tersebut harus ditranslasikan
kedalam bahasa mesin. Proses translasi dilakukan oleh sebuah program yang
disebut compiler.
Setelah proses translasi selesai, program bahasa-mesin tersebut dapat
dijalankan, tetapi hanya dapat dijalankan pada satu jenis komputer. Hal ini
disebabkan oleh setiap jenis komputer memiliki bahasa mesin yang berbeda-
beda. Alternatif lain untuk mengkompilasi program bahasa tingkat tinggi selain
menggunakan compiler, yaitu menggunakan interpreter. Perbedaan antara
compiler dan interpreter adalah compiler mentranslasi program secara
keseluruhan sekaligus, sedangkan interpreter menstranslasi program secara
instruksi per instruksi. Java dibuat dengan mengkombinasikan antara compiler
dan interpreter.

Program yang ditulis dengan java di-compile menjadi bahasa mesin. Tetapi
bahasa mesin untuk komputer tersebut tidak benar-benar ada. Oleh karena itu
disebut "Virtual" komputer, yang dikenal dengan Java Virtual Machine (JVM).
Bahasa mesin untuk JVM disebut Java bytecode. Salah satu keunggulan dari
Java adalah dapat digunakan atau dijalankan pada semua jenis komputer. Untuk
menjalankan program Java, komputer membutuhkan sebuah interpreter untuk
Java bytecode.

Interpreter berfungsi untuk mensimulasikan JVM sama seperti virtual computer


mensimulasikan PC komputer. Java bytecode yang dihasilkan oleh setiap jenis
komputer berbeda-beda, sehingga diperlukan interpreter yang berbeda pula
untuk setiap jenis komputer. Tetapi program Java bytecode yang sama dapat
dijalankan pada semua jenis komputer yang memiliki Java bytecode.

8.4 Rangkuman
Virtualisasi adalah metode untuk membuat sesuatu menjadi lepas dari
ketergantungan secara fisik. Contoh; virtual machine adalah komputer, yang
sebetulnya hanya berupa sebuah file di hard disk kita. Dengan virtualisasi, maka
sebuah komputer (fisik) bisa menjalankan banyak komputer virtual sekaligus
pada saat yang bersamaan.

Jenis-jenis dari VM adalah VM sistem di mana sebuah VM dapat menjalankan


sebuah sistem operasinya sendiri, kemudian VM proses di mana VM hanya
menjalankan sebuah proses saja. Kemudian VM juga dibagi berdasarkan tingkat
virtualisasinya, yaitu virtualisasi penuh yang mensimulasikan seluruh fitur
perangkat keras sehingga memungkinkan perangkat lunak berjalan pada VM
tanpa modifikasi. Kemudian virtualisasi paruh, di mana tidak semua fitur
perangkat keras disimulasikan. Yang terakhir adalah virtualisasi asli, yang mana
merupakan virtualisasi penuh yang digabungkan dengan bantuan perangkat
keras yang mendukung virtualisasi.
Virtual Machine (VM) sendiri mulai dikenalkan oleh IBM ketika meluncurkan
sistem operasi mainframenya pada tahun 1965-an. Diperkenalkan untuk sistem
S/370 dan S/390 dan disebut sebagai sistem operasi VM/ESA (Enterprise
System Architecture).

VMware adalah suatu aplikasi yang memungkinkan kita untuk meng-install dua
sistem operasi dan menjalakan aplikasinya (misalnya Windows and Linux) pada
hardisk yang sama tanpa perlu logout dari SO yg lain. Xen adalah open source
Virtual Machine Monitor, dikembangkan di University of Cambridge, untuk
menjalakannya harus melalui dengan sebuah proses yakni pemodifikasian
sistem operasi untuk lebih full featured OSs. Bahasa mesin untuk JVM disebut
Java bytecode dengan keunggulannya yang bisa dijalankan pada berbagai jenis
komputer atau platform.

Rujukan
[Silberschatz2005] Avi Silberschatz, Peter Galvin, dan Grag Gagne. 2005.
Operating System Concepts. Seventh Edition. John Wiley & Sons.

[WEBWiki2008] From Wikipedia, the free encyclopedia. 2008. Full


Virtualization – http://en.wikipedia.org/wiki/Full_virtualization. .
Diakses 8 April 2008.

[WEBWiki2008] From Wikipedia, the free encyclopedia. 2008.


Partial_virtualization –
http://en.wikipedia.org/wiki/Partial_virtualization. . Diakses 8 April
2008.

[WEBWiki2008] From Wikipedia, the free encyclopedia. 2008.


Native_virtualization –
http://en.wikipedia.org/wiki/Native_virtualization. . Diakses 8 April
2008.

[WEBWiki2008] From Wikipedia, the free encyclopedia. 2008.


Virtual_machine – http://en.wikipedia.org/wiki/Virtual_machine. .
Diakses 8 April 2008.

[WEBWhatis2007] Whatis. 2007. What is virtual machine? - a definition from


Whatis.com -- http://whatis.techtarget.com. . Diakses 9 April 2008.
Oleh :
• A 0606101471 Iman Perkasa
• A 0606101572 Jonathan A.P.M.
• B 0606101811 Oktaf Charles

Anda mungkin juga menyukai