Selasa, 02 Desember 2008

tentang binary compatibility, tukang porting

Q: package under linux bisa dijalanin di solaris nggak?? Kayak BSD kan da linux compabilitynya. Kalo opensolaris ada ga'mas??

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

so, saran saya jangan terlalu percaya sama feature ini deh.
mending pake native binarynya, ato recompile source codenya.
kalo mo coba2 c terserah. softwarenya bisa pake: wine (linux), lxrun (solaris).

jika perusahaan memang concern dengen stabilitas, pada males pake feature ini.
ini adalah feature dari merketing/hobbyist supaya banyak orang yang pake OSnya.
biasa..., namanya juga marketing. dan ini bukan hal yang jelek kok.

logikanya gini,
inti dari OS kan kernel, trus aplikasi yang dibuat diatasnya akan berbasiskan kernel tersebut kan?
karena aplikasi tersebut akan selalu berhubungan dengen kernel, supaya bisa mengakses hardware toh?

kernel HP-UX, AIX, SCO, SOLARIS, LINUX, WINDOWS, MAC kan beda. maka aplikasi nya bakal ngak kompatibel satu sama lainnya. jelas kan?
contoh: kamu buat program dengen 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 buat beda?:
- cara mengakses harddisk
- menampilkan character di display
- system calls
- 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 di compile di solaris.
makanya si tukang porting perlu ngutak-ngatik source code juga biar bisa di compile.

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

Tidak ada komentar: