Emulator Android Dan Dukungan Virtualisasi Di Prosesor


Patokan yang sering dipakai dalam memilih sebuah prosesor (CPU) adalah kecepatan dan jumlah core.   Tapi nilai sebuah prosesor tidak hanya dilihat dari kedua patokan tersebut.   Pengguna yang sering menjalankan emulator seperti emulator Android atau virtual machine seperti VirtualBox, sebaiknya memilih prosesor yang mendukung fasilitas hardware-assisted virtualization.   Penggunaan fasilitas ini dapat meningkatkan kinerja emulator/simulator.   Selain itu, tanpa dukungan hardware-assisted virtualization, virtual machine akan menolak mensimulasikan CPU yang berbeda.   Sebagai contoh, mensimulasikan CPU x64 (64-bit) dari sebuah host CPU x86 (32-bit) tidak dapat dilakukan bila prosesor tidak memiliki fitur ini.    Intel memberi nama teknologi hardware-assisted virtualization-nya sebagai VT-x, sementara AMD memakai nama AMD-V.

Perlu diingat bahwa tidak semua prosesor yang beredar di pasaran mendukung virtualisasi (secara hardware).   Sebagai contoh, seluruh seri Intel Core i3, i5 dan i7 sudah mendukung virtualisasi sementara itu banyak tipe prosesor Intel Atom serta beberapa tipe Intel Celeron dan Intel Pentium (generasi baru) tidak mendukung virtualisasi hardware.   Untuk memeriksa dukungan virtualisasi di sistem operasi Windows, saya dapat menjalankan program coreinfo.exe yang merupakan bagian dari paket Sysinternals Suite.   Bila pada baris VMX atau SVM terdapat tanda bintang (*),  maka CPU yang dipakai sudah mendukung virtualisasi hardware, seperti yang terlihat pada gambar berikut ini:

Memeriksa apakah prosesor mendukung virtualisasi hardware

Memeriksa apakah prosesor mendukung hardware-assisted virtualization

Pada contoh ini, saya akan memakai prosesor Intel.   Pertanyaan yang muncul saat ini adalah apa kelebihan hardware-assisted virtualization? Apa yang membedakannya dengan virtualisasi yang dilakukan oleh software?

Untuk menjawab pertanyaan di atas, saya perlu terlebih dahulu memahami arsitektur komputer.    Pada komputer rumah (PC), eksekusi kode program sistem operasi dan eksekusi kode program untuk aplikasi biasanya dilakukan secara terpisah.   Prosesor modern mendukung hingga 4 lapisan eksekusi (ring 0, ring 1, ring 2, dan ring 3), tapi sistem operasi Windows hanya memanfaatkan 2 lapisan saja, yaitu ring 0 untuk menjalankan kode program penting milik sistem operasi tersebut dan ring 3 untuk menjalankan kode program aplikasi. Tujuan pemisahan ini adalah untuk menjaga agar kode program aplikasi yang berbahaya hanya terbatas merusak area memori di ring 3 saja tanpa membahayakan sistem operasi di ring 0.   Beberapa instruksi prosesor (bayangkan bahasa assembly) hanya bisa bekerja di ring 0.   Boleh dibilang ciri khas sebuah sistem operasi adalah ia selalu dijalankan dari ring 0 dimana ia bisa mengelola seluruh sumber daya yang ada dan mengerjakan seluruh instruksi prosesor yang tersedia.

Pada saat sebuah sistem operasi dijalankan dari emulator atau virtual machine, maka sistem operasi ‘virtual’ tersebut bekerja di ring 3 bukan ring 0.  Hal ini sistem operasi host (yang menjalankan emulator) sudah duluan bekerja di ring 0 dan tidak mungkin membiarkan sistem operasi ‘virtual’ tersebut untuk mengambil alih kendali.  Masalahnya adalah kode program di sistem operasi ‘virtual’ pada dasarnya dirancang untuk bekerja di ring 0.  Sistem operasi ‘virtual’ tersebut akan memakai wilayah memori yang tidak boleh diakses oleh ring 3 dan mengerjakan instruksi CPU yang tidak dapat dilakukan di ring 3.  Oleh sebab itu, emulator perlu menentukan apa yang harus dilakukan bila operasi yang harus bekerja di ring 0 dipanggil (misalnya dengan melakukan simulasi).   Terkadang bila akses tidak mungkin disimulasikan, emulator akan mengabaikan operasi tersebut.

Berbeda dengan pendekatan dimana software emulator harus bekerja keras mensimulasikan operasi di ring 0, hardware-assisted virtualization di prosesor Intel mengatasi permasalahan ini dengan memperkenalkan operasi VMX.   Prosesor yang mendukung VT-x memiliki beberapa intruksi tambahan seperti VMXON, VMLAUNCH, VMRESUME, VMXOFF, dan sebagainya (bayangkan kode program assembly bila ingin memanggilnya).   Instruksi tersebut memungkinkan emulator untuk menjalankan sistem operasi virtual pada state prosesor yang unik berlaku untuknya tanpa mempengaruhi state ‘nyata‘.   Dengan demikian, sistem operasi virtual dapat berjalan pada ring 0 di prosesor ‘virtual‘ tersebut secara aman.   Karena sebagian besar proses virtualisasi tidak lagi dilakukan oleh kode program emulator melainkan secara transparan terjadi di CPU, maka ini disebut sebagai hardware-assisted virtualization.

