Dari IgosCenter
Tinjauan Teknis
Sebuah tinjauan dari berbagai teknologi dalam virtualisasi Linux.
Paravirtualization
Virtualisasi sebetulnya tidak dapat dilakukan pada arsitektur asli x86 ,karena beberapa instruksi berlaku berbeda bergantung kepada apakah CPU berjalan pada mode privileged. Karena sebuah mesin virtual guest tidak dapat berjalan dalam mode privileged (atas dasar kemananan), perangkat lunak Full-virtualization seperti vmware:http://www.vmware.com/ atau qemu:http://wiki.qemu.org/Main_Page dapat menangani instruksi-instruksi tersebut dengan menggantikannya dengan instruksi lain secara on-the-fly.
Penulisan kembali instruksi-instruksi tersebut bisa menjadi sulit. Jika kernel sistem operasi milik guest tidak pernah memanggil instruksi-instruksi unvirtualization, maka overhead tersebut dapat dihindari.
Secara singkat, teknologi ini disebut dengan paravirtualization. agar berjalan lebih efisien, kernel sistem operasi guest digantikan dengan kernel yang berjalan dengan baik didalam sebuah lingkungan yang divirtualkan.
Xen, lguest and User Mode Linux dapat melakukan paravirtualization pada arsitektur x86. IBM POWER juga melakukan hal yang sama, dengan menggunakan hypervisor untuk menangani update pagetable.

Hardware assisted virtualization
CPU dengan Intel VT dan AMD-V dapat menjalankan semua instruksi didalam mesin virtual yang tidak memiliki restriksi kepemilikan (unprivileged) , dan membuatnya berjalan dengan baik. Namun, ketika menjalankan sistem operasi yang tidak dimodifikasi, banyak operasi akan terperangkap kedalam hypervisor dan masih perlu untuk diemulasikan. Teknik ini menghasilkan implementasi yang lebih baik dari sebuah full virtualization.
Xen dan KVM dapat melakukan hardware assisted full virtualization.

Coopvirt
Coopvirt (cooperative virtualization) adalah perpaduan yang menarik antara paravirtualization dan hardware assisted full virtualization. Idenya adalah untuk menggabungkan kemampuan hardware Intel VT dan AMD-V untuk melakukan sebagian virtualisasi yang dilakukan software secara paravirtualization, dan masih memiliki guest yang berjalan dengan baik pada sebuah lingkungan yang divirtualisasi. Sampai akhir tahun 2006, coopvirt pada arsitektur x86 masih pada tahap percobaan dan pengembangan. Meskipun mainframe-mainframe IBM telah telah lama menggunakan metode yang mirip dengan coopvirt.
Containers
Containers, juga dikenal dengan virtualisasi level sistem operasi,sama sekali tidak dapat menjalankan mesin virtual, tapi secara simpel dapat memisahkan satu lingkungan user dari yang lainnya, sementara semuanya berjalan pada satu kernel. Sistem Container cenderung memiliki overhead rendah dan kepadatan yang tinggi, dan juga memiliki isolasi rendah antara container yang berbeda. Sistem Container tidak memperbolehkan untuk menjalankan banyak kernel yang berbeda, namun kasus berbeda distribusi Linux dalam container berbeda diperbolehkan.
Solaris Zones, Linux-VServer dan OpenVZ/Virtuozzo adalah contoh dari sistem container. OpenVZ secara relatif memiliki isolasi resource yang lengkap diantara container yang berbeda.
Binary rewriting / JIT
Qemu and VMware dapat mengemulasikan sebuah sistem komputer tanpa bergantung pada trap. Hal tersebut dilakukan dengan cara memindai instruksi yang akan dilakukan oleh guest, memastikan tidak ada instruksi privileged dan menggantikannya dengan instruksi alternatif jika diperlukan. Karena ada kemungkinan terdapat sebuah debugger berjalan didalam guest, code pages yang belum terganti perlu ditandai sebagai read-only dan code page yang diubah perlu untuk diduplikasi. Qemu memiliki kemampuan untuk mengemulasikan arsitektur yang berbeda, misalnya menjalankan sebuah x86 virtual PC dalam hardware powerpc, sedangkan VMware hanya dapat berfungsi pada arsitektur x86. VMware juga memiliki beberapa paravirtualized device driver, seperti untuk video, untuk mengurangi beban dari full virtualization.
Kontributor: Dwiharyanto

