Sunday - May 18, 2008

Home | Site Map | Channels | Profile | Press Room | Services | Contact 

currently 12 user(s) online

search 

   Latest News

»

sony-ak.com Luncurkan Kamus Teknologi Informasi (May 27, 2006)

»

sony-ak.com Luncurkan IT Event Calendar (May 20, 2006)

»

Web Chat Berbasis AJAX dari sony-ak.com (May 09, 2006)

»

sony-ak.com Advertising Program (May 01, 2006)

»

Sony AK di Tabloid PCplus (April 18, 2006)

news archives » 


   Random Article

»

Mengetahui PSN (Processor Serial Number) (3356)

»

Mengenal SMTP (Simple Mail Transfer Protocol) - RFC 821 (4417)

»

Situs Delphi Basics, Alternatif Referensi Online Borland Delphi Untuk Programmer (4699)

»

Hati-hati dengan URL Content Management System Anda !! (3908)

»

Free Postnuke Hosting di MobyNuke (2450)

   Newsletter

Join our newsletter, you will get alert about content updates

powered by Yahoo! Groups















Nedstat Basic - Free web site statistics

 
 
Mengenal Emulator PC - Bagian 1

Author: Harimurti Widyasena
Published: December 05, 2005
Visits: 2686 - Category: Emulator
 
     
 

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:

  1. Sistem operasi Windows ataupun Linux sebagai host OS
  2. Perangkat lunak emulator Bochs, dan QEMU
  3. 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.




 Recommended articles
 

»

Sejarah Inovasi pada Perusahaan IBM (3957)

»

Uraian Singkat: Perbedaan Mailing List, News Group dengan Blog (2148)

»

Contoh Berkirim E-mail dengan Menggunakan Telnet (4179)

»

Mengenal Perbedaan Antara Prosedur dan Fungsi Pada Borland Delphi (3792)

»

Beberapa Penyebab Hilangnya Data Sementara (Temporary Data Loss) Pada Perusahaan Beserta Solusinya (3529)

 Send your comments or suggestions
Full Name :
E-mail :
Comments :
 
 

  Privacy | Site Map | Advertise

  Copyright © 2003 - 2006 Sony AK Knowledge Center - all rights reserved

  info@sony-ak.com