Saya akan mencoba menjalankan Android Emulator di prosesor Intel Pentium berkecepatan 2.2 GHz tanpa dukungan teknologi VT-x.   Saya menemukan bahwa dibutuhkan waktu sekitar 3 menit agar tampilan emulator siap untuk dipakai.

Kemudian sebagai perbandingan, saya akan menjalankan emulator Android pada sebuah prosesor berkecepatan Intel Celeron 1.6 GHz yang mendukung teknologi VT-x.   Secara clock speed, nilainya jauh dibawah prosesor sebelumnya dimana terdapat selisih 0.6 GHz (walaupun prosesor yang berbeda arsitektur tidak dapat dibandingkan melalui clock speed-nya!).   Karena saya memakai prosesor Intel untuk menjalankan emulator Android, saya dapat menggunakan teknologi Intel Hardware Accelerated Execution Manager (Intel HAXM) yang mensyarakatkan prosesor yang mendukung VT-x.   Untuk memakai Intel HAXM, pada Android SDK Manager, saya memberi tanda centang di Intel x86 Emulator Accelerator (HAXM) seperti yang terlihat pada gambar berikut ini:

Mendownload Intel HAXM

Mendownload Intel HAXM

Setelah proses download selesai, saya perlu men-install Intel HAXM secara manual.   Install?  Yup!  Walaupun tertulis ‘Installed‘ di Android SDK Manager,  sebenarnya yang dilakukan oleh SDK Manager hanya men-download file installer Intel HAXM.   Oleh sebab itu, saya perlu mencari folder berikut ini di lokasi instalasi Android SDK: extras/intel/Hardware_Accelerated_Execution_Manager.   Pada folder tersebut terdapat sebuah file IntelHAXM.exe yang dapat dipakai untuk melakukan instalasi.

Setelah proses instalasi Intel HAXM selesai dilakukan, saya kemudian membuat sebuah Android Virtual Device (AVD) baru dengan konfigurasi seperti berikut ini:

Membuat AVD Baru

Membuat AVD Baru

Saya menemukan bahwa waktu yang dibutuhkan agar layar home Android muncul dan siap dipakai adalah sekitar 1 menit. Kesimpulannya, Intel Celeron 1.6 GHz dengan teknologi VT-x lebih cepat menjalankan emulator dibandingkan dengan Intel Pentium 2.2 GHz tanpa teknologi VT-x.  Selain itu, pada percobaan melakukan instalasi aplikasi BlackBerry Messenger (BBM) untuk Android pada emulator Genymotion, saya menemukan bahwa aplikasi tersebut tidak dapat berjalan pada komputer dengan prosesor yang tidak mendukung hardware-assisted virtualization  Aplikasi BBM akan selalu tertutup sendiri beberapa saat setelah dijalankan (pesan kesalahan menunjukkan hal yang berkaitan dengan native API).  Saat mencobanya pada prosesor Intel yang mendukung VT-x, saya tidak menemukan masalah ini.

Perihal Solid Snake
I'm nothing...

6 Responses to Emulator Android Dan Dukungan Virtualisasi Di Prosesor

  1. Tut Sudarsana mengatakan:

    boz…tolong solusinya..saya pengen mendownload dan menginstall emulator android tapi slalu gagal, saya menggunakan laptop HP 1000 win7 dengan prosesor intel 32 bit. tolong solusinya dan trims sebelum dan sesudahnya.

    • Steven Way mengatakan:

      Bila kegagalan terjadi pada saat men-download, pastikan koneksi internet yang dipakai lancar. Bila kegagalan terjadi pada saat men-install, pastikan anti virus dan berbagai pengaturan administrasi lainnya tidak membatasi.. Bila kegagalan terjadi pada saat menjalankan emulator, periksa pesan kesalahan yang diberikan.

  2. Rafly Ahmad Hendarto mengatakan:

    thx bro infonya…
    ini info penting buat pengguna emulator yang install BBM atau games** di android…
    pastikan procie anda mendukung VTx [virtualization Technology]…
    kalau belum pasti akan gagal instal BBM, Line, wechat dan games tertentu…
    salam sukses

  3. Dirman sadega mengatakan:

    sory ne..saya mau tanya apakah emulator android studio hanya suport untuk laptop berprosesor intel…kebetulan saya mengunakan prosesor amd..dan saya menginstal aplikasi android studio tapi slalu gagal ketika meruning avdnya.. intel haxm not instal padahal dah saya instal semua tool yg ada di jdk..mohon pencerahanya

  4. Windhalan Setiawan mengatakan:

    saya sudah mengecek menggunakan software intel processor identification utility dan securable, dan ternyata laptop saya support VTx. tapi di emulator tetap saja VTx nya belum kebaca. ada solusi gk gan?

  5. harto malau mengatakan:

    thanks berat pencerahannya Mas/Pak…

Apa komentar Anda?

Please log in using one of these methods to post your comment:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

%d blogger menyukai ini: