Achmad Mardiansyah's Journal

Manage your knowledge by writing it

Archive for the ‘emulation’ tag

Binary compatibility & tukang porting

without comments

tanya dunk…

Q: package linux apakah bisa dijalanin di solaris nggak ya?? Kalo BSD kan ada linux compabilitynya. Kalo opensolaris ada ga’mas??
kalo kamu tanya: apakah bisa? jawabnya: tentu bisa. ini pertanyaan general soalnya. hehehe..

tapi kalo tanya lebih detil: bagaimana? dan apa saja yang bisa?
kalo ini jawabnya rada susah, karena gak semuanya bisa. feature ini rada maksa dan cocok2an.
ini berlaku di semua OS loh: unix, linux, windows, mac, dll
hehehe :-p

So, saran saya, jangan terlalu percaya sama feature binary compatibility ini deh.
mending pake native binarynya, atau compile source codenya.
Kalo mo coba2 sih terserah. softwarenya bisa pake: wine (di linux), lxrun (di solaris).

Beberapa perusahaan memang concern dengan stabilitas, pada males pake feature ini.
ini adalah feature dari marketing/hobbyist supaya banyak orang yang pake OSnya. biasa, namanya juga marketing. ngak jelek sih, tapi ada resiko jika anda memakai feature ini.

logikanya gini,
inti dari OS kan kernel, maka dari itu, aplikasi yang dibuat diatasnya pasti akan berbasiskan kernel tersebut kan? aplikasi tersebut harus kompatible dengan kernel, supaya bisa mengakses hardware toh?
kernel HP-UX, AIX, SCO, SOLARIS, LINUX, WINDOWS, MAC adalah beda. maka aplikasi yang dibangun diatasnya bakal tidak kompatibel satu sama lainnya. jelas kan?

contoh:
kamu buat program dengan bahasa C di LINUX. trus kamu compile source code kamu itu, dan selanjutnya akan menghasilkan file binary toh? file binary tersebut akan mulus berjalan di linux karena memang udah dicompile untuk berjalan disono. logis toh?
kalo file binary linux tersebut di run di OS lain dan mandek, ya jelas aja bisa mandek dong, karena kernelnya jelas beda. meskipun OS lain tersebut dibuat dengen bahasa C juga.

apanya sih yang membuat kernel beda?:
– cara mengakses harddisk
– menampilkan character di display
– system calls (ini yang utama)
– management memory
– cara mengakses CPU
– serta sejuta alasan lainnya yang membuat kernel beda. hehehe…

mungkin kalo di ibaratkan, seperti menerapkan “Free Sex” di Indonesia dan di Eropa.
yaa.. kalo di indo bakal susah penerapannya, bakalan banyak demo. hehehe…
basically adalah karena kernel orang indo beda dengan eropa.
Basicnya udah beda banget, kalo pun bisa diterapkan, namanya maksa.

maka dari itu, ada yang namanya porting aplikasi. sebuah aplikasi akan coba di recompile untuk berjalan di system lain. Kerjaan porting ini juga bukan kerjaan mudah loh. source code yang di tulis dengen bahasa C, ketika sukses di compile di linux, belum tentu juga sukses dicompile di solaris.
makanya si tukang porting perlu ngutak-ngatik source code juga biar bisa dicompile.

kalo ngak mau report porting, ya nulis programnya jangan pake bahasa C, tapi pake JAVA.
dijamin kompatible di semua platform. hehehe

tertarik jadi tukang porting? :-p

URL pendek: http://bit.ly/jQ4F9e

tanya tentang virtualization dunk…

with 2 comments

tanya dunk mas, “saya bingung dengan beberapa istilah virtualisasi”

Q: apa itu virtualisasi?
A: dalam dunia komputer, virtualisasi adalah teknik untuk membuat abstraksi (bisa dikatakan emulasi) resources komputer. resources dapat berupa: satu set hardware komputer (mainboard + harddisk + dll), satu set OS, atau dapat berupa hanya sebuah aplikasi.
Contoh konkritnya adalah: OS dalam OS, aplikasi dalam aplikasi.
Contoh softwarenya: VMware, Xen, Citrix, KVM, virtual-box, Solaris Zones.

Q: teknik virtualisasinya gimana?
A: untuk membuat system virtual, ada 2 cara yang dipakai:
* Full virtualization & Hardware-assisted virtualization
* Paravirtualization

Q: bedanya host OS & guest OS?
A: istilah ini digunakan pada virtualisasi operating system, yaitu membuat OS di dalam OS.
OS yang menjadi induk disebut host OS, dan OS yang akan diinstall didalamnya adalah guest OS.

Q: maksudnya full virtualization?
A: artinya, software virtualization akan membuat sebuah system virtual mulai dari level terbawah (level hardware). Jadi, nantinya akan ada: harddisk virtual, CPU virtual, RAM, DVD, NIC, monitor, keyboard, floppy, USB controller, motherboard chipset, graphic card, soundcard, serta komponen virtual lainnya. Sama seperti waktu kamu beli komputer lengkap toh?
disadvantages: karena bener2 membuat level abstraksi dari bawah, maka performansi dari guest OS ini rada turun. tidak sebaik OS induknya.
advantages: karena mulai dari level hardware, kita bisa install macem2 OS di atasnya. Cuman yang perlu diingat adalah tiap OS punya HCL (hardware compatibility list) sendiri.
contoh software full virtualization: vmware, virtual box, virtual PC.

Q: maksudnya Hardware-assisted virtualization?
A: Hardware-assisted virtualization adalah virtualization yang didukung oleh hardware. jadi ada hardware khusus yang berguna untuk meningkatkan performance proses virtualisasi. full virtualization kan overheadnya banyak tuh, nah supaya performansi guest OS ngak terlalu down, maka dibantu dengan hardware. biasanya sih hardware tersebut ditanam di CPU serta menjadi sebuah feature CPU. untuk processor intel nama featurenya INTEL-VT untuk AMD namanya AMD-V. kliatannya untuk processor yang keluar belakangan, udah include feature ini. kalo processor kamu punya feature ini, ngak perlu khawatir tentang performancenya overhead jika menjalankan fullvirtualization. menjalankan guest OS (OS virtual) serasa menjalankan OS biasa. namun, sebaik2 performance guest OS tidak akan melebihi performance host OS.

Q: bagaimana untuk mengecek CPU saya sudah support virtualisasi?
A: jika menggunakan windows, bisa memakai tools secureable
jika menggunakan linux, bisa dengan command: cat /proc/cpuinfo, trus lihat feature CPU yang ada disana.

Q: maksudnya Paravirtualization?
A: ini artinya virtualization di level kernel OS, jadi ngak bikin emulasi hardware, mulainya dari kernel.
kernel itu kan modal awal dan utama untuk nge-nyalain OS toh?
nah, kernel ini di modifikasi sehingga bisa bikin instance kernel lagi agar dapat dipake oleh OS yang baru.
advantages: cepat, overheadnya sangat sedikit sekali. iyalah, kan ngak perlu emulasi hardware.
cocok untuk orang2 yang latihan OS, bisa login as root, ngak perlu di omeli admin.
cocok untuk security & cocok untuk production server. kalo di hack, host OSnya masih aman.
tinggal bikin OS baru lagi toh? ngak sampe 5 menit dah jadi.
disadvantages: karena mulainya dari kernel, tentu saja guest OS nya pasti sama dengan host OS.
kan ngak mungkin kernel unix, trus diatasnya ditanam windows.
contoh software: linux XEN, linux VPS, linux KVM, solaris zones

Q: loh trus kalo ngejalanin aplikasi windows di atas linux gimana?
A: itu namanya emulator, bukan virtualization.
contoh softwarenya: wine, crossover, dll

Q: satu lagi, dalam pembahasan virtualisasi, saya sering dengar hipervisor. mereka itu apa ya?
A: hypervisor secara singkat adalah software untuk membuat virtualisasi, software untuk membuat guest OS.
contohnya: vmware, virtualbox, xen, citrix, dll
kalo di host kamu ngak punya software diatas, mana bisa buat OS dalam OS?

Q: hypervisor ada beberapa macam?
A: ada dua type:
– tipe 1, disebut juga native / baremetal
– tipe 2, disebut juga hosted hypervisor.

Q: maksudnya native hypervisor?
A: kalo yang ini, hypervisornya diinstal seperti OS. bentuknya kayak distro linux/windows gitu, dibooting langsung dari CD. tapi ingat, yang diinstall adalah OS khusus untuk virtualisasi. bukan OS semacam linux/windows/solaris. ukurannya kecil banget. lama instalasi juga ngak nyampe 5 menit. cepet banget. untuk meremote hypersivor ini, ada juga software khususnya.
advantages: karena merupakan OS khusus untuk virtualisasi, maka OS virtual yang dibuat diatasnya mempunya performance yang lebih baik.
cocok sekali untuk production server, karena komputer bener2 didedikasikan untuk virtualization.
contoh software: Sun’s Logical Domain, vmware ESX, Oracle VM, microsoft Hyper-V, parallel servers. proxmox.

Q: maksudnya hosted hypervisor?
A: kalo ini, hypervisornya diinstall seperti layaknya software komputer biasa. jadi komputer kamu perlu diinstal OS dulu (linux/windows/solaris), setelah itu baru diinstall hypervisornya.
disadvantages:
– kalo ada problem di host OS (mis: kena virus), guest OS pun jadi kacau.
contoh software: solaris zones, vmware workstation, vmware server, virtual box, QEMU, virtual PC.

Q: maksudnya VPS (virtual private server)?
A: ya ini bahasa marketing dari virtual host diatas. jadi kalo sewa VPS, berarti kita akan mendapat sebuah komputer komplit yang punya RAM, CPU, harddisk, dan network card.

thank you for reading…

URL pendek: http://bit.ly/mQoeRs