|
Saat ini terdapat beberapa perangkat lunak emulator, baik yang
komersial seperti VMware, VirtualPC maupun yang non-komersial
(freeware). Artikel ini membahas emulator PC non-komersial Bochs,
pada sistem operasi Windows XP SP1 (host operating system) dan QNX
sebagai sistem operasi tamu (guest OS) pada kedua emulator tersebut.
Apakah Emulator PC?
Emulator PC adalah perangkat lunak yang melakukan simulasi kerja
perangkat keras PC, tidak hanya prosesor tapi juga perangkat lain,
seperti hardisk, floppy disk, CD-ROM, keyboard, monitor. Emulator PC
sebagian besar adalah emulator untuk PC dengan prosesor Intel x86
(x86 PC emulator) karena prosesor tersebut mendominasi desktop PC
maupun laptop yang digunakan saat ini.
Emulator PC dapat digunakan untuk berbagai macam kebutuhan,
antara lain:
- Menjalankan perangkat lunak yang dibuat untuk sistem operasi
lain, DOS misalnya. Hal ini mungkin dijumpai pada maintenance
legacy system. Mungkin banyak orang sudah melupakan DOS, tetapi
masih ada sistem komputer, apakah sistem kontrol industri atau
sistem lain yang menggunakan DOS.
- Menjalankan game yang dulu pernah populer sebelum era
Windows, emulator juga dapat digunakan, walaupun ada emulator
yang khusus dibuat untuk tujuan ini.
- Melakukan uji coba kernel, misalkan dalam pengembangan
varian kernel Linux untuk aplikasi khusus dapat memanfaatkan
emulator sebelum diuji coba pada perangkat keras sesungguhnya.
- Mencoba sistem operasi lain, misal Windows 3.11, Linux, dll
tanpa harus melakukan partisi ulang yang harus dilakukan dengan
hati-hati.
- Mencoba mesin (virtual) lainnya, misal Macintosh, PowerPC,
Alpha workstation, mungkin dilakukan dengan emulator seperti
Qemu.
Kenapa QNX?
Emulator PC memungkinkan sebuah PC menggunakan dua atau lebih OS
pada saat yang bersamaan, misalkan Windows dan UNIX. Pada uji coba
ini menggunakan Windows XP dan QNX Neutrino. QNX adalah sistem
operasi mirip UNIX (UNIX-like) yang mempunyai demo disk dalam disket
(floppy disk). Disket demo tersebut berisi file system dan kernel
yang dapat digunakan untuk booting mesin virtual yang dibentuk oleh
emulator PC tersebut. Dengan demikian uji coba dapat dilakukan mulai
dari konfigurasi yang paling sederhana, kemudian meningkat ke
konfigurasi PC yang lebih lengkap.
Apa yang dibutuhkan?
Untuk mencoba emulator hanya dibutuhkan PC atau laptop dan perangkat
lunak sebagai berikut:
- Sistem operasi Windows ataupun Linux sebagai host OS
- Perangkat lunak emulator Bochs, dan QEMU
- Distribusi sistem operasi QNX, dalam media CD maupun berupa
file image ISO.
Perangkat lunak lain yang dibutuhkan akan dijelaskan pada
pembahasan selanjutnya.
Dimana mendapatkannya?
Perangkat lunak emulator dapat diperoleh dalam bentuk file binary
yang siap install (prepackage binary), maupun dalam bentuk source
code. Pada uji coba ini, digunakan prepackaged binary karena hal ini
jauh lebih mudah dari pada bentuk source yang masih perlu dicompile.
Lagi pula untuk mendapatkan source code mungkin perlu CVS client,
dan untuk compile memerlukan environment UNIX seperti Cygwin atau
MingW.
Bochs sudah mempunyai versi yang cukup stabil untuk host OS
Windows maupun Linux. Bochs dapat diperoleh dari
http://bochs.sourceforge.net. Uji coba ini menggunakan Bochs-2.1.1
QNX dapat diperoleh di Internet dalam bentuk file image .iso dari
situs tucows (hhtp://classic.tucows.com/qnx/os_default.html) atau
situs planetmirror (http://public.planetmirror.com/pub/qnx/qnxrtp/),
namun demikian ukurannya cukup besar, kurang lebih 440 MB. Pada uji
coba ini menggunakan QNX release 6.0 yang diperoleh dari
http://public.www.planetmirror.com/pub/qnx/qnxrtp/old/qnxrtp.iso.
Release 6.0 adalah release lama, tetapi ukurannya lebih kecil,
kurang lebih 250 MB.
Instalasi Emulator
Instalasi juga sangat mudah, hanya melakukan unzip file binary
tersebut ke direktori tertentu, misal C:\Program Files\bochs-2.1.1.
Uji Coba Emulator
Sebelum mencoba emulator PC, terlebih dahulu perlu disiapkan file
image demo disket QNX. Jika file .iso qnx diekstrak ke CD dengan
perangkat lunak seperti Roxio atau Nero, maka terdapat direktori
demodisk. Direktori tersebut berisi file yang diperlukan untuk
membuat file image yang akan dibaca oleh emulator.
Ada beberapa perangkat lunak untuk membuat file image dari disket
demo QNX, antara lain WinImage (shareware), PartCopy (freeware), dan
RawWrite (freeware). Pada uji coba ini digunakan RawWrite. RawWrite
untuk Windows (rawwritewin-0.7) dapat diperoleh di situs
http://uranus.it.swin.edu.au/~jn/linux/rawwrite.htm dalam bentuk
binary maupun source code.
Setelah rawwrite terinstall, maka jalankan rawwrite dan tampilan
dialog seperti berikut ini:

Pilih Read pada tab dialog tersebut, kemudian tentukan direktori
tempat file image tersebut akan disimpan. Pada dialog tersebut juga
terlihat bahwa rawwrite membaca drive A: (disket), jadi tidak ada
pilihan lain. Oleh sebab itu, direktori D:\DEMODISK pada CD QNX
perlu dicopy ke disket terlebih dahulu.
Uji Coba Bochs
Emulator Bochs membaca file konfigurasi berisi parameter perangkat
keras yang disimulasikan. Pertama-tama siapkan dulu file tersebut
dan simpan di dalam direktori yang sudah disiapkan, misal C:\Program
Files\Bochs-2.1.1\qnx. Bochs menyediakan dokumentasi dan contoh isi
file konfigurasi tersebut. Pada uji coba ini file konfigurasi
tersebut berisi:
# jumah memory
yang dimiliki oleh mesin virtual ini
megs: 32
# nama file ROM images, berada di direktori
# C:\Program Files\Bochs-2.1.1
romimage: file=..\BIOS-bochs-latest, address=0xf0000
vgaromimage: ..\VGABIOS-elpin-2.40
# kemampuan mesin virtual dalam satuan instructions per second
ips: 2000000
# mesin virtual menggunakan floppy drive a:,
# dan file image bernama 1.44
floppya: 1_44=1.44, status=inserted
# mesin virtual di-boot dengan disket (drive a)
boot: a
# pesan error/diagnostic disimpan dalam file bochsout.txt
log: bochsout.txt
Tanda # menyatakan baris komentar. Masih terdapat parameter lain
yang dapat dimasukkan dalam file konfigurasi dan dijelaskan dalam
dokumentasi bochs. Bochs dapat membaca drive A: langsung apabila
dalam file tertulis floppya: 1_44=a: (jangan lupa “:” setelah huruf
a untuk menyatakan drive a:, jika tidak menggunakan “:” bochs akan
mencari file a.img), namun demikian akses ke floppy tersebut lebih
lambat dibanding langsung ke file image.
Emulator bochs dijalankan dengan perintah
..\bochs
atau
..\bochs –f
nama-file-konfigurasi
pada command prompt. Boch akan langsung menggunakan file
konfigurasi dengan nama bochsrc atau bochsrc.txt jika file tersebut
ada, jika tidak maka boch akan menanyakan file konfigurasi yang akan
digunakan. Atau dengan menggunakan option –f nama-file bila file
konfigurasi bernama lain atau tidak berada di direktori di mana
perintah tersebut diberikan (current directory).
Jika tidak ada kesalahan (sintaks, dll) pada file konfigurasi
kemudian muncul tampilan sebagai berikut:

Pilih 5 atau tekan <Enter>, setelah proses booting selesai maka
muncul tampilan seperti gambar berikut ini:

Problem yang ada pada uji coba ini adalah mengaktifkan mouse
melalui file konfigurasi, jika pada file tersebut tertulis mouse:
enabled=1 (atau 0) maka proses booting gagal dengan pesan diagnostic
terekam dalam log file (bochsout.txt). Mouse masih dapat digunakan
dengan menekan F12 atau melalui menu config (pada command bar).
Uji Coba Jaringan
Bochs menyediakan simulasi NIC jenis NE2000, dan dapat diaktifkan
dengan menambahkan
ne2k:
ioaddr=0x240, irq=9, mac=b0:c4:20:00:00:00, ethmod=win32, ethdev=
pada file konfigurasi bochsrc.txt. Parameter ioaddr dan irq
mungkin tidak perlu diubah, tetapi mac perlu dibuat unik sehingga
tidak sama dengan NIC lain yang ada dalam jaringan. Nilai parameter
ethdev dapat ditentukan dengan menjalankan program niclist.exe.
Program ini tersedia dalam file instalasi Bochs untuk Win32.
Program niclist.exe memerlukan library pcap untuk win32, yaitu
winpcap yang dapat diperoleh melalui situs www.winpcap.org. Sebagai
catatan dari hasil uji coba niclist.exe dapat bekerja dengan
winpcap-3.0, apabila menggunakan winpcap-3.1 beta niclist.exe tidak
memberikan keluaran seperti yang diharapkan. Setelah winpcap
terinstall, maka niclist dapat dijalankan untuk mendapatkan nilai
ethdev dan mengisi ethdev= di file konfigurasi seperti contoh di
bawah ini.
ne2k:
ioaddr=0x240, irq=9, mac=b0:c4:20:00:00:00, ethmod=win32,
ethdev=\Device\NPF_{626E0016-A033-491C-A93A-C1D62D6B86E6}
Selanjutnya mesin virtual dapat di boot, tetapi sekarang sudah
dilengkapi dengan card jaringan. Setelah proses boot berhasil,
lakukan konfigurasi jaringan TCP/IP seperti alamat IP, network mask,
gateway, DNS dan lain-lain. Pada QNX versi demo terdapat browser
yang dapat dimanfaatkan untuk uji coba jaringan.

Pada gambar di atas browser menampilkan situs
http://www.google.co.id/.
Kontrol Simulasi
Pada saat Bochs menjalankan simulasi, Bochs menggunakan dua buah
window. Window pertama berisi simulasi mesin virtual, dan window
kedua adalah monitor window yang mengendalikan jalannya simulasi.
Pada window pertama terdapat command bar. Jika tombol Config ditekan
maka simulasi terhenti (suspend) dan kendali berada di monitor
window seperti ditunjukkan pada gambar di bawah ini:

Pada gambar di atas terdapat 16 pilihan yang dapat diubah-ubah,
bergantung pada kebutuhan simulasi, atau pilih [15] sebagai default
untuk melanjutkan (resume) simulasi. Menu ini juga berguna pada saat
hendak menstop simulasi, karena kalau diberikan perintah shutdown
pada QNX maka mesin virtual langsung reboot dan proses ini dapat
dihentikan dengan menu [16]. Jika menggunakan mouse di mesin
virtual, dengan F12 misalnya, jangan lupa untuk menekan kunci F12
lagi supaya dapat menekan tombol Config pada command bar.
Uji Coba Instalasi QNX
Setelah mesin virtual dapat menjalankan QNX dari floppy, maka uji
coba dapat dilakukan dengan melakukan instalasi sistem operasi
melalui media CD.
Langkah pertama adalah membuat hard disk virtual dengan utility
bximage.exe. Jika program tersebut dijalankan maka tampil dialog
sebagai berikut:
====================================================================
bximage
Disk Image Creation Tool for Bochs
$Id: bximage.c,v 1.19 2003/08/01 01:20:00
cbothamy Exp $
====================================================================
Do you want to create a floppy disk image or a hard disk image?
Please type hd or fd. [hd]
What kind of image should I create?
Please type flat, sparse or growing. [flat]
Enter the hard disk size in megabytes, between 1 and 32255
[10] 540
I will create a 'flat' hard disk image with
cyl=1097
heads=16
sectors per track=63
total sectors=1105776
total size=539.93 megabytes
What should I name the image?
[c.img] qnxhd.img
Writing: [] Done.
I wrote 523837440 bytes to qnxhd.img.
The following line should appear in your bochsrc:
ata0-master: type=disk, path="qnxhd.img", mode=flat, cylinders=1097,
heads=16, spt=63
Pada contoh di atas, dibuat virtual disk sebesar 540 MB dengan
nama qnxhd.img. Langkah selanjutnya, mengubah file konfigurasi untuk
memasukkan virtual disk dalam simulasi sebagai berikut:
ata0:
enabled=1, ioaddr1=0x1f0, ioaddr2=0x3f0, irq=14
ata1: enabled=1, ioaddr1=0x170, ioaddr2=0x370, irq=15
# disk image
ata0-master: type=disk, path=qnxhd.img, mode=flat, cylinders=1097,
heads=16, spt=63
# cdrom
ata1-master: type=cdrom, path=D:, status=inserted
boot: cdrom
Selain menambahkan virtual disk, juga mengubah media untuk
booting mesin virtual dari drive A: (floppy) ke D: (CD-ROM).
Selanjutnya simulasi dapat dicoba dengan memberikan perintah
..\bochs seperti pada uji coba dengan disket.
Uji coba instalasi ternyata tidak dapat dilanjutkan karena Bochs
panik, menghentikan simulasi dengan pesan diagnostik:
=====================================================================
Bochs is exitting with the following message:
[CPU ] LTR:386TSS: loading tr.limit < 103
=====================================================================
Apakah yang dapat dilakukan selanjutnya ? Intuisi terhadap pesan
tersebut mengarahkan ke masalah memori karena TSS adalah salah satu
segmen register x86, oleh sebab itu dapat dicoba untuk memperbesar
memori (megs: 64 atau 128). Namun demikian hal ini juga tidak
berhasil, karena QNX adalah OS untuk sistem embedded sehingga 32MB
seharusnya sudah sangat besar untuk OS real-time seperti QNX.
Hal lain yang dapat dilakukan antara lain:
- Melihat bug report yang pernah dilaporkan kepada tim
pengembang Bochs, mungkin ada solusi yang dapat langsung
diterapkan.
- Melakukan debug, tetapi mungkin harus melakukan kompilasi
sendiri supaya debug symbol termasuk dalam file bochs.exe yang
dihasilkan. Jadi tidak dapat mengandalkan prepackaged binary
seperti pada uji coba ini. Situs Bochs menyediakan sarana untuk
melihat source code dengan browser, dan jika ditelusuri maka
fungsi yang mencetak pesan diagnostik (error) tersebut adalah
fungsi protect_ctrl.cc. Kemungkinan kegagalan terjadi pada saat
inisialisasi register TSS (Task State Segment) berkaitan dengan
pelanggaran (violation) terhadap proteksi x86.
- Mencoba boot dari drive A:\. Pada CD instalasi QNX terdapat
program qmakedsk.exe untuk membuat bootable floppy disk, karena
QNX dapat diinstall menggunakan disket.
- Mencoba instalasi QNX di emulator Qemu. Jika instalasi
berhasil, maka mesin virtual tersebut dapat menggunakan dua
virtual disk (1 master, 1 slave). Kemudian membuat partisi
maupun file system dapat dilakukan terhadap virtual disk kedua
(slave). Virtual disk kedua ini nanti digunakan pada emulator
Boch.
- Mencoba dengan release terbaru Bochs, yaitu release 2.2.1.
Uji coba QNX pada emulator Bochs belum menunjukkan hasil yang
maksimal. Hal ini juga dapat dilihat pada situs
http://bochs.sourceforge.net, uji coba yang dilakukan sebatas
menggunakan QNX versi demo, belum mencapai instalasi OS. Namun
demikian hal tersebut tidak mengurangi manfaat Bochs. Bochs
merupakan emulator yang baik, jika menggunakan guest OS lain seperti
Linux, DOS, Win95 maka akan memberikan hasil yang jauh lebih baik.
Pada bagian kedua akan dibahas uji coba yang sama, yaitu
menggunakan emulator Qemu.
Referensi
- Dokumentasi Bochs, http://bochs.sourceforge.net
- Bochs for Windows, K.J, http://www.osdever.net
Demikian tulisan sederhana mengenai pengenalan emulator PC. Jika ada komentar atau saran bisa dikirimkan melalui
harimw@bdg.centrin.net.id. Untuk membaca tulisan menarik lainnya
silakan menuju ke situs Sony AK Knowledge Center dengan alamat di
www.sony-ak.com.
Terima kasih.
| Send
your comments or suggestions |
|
|
|