Click here to load reader
Upload
herwin-anggeriana
View
178
Download
3
Embed Size (px)
DESCRIPTION
Author Doc : Herwin AnggerianaArchitecture of Android
Citation preview
2 | P a g e
Daftar Isi
Arsitektur .………………………………………………………………………………………………………………… 3
Target Arsitektur ………………………………………………………………………………………………………… 5
Modifikasi Kernel ………………………………………………………………………………………………………… 6
Mesin Virtual Android …………………………………………………………………………………………………. 6
File System Android …………………………………………………………………………………………………….. 7
Power Manajemen Android …………………………………………………………………………………….…. 10
Reference
3 | P a g e
Arsitektur
Android adalah sistem operasi berbasis open source yang dikembangkan oleh google
dengan dasar pengembangan dari Linux pada kernel 2.6.
Linux kernel terpilih menjadi dasar dari pengembangan sistem operasi karena beberapa
alasan yaitu :
Kelengkapan library driver
Skema pemodelan library driver yang berbentuk class – class
Open Source sehingga mudah untuk dimodifikasi
Dukungan solusi terhadap setiap masalah pengembangan dari komunitas yang
luas tersebar di internet
Linux kernel bersifat symmetric multiprogramming, multitasking dan realtime
4 | P a g e
Gambar 1 -> Arsitektur Linux kernel 2.6 yang menjadi dasar dari pengembangan sistem
operasi Android.
Kita dapat melihat pada gambar 1, dimana pada Linux kernel 2.6 terdapat beberapa
kelengkapan driver yang memang memenuhi visi utama dari sistem operasi android.
Visi utama dari sistem operasi android adalah sebagai sistem operasi utama
untuk perangkat mobile. Untuk memposisikan dirinya ( android ) sebagai sistem operasi
utama mobile, maka beberapa features / point harus terpenuhi : kamera, Bluetooth,
power manajemen, USB untuk sinkronisasi, keypad, WiFi, layar mini untuk handhone /
perangkat mobile, fungsi telepon, fungsi networking dan browser.
Pada gambar 1, secara arsitektur Linux kernel 2.6 pengembangan android lebih difokus
kepada runtime library-nya dan pengembangan J2ME ( Java 2 Micro Edition ).
Team developer android mengembangkan runtime library linux kernel 2.6
sehingga menghasilkan library baru dengan platform C library. Mereka juga
mengembangkan J2ME atau Java Virtual Mechine milik linux kernel 2.6 menjadi virtual
mesin baru yang disebut dengan Dalvik Virtual Mechine.
Untuk memberikan kemampuan pengembangan android di masa depan dan
kemampuan android dalam mensupport setiap aplikasi mobile, team developer android
menyediakan beberapa system library yang nantinya akan menjadi framework bagi
aplikasi tersebut. System librarynya sendiri dapat dilihat pada gambar 1 pada kolom
application framework.
Atas beberapa perbedaan dan persamaan arsitektur seperti ini, maka team developer
android respect terhadap Linux.
5 | P a g e
Target Arsitektur
Seperti yang kita ketahui bahwa Linux kernel mendukung untuk di-implementasikan
dalam berbagai arsitektur. Untuk saat ini sistem operasi Android lebih difokuskan
kepada x86 dan ARM arsitektur.
Pengembangan android pada arsitektur x86 pada dasarnya mengejar target sebagai
sistem operasi yang dapat berjalan pada arsitektur MID ( Mobile Internet Devices )
dimana ARM merupakan platform utama dari microprocessor.
Industri Smartphone sendiri terpecah-pecah dan tidak memiliki pionir dalam
penguasaan market mobile. Katakan beberapa vendor seperti Nokia, Research in
Motion ( RIM ), HTC, Apple, dan Samsung walaupun mereka kategori vendor besar
dalam hal penjualan market smartphone tetapi tidak ada satupun dari mereka yang
menjadi pionir dalam penciptaan arsitektur baru bagi industry mobile / industry
smartphone, semuanya tetap mengacu kepada satu arsitektur yaitu platform ARM.
Tahun 1996, hampir 98% arsitektur pada perangkat mobile / perangkat
smartphone menggunakan ARM microprocessor, focus utama dan alasan utama para
vendor mobile / smartphone menggunakan ARM platform karena iritnya konsumsi
power ( batterai ) berbeda dengan sistem arsitektur desktop komputer yang beroperasi
tidak tergantung pada batterai.
Memory yang di-embeded atau diimplementasikan dalam arsitektur ARM
microprocessor terfokus pada ukuran daya simpannya, biaya produksinya dan konsumsi
listriknya. ARM microprocessor sendiri terfokus pada instruksi 16 bit yang diistilahkan
dengan thumb yang akhirnya dalam pengembangan terakhir fungsi thumb ini menjadi
landasan bagi instruksi 32 bit pada ARM microprocessor.
Kesimpulan :
ARM microprocessor berhasil menjadi pemimpin / pionir bagi industry mobile dengan
focus kemampuannya mengkombinasikan menjalankan kode-kode program berukuran
kecil dengan irit batterai. Dengan alasan utama inilah Android menargetkan
6 | P a g e
arsitekturnya pada ARM. Dimana dasar pengembangan android sendiri adalah Linux
kernel yang berjalan pada arsitektur x86.
Modifikasi Kernel
Dasar pengembangan android adalah linux kernel, tetapi tidak berarti Android adalah
linux kernel. Hal ini dikarenakan perubahan significan pada linux kernel 2.6 dalam
pengembangan android. Modifikasi tersebut terjadi pada : alarm driver, ashmem (
android shared memory driver ), binder driver ( Inter-Process communication interface
), power manajemen, low memory killer, kernel debugger, dan logger.
Dalam menghargai atas hak cipta linux kernel yang berbasis GNU, team developer
android memberikan hasil pengembangan tersebut sebagai kontribusi terhadap
komunitas open source ( GNU ).
Modifikasi yang terjadi adalah :
Alarm driver : menyediakan fungsi timer untuk mengaktifkan kembali device dari
posisi sleep.
Ashmem : pengaturan dan menjadi jembatan bagi aplikasi untuk mengakses
memory yang akan digunakan bersama-sama dengan aplikasi lain, termasuk
penggunaan level process kernel.
Binder driver : memfasilitasi komunikasi data yang digunakan oleh berbagai
aplikasi secara bersama-sama, dan penggunaan memory secara bersama-sama.
Fungsi ini di-implementasikan agar IPC service tidak perlu terlalu sibuk dalam
melayani berbagai thread yang terjadi, memonitor thread, dan mengatur
berbagai thread yang ada. Binder juga bertanggung jawab terhadapa process
synchronization ke process.
Power manajemen : tidak banyak perubahan seperti milik linux power
management ( Linux PM ) hanya menambahkan fungsi untuk mengelola
penggunaan power dan menyimpannya.
Mesin Virtual Android
Banyak vendor mobile / smartphone seperti nokia, Samsung, dan Motorola
mengoptimasikan device mobile mereka dengan java virtual mechine ( JVM ) yang
7 | P a g e
dikenal dengan J2ME ( Java 2 Micro Edition ). Sedangkan pada Android, mereka
menciptakan sendiri mesin virtual android yaitu Dalvik Virtual Machine.
Pengembangan Dalvik Virtual Machine itu sendiri berdasarkan platform standar java,
code – code aplikasinya dibuat dari java dan di compile menjadi file – file java class.
File – file java class ini sendiri dapat berjalan pada environment J2ME virtual machine,
dan kumpulan code – code hasil kompilenya disebut dengan dex file.
Dex file inilah yang dapat berjalan pada Dalvik Virtual Machine. Suatu aplikasi
penunjang yaitu dex, akan melakukan konversi dari dex file – file dan repack kembali
beberapa file java class ( .jar ) menjadi satu file dex untuk penghematan memory.
Dengan optimasi virtual machine ini, memberikan beberapa benefit atau keuntungan
bagi perangkat mobile yaitu :
Slow CPU
Penggunaan Memory lebih sedikit
Tidak ada kemampuan sistem operasi untuk melakukan teknik swap space
Irit baterai
File System Android
Android menggunakan file sistem yang disebut dengan YAFFS file system. Linux pertama
kali menggunakan NAND sebagai file system ini untuk flash file system. Bagi perangkat
mobile / smartphone penggunaan harddisk terlalu besar daya tampungnya, dan terlalu
berat dan rentan untuk di-implementasi sehingga untuk penyimpanan file – file system
bagi perangkat mobile / smartphone ditentukan yang flash memory yang memiliki
kemampuan cepat diakses, dan tahan terhadap tekanan kinetic.
Ada dua teknologi dalam industry teknologi flash memory yang dapat digunakan
yaitu : NOR dan NAND. NOR memiliki kemampuan low density, lambat dalam penulisan
data, tetapi cepat dalam pengaksesan.
Sedangkan NAND memiliki kemampuan biaya murah dalam produksi, high density,
lambat dalam pengaksesan dan cepat dalam penulisan
8 | P a g e
Keterbatasan yang paling penting dalam memory NAND adalah block erasure, dan
memory wear. Block erasure adalah ketika terjadi penghapusan memory, seluruh block
data akan dihapus.
Jika dilihat dari teknik pemograman, NAND secara random dapat mengakses page tetapi
tidak memiliki kemampuan teknik random terhadap situasi tertentu seperti access
rewrite atau penghapusan selama operasi normal. Yang hasilnya segmentasi memory
jadi jorok.
Memory wear adalah keterbatasan sector dalam penghapusan memory, yang akhirnya
memberikan dampak terburuk terhadap umur kelangsungan data dalam penyimpanan.
YAFFS ( Yet Another Flash File System ) dibuat oleh Toby Churchill Ltd (TCL) sebagai file
system yang dapat diandalkan dengan kemampuan cepat dalam melakukan booting
terhadap perangkat flash system. YAFFS mencoba melakukan kombinasi fungsi terbaik
dari dua teknologi flash system yang ada, seperti meng-implementasikan fungsi JFFS dari
teknologi NOR flash system ke dalam environment NAND.
Seperti yang telah kita ketahui, NOR dan NAND memiliki perbedaan cukup besar dari
aspek arsitektur, seperti waktu penghapus di memory milik NOR lebih menyita waktu
lebih lama dari NAND, fungsi sampah ( garbage collection ) milik NOR tidak dapat
diimplementasikan dalam environment NAND.
YAFFS adalah flash system yang pertama dibuat dengan dasar arstektur dari NAND flash
system. Arsitektur NAND flash system bersifat portable dan sudah di-implementasikan
oleh Linux, WinCe, pSOS, ThreadX dan beberapa sistem operasi lainnya.
Perangkat mobile / perangkat smartphone yang sistem operasinya berbasis YAFFS
biasanya memiliki tingkat toleransi yang cukup tinggi terhadap error pada file
systemnya, hal ini karena YAFFS memiliki fungsi bad block management dan error
correction untuk menjaga integritas data.
9 | P a g e
Gambar 2 -> Struktur dari YAFFS
YAFFS memiliki feature – feature yaitu :
Journaling : merupakan struktur file system bagi log file, memiliki kemampuan
untuk kesigap ketika terjadi kegagalan dalam power ( listrik baterai ).
Garbage collection : memiliki kemampuan optimal yang cukup tinggi. Ketika
YAFFS mendeteksi adanya bad block memory, YAFFS akan mengirimkan ke block
memory lain, dan menandakan sebagai block sampah. Sehingga processor akan
menghapusnya karena sebagai block sampah.
Lower memory requirement : merupakan footprint dari memory. Sama seperti
journaling, fungsi ini dapat dikembangkan ukurannya sesuai keinginan.
Flexibility : menggunakan definisi umum yang terdapat pada NAND flash system.
Portability : file – file dibuat dalam bentuk modular sehingga bersifat portable
untuk diimplementasikan ke dalam berbagai sistem operasi.
Robustness : penanganan bad block, dan error collection
POSIX support
10 | P a g e
Power Manajemen Android
Sistem operasi terkadang menggunakan power secara berlebihan karena adanya
berbagai pemrosesan dari berbagai perangkat. Oleh karena itu diperlukan suatu system
yang dapat menanganinya. System tersebut dikenal dengan power manajemen.
Power manajemen android cukup sederhana seperti yang terdapat pada tabel 1.
Flag value CPU Screen Keyboard
Partial wake lock On Off Off
Screen dim wake lock On Dim Off
Screen bright wake lock On Bright Off
Full wake lock On Bright Bright
11 | P a g e
Reference
[1] Materi Training Android di Singapore Nov 2009
[2] Dalvik VM Internals, Google I/O Developer Conference 2008
[3] YAFFS di Wikipedia http://e.wikipedia.org/wiki/YAFFS
[4] Dalvik overview http://dalvrikvm.com
[5] YAFFS structure http://www.yaffs.net/yaffs-overview