Jumat, 09 September 2011

x32-ABI: Aplikasi Linux 32-bit Lebih Cepat di 64-bit

Menggunakan antarmuka binari x32-ABI untuk Linux yang baru, sebuah aplikasi 32-bit bisa dijalankan lebih cepat di perangkat berarsitektur 64-bit. Pengembang yang mengkompilasi program aplikasinya menggunakan ABI (Application Binary Interface) dijanjikan adanya peningkatan kecepatan sampai dengan 30 persen.

Seperti diketahui, sistem operasi Linux 64-bit umumnya bisa menjalankan aplikasi-aplikasi yang dikompail untuk 32-bit (dan tidak sebaliknya). Dilingkungan arsitektur x86, ada dua jenis ABI yang kerjanya sebagai antarmuka untuk mengakses sistem, yaitu i386 (32-bit) dan x86_64 (64-bit). Program 64-bit bisa jalan cepat karena memanfaatkan alamat memori (address) yang lebih lebar, namun juga lantaran bisa mengakses register-register yang jumlahnya lebih banyak. Hal ini juga adakalanya kurang bermanfaat atau jadi mubazir, disebabkan karena biasanya "integers and pointers" yang lebarnya 64 bit tidak efisien memproduksi kode pemrograman yang lebih besar.

Sebagai kompromis dikembangkan x32-ABI yang memiliki kekompakan kode pemrograman 32-bit, namun bisa mengakses jumlah register yang lebih banyak yang telah tersedia di prosesor arsitektur 64-bit. Solusi ini diakui memiliki kekurangan dalam hal kompatibilitas terhadap versi ABI regular 32-bit maupun dengan yang 64-bit, disamping juga keterbatasan pada jumlah memori yang bisa diaksesnya yaitu tidak lebih besar dari 4 GB. Namun untuk aplikasi-aplikasi 32-bit yang umumnya memerlukan tidak melampai keterbatasan tersebut, namun ingin ngacir lebih cepat, maka x32-ABI ini merupakan jalan keluar yang prima.

Untuk itu, aplikasi x32 harus dikompilasi ulang agar bisa jalan lebih cepat di x64 dan tidak perlu melakukan perubahan di kode sumbernya apabila pemrogramannya telah portable. Kecuali itu, proyek x32-ABI telah mengembangkan komponen yang ditambahkan di perkakasan kompiler (Compilertools) seperti GCC, GDB, Binutils dan glibc. Patches di kernel Linux untuk mengimplementasikan ABI baru ini, juga disebutkan telah tersedia. Walaupun belum resmi disertakan dalam perubahan kernel Linux, namun diskusi menuju kesitu sedang berlangsung secara positif.

ABI jenis baru x32-ABI untuk Linux ini dikembangkan oleh pakar-pakar Linux H.J. Lu dan H. Peter Anvin yang tidak asing lagi dilingkungan pengembangan sistem operasi Linux.

Hasil Benchmark yang diragakan di situs x32-ABI diakui masih belum sempurna karena menurut pengembangnya perkakas x32-Compiler masih perlu dioptimalkan. Kendati demikian, data yang dipamerkan sudah jelas menunjukkan peningkatan kecepatan yang dihasilkan berkat kompilasi menggunakan x32-ABI. Barang siapa yang ingin langsung mencoba kebolehan x32-ABI, silakan menyimak panduan menggunakan distro Linux Fedora yang tersedia di situs proyek ini.