BAB 2 LANDASAN TEORI 2.1 Pengertian Smartphone - Pembuatan dan Pengembangan Fitur Kernel Android Pada Sony Xperia Ray

BAB 2 LANDASAN TEORI

  2.1 Pengertian Smartphone

  Telepon pintar (smartphone) adalah yang mempunyai kemampuan tingkat tinggi, kadang-kadang dengan fungsi yang menyerupai Belum ada standar pabrik yang menentukan arti telepon pintar. (Elcom, 2011)

  Bagi beberapa orang, telepon pintar merupakan telepon yang bekerja menggunakan seluruh sistem operasi yang menyediakan hubungan standar dan mendasar bagi pengembangBagi yang lainnya, telepon cerdas hanyalah merupakan sebuah telepon yang menyajikan fitur canggih sepe (e-book) atau terdapat papan ketik (baik sebagaimana jadi maupun dihubung keluar) dan penyambung Dengan kata lain, telepon cerdas merupakan komputer kecil yang mempunyai kemampuan sebuah telepon.

  2.2 Pengertian Sistem Operasi

  Sistem operasi adalah seperangkat program yang mengelola sumber daya atau hardware, dan menyediakan layanan umum untuk dalam sistem komputer. Tanpa sistem operasi, pengguna tidak dapat menjalankan program aplikasi pada komputer mereka, kecuali prograahana Komputer, 2011) Sistem operasi mempunyai penjadwalan yang sistematis mencakup perhitungan penggunaan memori, pemrosesan data, penyimpanan data, dan sumber daya lainnya. Untuk fungsi-fungsi perangkat keras seperti sebagai masukan dan keluaran dan sistem operasi bertindak sebagai perantara antara program aplikasi dan perangkat keras komputer, meskipun kode aplikasi biasanya dieksekusi langsung oleh perangkat keras. Sistem operasi dapat ditemukan pada hampir semua perangkat yang berisi komputer sepe

  Contoh sistem operasi modern adalah

2.3 Pengertian Sistem Operasi Android

  Sistem operasi Android sendiri merupakan sebuah sistem operasi open source yang dikembangkan dan diluncurkan oleh Google inc, yang dikhususkan untuk diaplikasikan pada teknologi smartphone. Akan tetapi dengan perannya sebagai sebuah open source maka Android sendiri telah banyak berkembang pesat hingga merambah ke penggunaan pada sebuah komputer.

  Sistem Android adalah sebuah sistem operasi berbasis linux yang ditulis menggunakan bahasa pemrograman java. Sehingga dapat dikatakan bahwa komponen dasar penyusun sistem android tidak jauh berbeda dengan komponen dasar penyusun sistem operasi linux. (Nazruddin Safaat, 2011)

  Antarmuka pengguna pada Android didasarkan pada menggunakan masukan sentuh yang serupa dengan tindakan di dunia nyata, misalnya menggesek (swiping), mengetuk (tapping), dan mencubit (pinching), untuk memanipulasi obyek di layar. Masukan pengguna direspon dengan cepat dan juga tersedia antarmuka sentuh layaknya permukaan air, seringkali menggunakan kemampuan getaran perangkat untuk memberikan pada pengguna.

  digunakan oleh beberapa aplikasi untuk merespon tindakan pengguna, misalnya untuk menyesuaikan posisi layar dari potret ke lanskap, tergantung pada bagaimana perangkat diposisikan, atau memungkinkan pengguna untuk mengarahkan kendaraan saat bermain balapan dengan memutar perangkat sebagai simulasi kendali setir.

  Ketika dihidupkan, perangkat Android akan boot pada layar depan (homescreen), yakni navigasi utama dan pusat informasi pada perangkat, serupa dengaLayar depan Android biasanya terdiri dari ikon ikon aplikasi berfungsi untuk menjalankan aplikasi terkait, sedangkan widget menampilkan konten secara langsung dan terbarui otomatis, misalnya prakiraan cuaca, kotak masuk pengguna, atau menampilkan kutipan berita secara langsung dari layar depan. Layar depan bisa terdiri dari beberapa halaman, pengguna dapat menggeser bolak balik antara satu halaman ke halaman lainnya, yang memungkinkan pengguna Android untuk mengatur tampilan perangkat sesuai dengan selera mereka.

  Beberapa aplikasi pihak ketiga yang tersedia dan di toko aplikasi lainnya secara ekstensif mampu mengatur kembali tema layar depan Android, dan bahkan bisa meniru tampilan sistem operasi lain, misalnya Kebanyakan produsen telepon seluler dan operator nirkabel menyesuaikan tampilan perangkat Android buatan mereka untuk membedakannya dari pesaing mereka.

  Di bagian atas layar terdapat status bar, yang menampilkan informasi tentang perangkat dan konektivitasnya. Status bar ini bis a “ditarik” ke bawah untuk membuka layar notifikasi yang menampilkan informasi penting atau pembaruan aplikasi, misalnya surel diterima atau SMS masuk, dengan cara tidak mengganggu kegiatan pengguna pada perangkat. Pada versi awal Android, layar notifikasi ini bisa digunakan untuk membuka aplikasi yang relevan, namun setelah diperbarui, fungsi ini semakin disempurnakan, misalnya kemampuan untuk memanggil kembali nomor telepon dari notifikasi panggilan tak terjawab tanpa harus membuka aplikasi utama. Notifikasi ini akan tetap ada sampai pengguna melihatnya, atau dihapus dan di nonaktifkan oleh pengguna.

Gambar 2.1 Arsitektur Sistem Android

2.4 Sejarah Android

  Android, Inc. didirikan pada bulan Oktober 2003 oleh (pendiri Wildfire Communications, Inc.), Nick Sears (mantan VPuntuk mengembangkan "perangkat seluler pintar yang lebih sadar akan lokasi dan preferensi penggunanya". (Elcom, 2010)

  Tujuan awal pengembangan Android adalah untuk mengembangkan sebuah sistem operasi canggih yang diperuntukkan bag namun kemudian disadari bahwa pasar untuk perangkat tersebut tidak cukup besar, dan pengembangan Android lalu dialihkan bagi pasar telepon pintar (smartphone) untuk menyaingApple belum dirilis pada saat itu).

  Meskipun para pengembang Android adalah pakar-pakar teknologi yang berpengalaman, Android Inc. dioperasikan secara diam-diam, hanya diungkapkan bahwa para pengembang sedang menciptakan sebuah perangkat lunak yang diperuntukkan bagi telepon seluler. Masih pada tahun yang sama, Rubin kehabisan uang. seorang teman dekat Rubin, meminjaminya $10.000 tunai dan menolak tawaran saham di perusahaan.

  mengakuisisi Android Inc. pada tanggal 17 Agustus 2005, menjadikannya sebagai anak perusahaan yang sepenuhnya dimiliki oleh Google.

  Pendiri Android Inc. seperti Rubin, Miner dan White tetap bekerja di perusahaan setelah diakuisisi oleh Google. Setelah itu, tidak banyak yang diketahui tentang perkembangan Android Inc., namun banyak anggapan yang menyatakan bahwa Google berencana untuk memasuki pasar telepon seluler dengan tindakannya ini.

  Di Google, tim yang dipimpin oleh Rubin mulai mengembangkan platform perangkat seluler dengan menggunakan Google memasarkan platform tersebut kepada produsen perangkat seluler dan dengan janji bahwa mereka menyediakan sistem yang fleksibel dan bisa diperbarui. Google telah memilih beberapa mitra perusahaan perangkat lunak dan perangkat keras, serta mengisyaratkan kepada operator seluler bahwa kerjasama ini terbuka bagi siapapun yang ingin berpartisi.

  Spekulasi tentang niat Google untuk memasuki pasar komunikasi seluler terus berkembang hingga bulan Desember 2006 melaporkan bahwa Google sedang bekerja keras untuk menyertakan aplikasi dan di perangkat seluler. Berbagai media cetak dan media daring mengabarkan bahwa Google sedang mengembangkan perangkat seluler dengan merek Google.

  Beberapa di antaranya berspekulasi bahwa Google telah menentukan spesifikasi teknisnya, termasuk produsen telepon seluler dan operator jaringan.

  Pada bulan Desember 2melaporkan bahwa Google telah mengajukan beberapa aplikasi paten di bidang telepon seluler.

  Pada tanggal 5 November (OHA) didirikan. OHA adalah operator nirkabel sepedan bagi perangkat seluler. Saat itu, Android diresmikan sebagai produk pertamanya; sebuah versi 2.6. Telepon seluler komersial pertama yang menggunakan sistem operasi Android adayang diluncurkan pada 22 Oktober 2008.

  Pada tahun 2010, Google merilis seperangkat telepon pintar dan tablet dengan sistem operasi Android yang diproduksi oleh mitra produsen telepon seluler seperti HTCSeri ini telah diperbarui dengan perangkat yang lebih baru, misalnya telepon pintaryang diproduksi oleh LG dan Samsung.

  Pada 13 Maret 2013,mengumumkan dalam postingan blognya bahwa Andy Rubin telah pindah dari divisi Android untuk mengerjakan proyek- proyek baru di Google. Ia digantikan oleh

  Sejak tahun 2008, Android secara bertahap telah melakukan untuk meningkatkan kinerja sistem operasi, menambahkan fitur baru, dan memperbaikiyang terdapat pada versi sebelumnya. Setiap versi utama yang dirilis dinamakan secara alfabetis berdasarkan nama-nama makanan pencuci mulut atau cemilan bergula; misalnya, versi 1.5 bernama Cupcake, yang kemudian diikuti oleh versi 1.6 Donut. Versi terbaru adalah 4.4 KitKat, yang dirilis pada 31 Oktober 2013. (Nazruddin Safaat, 2011)

2.4.1 Versi Android

  Android memiliki beberapa versi dan menggunakan nama camilan sebagi inisialnya sejak dirilis pertama kali pada Oktober 2008, yaitu:

  1. Android versi 1.1 Dirilis bersama perangkat mobile Google Nexus yang telah dilengkapi dengn aplikasi, jam,alarm, voice search (pencarian suara), pengiriman pesan dengan Gmail, dan pemberitahuan email.

  2. Android versi 1.5 (Cupcake) Dirilis pada pertengahan Mei 2009, yang berisi pembaruan terhadap versi sebelumnya dan penambahan fitur seperti merekam dan menonton video dari modus kamera, mengupload video secara langsung ke youtube, dukungan Bluetooth A2DP, animasi layar dan keyboard pada layar yang dapat disesuaikan dengan sistem.

  3. Android versi 1.6 (Donut) Donut (versi 1.6) dirilis pada September dengan menampilkan proses pencarian yang lebih baik dibanding sebelumnya, penggunaan baterei indikator dan kontrol applet VPN.

  4. Android versi 2.0/2.1 (Eclair) Dirilis pada 3 Desember 2009, perubahan yang dilakukan adalah pengoptimalan hardware, peningkatan Google Maps 3.1.2, perubahan UI(User Interface) dengan browser baru dan dukungan HTML5, daftar kontak yang baru, dukungan flash untuk kamera 3,2 MP, digital Zoom, dan

  Bluetooth 2.1.

  5. Android versi 2.2 (Froyo : Frozen Yogurt) Dirilis Mei 2010, perubahan yang dilkukn sangat pesat seperti pengembangan Dalvik Virtual Machine dioptimalkan untuk perangkat mobile, penambahan SQLite sebagai media penyimpanan data, dan penyempurnaan grafik 2D maupun 3D berdasarkan libraries OpenGL.

  6. Android versi 2.3 (Gingerbred) Diluncurkan pada Desember 2010 merupakan pengembangan lebih lanjut dari versi sebelumnya dengan berbagai revisi SIP-based VoIP, Near Field

  (NFC), Gyroscope dan sensor, serta Multiple cameras

  Communications effect.

  7. Android versi 3.0 (Honeycomb) dirilis februari 2011 sebagai ndroid 3.0 revisi 1 serta android versi 3.0 revision 2 telh dirilis pada juli 2011, namun versi ini hanya diluncurkan dan dikhususkan bagi perangkat tablet.

  8. Android versi 4.0 (Ice Cream Sandwich) dirilis pada November 2011 , pada versi ini terdapat berbagai kemjuan dan pengembangan yang lebih signifikan diantaranya face unlock, kecepatan pembacaan data internal serta integrasi komponen smartphone yang jauh lebih baik.

  9. Android versi 4.1 (Jelly Bean), dirilis pada 9 Juli 2012 dengan penambahan dan perbaikan terhadap bug yang terdapat pada versi 4.0

  10. Android versi 4.2 (Jelly Bean) Merupakan lanjutan pengembangan dari versi 4.1 11. Android versi 4.3 (Jelly Bean)

  Dirilis pada 27 Juli 2013, merupakan versi lanjutan dari 4.2 12. Android versi 4.3 (Kit Kat) Dirilis pada 31 Oktober 2013.

2.5 Linux Linux adalah nama yang diberikan kepada sistem operasi komputer bertipe Unix.

  Linux merupakan salah satu contoh hasil pengembangautama. Seperti perangkat lunak bebas dan sumber terbuka lainnya pada umumnya, Linux dapat dimodifikasi, digunakan dan didistribusikan kembali secara bebas oleh siapa saja. (It Works, 2011)

  Nama "Linux" berasal dari nama pembuatnya, yang diperkenalkan tahun 1991 umumnya berasal dari GNU/Linux.

  Linux telah lama dikenal untuk penggunaannya Linux digunakan sebagai sistem operasi di berbagai macam jeseperti Para pengamat teknologi informatika beranggapan kesuksesan Linux dikarenakan Linux tidak bergantung kepada vendor (vendor independence), biaya operasional yang rendah, dan kompatibilitas yang tinggi dibandingkan versi UNIX serta faktor keamanan dan kestabilannya yang tinggi dibandingkan dengan sistem operasi lainnya seperti Ciri-ciri ini juga menjadi bukti atas keunggulan model pengembangan perangkat lunak sumber terbuka (opensource software).

  Antarmuka pengguna

2.5.1 Linux dapat dikendalikan oleh satu atau lebih antarmuka baris perintah (command

  line interface atau CLI) berbasis (graphical user interface atau GUI, yang umumnya merupakan konfigurasi bawaan untuk versi desktop).

  Pada komputermerupakan antarmuka pengguna yang paling populer, walaupun terdapat sejumlah varian antarmuka pengguna.

  Antarmuka pengguna yang paling populer berjalan di ayang memperolehkan sebuah aplikasi grafis berjalan di atas satu mesin tetapi ditampilkan dan dikontrol di mesin yang lain.

  GUI yang lain memiliki Manajer jendela menyediakan kontrol untuk penempatan dan penampilan dari jendela-jendela aplikasi individual serta interaksi dengan sistem jendela X.

  Sebuah sistem Linux umumnya menyediakan sebuah yang merupakan cara tradisional untuk berinteraksi dengan sebuah sistem Unix. Sebuah mungkin hanya memiliki CLI sebagai satu-satunya antarmuka. Sebuah sistem yang tidak memiliki

  Kebanyakan komponen tingkat rendah Linux, termasuk GNU menggunakan CLI secara ekslusif. CLI cocok untuk digunakan pada lingkungan otomasi tugas-tugas yang repetitif atau tertunda, dan menyediakan grafis sering digunakan untuk mengakses CLI dari sebuah Linux desktop.

2.5.2 Pemrograman di Linux Sebagian besar distribusi Linux mendukung banyak bahasa pemrograman.

  Koleksi peralatan untuk membangun aplikasi dan program-program sistem operasi yang umum terdapat di dalam GCC menyediakan

  

  kompilator untuk Linux antara lain adalah dan IBM XL C/C++ Compiler.(Athailah, 2011)

  Kebanyakan distribusi juga memiliki dukungan ulainnya. Contoh bahasa pemrograman yang tidak umum tetapi tetap mendapat dukungan di Linux antara lain adalah dan peralatan pengembang jalan di Linux termasuk Sun Microsystems JVM Dua kerangka kerja utama untuk pengembangan aplikasi grafis di Linux adaProyek-proyek ini berbasiskan Keduanya mendukung beragam bahasa pemrograman. Untuk

  

  

2.5.3 Hak cipta dan merek dagang

  Linux kernel dan sebagian besar perangkat lunak GNU menggunakan (GPL) sebagai basis lisensinya. GPL mengharuskan siapapun yang mendistribusikan kernel linux harus membuat kode sumber (dan semua modifikasi atas itu) tersedia bagi pengguna dengan kriteria yang sama.(It Works, 2011)

  Tahun 1997, Linus Torvald menyatakan, “Menjadikan Linux berbasis GPL sungguh merupakan hal terbaik yang pernah saya lakukan.”. Komponen penting lain dalam sistem Linux diijinkan menggunakan lisensi selain dari GPL. Banyak pustaka menggunaka(LGPL), varian GPL yang lebih moderat, dan sis

  Linus Torvald telah menyatakan ke khayalak umum bahwa ia tidak akan memindahkan lisensi kernel Linux yang saat ini menggunakan GPL versi 2 ke GPL versi 3, yang dikembangkan pada pertengahan tahun 2007, dengan alasan beberapa ketentuan yang terdapat pada lisensi baru tersebut melarang penggunaan perangkat lunak da

  Penelitian yang dilakukan pada tahun 2001 terhadap perangkat lunak tersebut terdiri atas 30 juta baris kode.

  Dengan menggunakan algoritma model biaya konstruktif, penelitian itu memperkirakan bahwa distro tersebut membutuhkan waktu kira-kira delapan ribu tahun kerja untuk mengembangkannya. Menurut penelitian tersebut, jika semua elemen dari perangkat lunak tersebut dikembangkan dengan cara konvensional dalam artian sebagai perangkat lunak tertutup, pengembangan distro tersebut akan menelan biaya sebesar 1,08 miliar dolar (basis nilai tukar dolar tahun 2000) untuk dikembangkan di Amerika Serikat.

  Sebagian besar kode (71%) ditulis dengan menggunakan dan berbagai bahasa skrip lain. Lebih dari separuh dari seluruh kode dilisensikan di bawah naungan GPL. Kernel linux itu sendiri terdiri atas 2,4 juta baris kode, atau sekitar 8% dari total keseluruhan.

  Penelitian lainnya menghasilkan analisis yang sama terhadap distro Debian GNU/Linux versi 4.0. Distro tersebut terdiri atas lebih dari 283 juta baris kode, dan penelitian tersebut memperkirakan biaya pengembangan yang dibutuhkan sebesar 5,4 miliar euro jika dikembangkan sebagai perangkat linak tertutup.

  Di Amerika Serikat, Linux merupakan merek dagang (SN: 1916230) yang dimiliki oleh Linus Torvalds. Linux terdaftar sebagai "Program sistem operasi bagi penggunaan komputer dan operasi". Merek dagang ini didaftarkan setelah ada suatu kejadian di mana seorang pemalsu bernama William R Della Croce Jr mulai mengirim surat kepada para distributor Linux dan megklaim trademark Linux adalah hak miliknya serta meminta royalti sebanyak 10% dari mereka.

  Para distributor Linux mulai mendorong agar trademark yang asli diberikan kepada Linus Torvalds. Pemberian lisensi trademark Linux sekarang dibawah pengawasan Linux Mark Institute.

2.5.4 Distribusi Linux

  Terdapat banyak distribusi Linux (lebih dikenali sebagai distro) yang dibuat oleh individu, grup, atau lembaga lain. Masing-masing disertakan dengan program sistem dan program aplikasi tambahan, di samping menyertakan suatu program yang memasang keseluruhan sistem di komputer (installer program).

  Inti di setiap distribusi Linux adalah kernel, koleksi program dari proyek GNU (atau proyek lain), cangkang (shell), dan atur cara utilitas seperti pustaka (libraries), (editor). Kebanyakan sistem juga menyertakan atur cara dan utilitas yang bukan GNU. Bagaimanapun, utilitas tersebut dapat dipisahkan dan sistem berbasis UNIX masih tersedia. Beberapa contoh adalah atur cara dan utiliti dari dan sistem grafik-X (X-Window

  

System ). X menyediakan antarmuka grafis (GUI) yang umum untuk Linux. (Glyn

  Moody. 2002) Contoh-contoh distribusi Linux :

  

  

  

  

  

   

  

   

  

  

  

   

  

  

  

  

  

2.5.5 Konfigurasi dan instalasi

  Proses instalasi Linux yang sukar seringkali menjadi penghalang bagi pengguna baru, namun proses ini sekarang sudah menjadi lebih mudah. Dengan penerimaan Linux oleh beberapa pabrikabesar, komputer terpasang (built ) dengan distribusi Linux siap pakai saat ini banyak tersedia.

  up

  Selain itu, terdapat juga distribusi Linux yang dapat dijalankan (boot) secara langsung dari cakram optik tanpa perlu diinstalasi ke cakram keras (hard disk); hal ini dikenal dengan istilah dan Gentoo. Saat ini hampir semua distribusi Linux menyediakan versi Live CD untuk produknya. ISO

  image untuk cakram optik untuk distribusi Linux tersebut biasanya dapat diunduh

  dadibakar ke CD, dan selanjutnya dapat digunakan sebagai CD yang siap untuk proses boot. Bahkan ISO image untuk beberapa distro dapat langsung di jalankan tanpa perlu membakar kedalam CD/DVD.

  Instalasi Linux juga merupakan instalasi berupa suite, yaitu dimana penginstalasian tersebut secara otomatis menginstalasi program-program standar, seperti pemutan pengolah gambar.

  Konfigurasi setelan Linux dan aplikasi di atasnya banyak yang dilakukan

  /etc

  lewat berkas teks di . Pada perkembangan selanjutnya, utilitas seperti Linuxconf dan GNOME System Tools memudahkan pekerjaan ini lewat antarmuka grafik. Akan tetapi, baris perintah (command line) tetap merupakan cara yang paling umum digunakan.

2.5.6 GNU/Linux

  GNU adalah singkatan dari GNU's Not Unix. Disebabkan utiliti-utiliti dari proyek

  sistem operasi bebas GNU. Tanpa ini sistem Linux tidak akan menyerupai sistem Unix dalam perspektif penggunamemohon agar kombinasi sistem (proyek GNU dan kernel Linux), disebut sebagai "GNU/Linux".

  Pengguna distribusi Linux dari proyek lebih cenderung menggunakan nama tersebut. Kebanyakan pengguna lebih mudah menggunakan istilah "Linux".

2.6 Pengertian Kernel

  DaTugasnya melayani bermacam program aplikasi untuk mengakseecara aman. (S. Brahler, 2010)

  Karena akses terhadapterbatas, sedangkan ada lebih dari satu program yang harus dilayani dalam waktu yang bersamaan, maka kernel juga bertugas untuk mengatur kapan dan berapa lama suatu program dapat menggunakan satu bagian perangkat keras tersebut. Hal tersebut dinamakan sebaga

  Akses kepada perangkat keras secara langsung merupakan masalah yang kompleks, oleh karena itu kernel biasanya mengimplementasikan sekumpulan Abstraksi-abstraksi tersebut merupakan sebuah cara untuk menyembunyikan kompleksitas, dan memungkinkan akses kepada perangkat keras menjadi mudah dan seragam. Sehingga abstraksi pada akhirnya memudahkan pekerjaa

  Untuk menjalankan sebuah komputer kita tidak harus menggunakan kernel sistem operasi. Sebuah program dapat saja langsung diload dan dijalankan di atas mesin 'telanjang' komputer, yaitu bilamana pembuat program ingin melakukan pekerjaannya tanpa bantuan abstraksi perangkat keras atau bantuan sistem operasi.

  Teknik ini digunakan oleh komputer generasi awal, sehingga bila kita ingin berpindah dari satu program ke program lain, kita harus mereset dan meload kembali program-program tersebut.

  Sebuah kernel sistem operasi tidak harus ada dan dibutuhkan untuk menjalankan sebuah komputer. Program dapat langsung dijalankan secara langsung di dalam sebuah mesin (contohnya adalasehingga para pembuat program tersebut membuat program tanpa adanya dukungan dari sistem operasi atau hardware abstraction. Cara kerja seperti ini, adalah cara kerja yang digunakan pada zaman awal-awal dikembangkannya komputer (pada sekitar tahun 1950). Kerugian dari diterapkannya metode ini adalah pengguna harus melakukan reset ulang komputer tersebut dan memuatkan program lainnya untuk berpindah program, dari satu program ke program lainnya. Selanjutnya, para pembuat program tersebut membuat beberapa komponen program yang sengaja ditinggalkan di dalam komputer, seperti halnyaatau dimuat dari dalam R.

  Seiring dengan perkembangan zaman komputer yang mengalami akselerasi yang signifikan, metode ini selanjutnya membentuk apa yang disebut dengan kernel sistem operasi. Selanjutnya, para arsitek sistem operasi mengembangkan kernel sistem operasi yang pada akhirnya terbagi menjadi empat bagian yang secara desain berbeda, sebagai berikut:

  

Kernel monolitik . Kernel monolitik mengintegrasikan banyak fungsi di

  dalam kernel dan menyediaka

   . Mikrokernel menyediakan sedikit saja dari

  Mikrokernel

  dan menggunakan aplikasi yang berjalan di atasnya yang disebut dengan server untuk melakukan beberapa fungsionalitas lainnya.

   . Kernel hibrida adalah pendekatan desain microkernel yang

  Kernel hibrida

  dimodifikasi. Pada hybrid kernel, terdapat beberapa tambahan kode di dalam ruangan kernel untuk meningkatkan performanya.

   Exokernel . Exokernel menyediakan hardware abstraction secara minimal,

  sehingga program dapat mengakses hardware secara langsung. Dalam pendekatan desain exokernel, library yang dimiliki oleh sistem operasi dapat melakukan abstraksi yang mirip dengan abstraksi yang dilakukan dalam desain monolithic kernel.

2.7 Kernel pada Android

  Sistem Operasi Android mengunakan kernel linux versi 2.6.x pada versi Android 4.0(Ice Cream Sandwich) ke bawah dan menggunakan kernel linux versi 3.x.x pada versi Android 4.1 (Jelly Bean) ke atas. (Nazruddin Safaat, 2012)

  Arsitektur kernel Linux pada Android telah diubah oleh Google, berbeda dengan siklus pengembangan kernel Linux biasa. Secara standar, Android tidak memilikiasli ataupun dukungan set lengkap dari perpustakaan perpustakaan atau aplikasi Linux pada Android. Dukungan untuk aplikasi simpel C damisalnya pada port Android.

  Pada dasarnya kernel pada Android merupakan sebuah kernel monolitik yang didasarkan pada pengembangan kernel linux. Sehingga, seluruh proses manajemen sumber daya hardware pada sebuah smartphone Android merupakan tanggung jawab dari kernel itu sendiri.

  Konfigurasi-konfigurasi tambahan yang bertujuan mendukung kemampuan sebuah smartphone berbasis android ditambahkan secara langsung pada source kernel Android. Baik itu berupa manajemen I/O, governor CPU, driver perangkat tambahan, hingga proses penentuan clock CPU. Sehingga, source yang telah diubah inilah nantinya digunakan untuk pembuatan kernel yang dapat diaplikasikan pada smartphone Android.

2.8 Governor pada kernel Android

  Governor pada kernel android merupakan sebuah profil tentang bagaimana suatu CPU/processor pada smartphone Android bekerja. Governor akan menginstruksikan kepada processor apa yang harus dilakukan dengan tepat pada saat berbagai situasi. (Governor. 2011. xda-university.com/as-a-developer/adding- features-to-your-kernel)

  Pada kernel bawaan pabrikan sendiri hanya terdapat beberapa governor standar bawaan yang memiliki kemampuan terbatas menangani berbagai situasi smartphone. Sehingga, kinerja dari cpu smartphone itu sendiri menjadi tidak optimal. Untuk itulah diperlukan governor tambahan yang umumnya di buat oleh pihak ketiga yang memiliki kinerja yang lebih baik daripada governor standar pabrikan tersebut.

  Berikut ini adalah beberapa governor yang ada saat ini : 1.

  Ondemand Governor bawaan yang hampir ada pada setiap kernel bawaan.. Tujuan utama dari governor Ondemand adalah untuk mengubah keadaan cpu ke frekuensi maksimal secara langsung setelah terdekteksi aktivitas sistem.. Pada Ondemand CPU langsung melakukan lompatan ke frekuensi tertinggi ketika memiliki aktivitas yang sangat sibuk dan menurunkan ke frekueni terendah ketika dalam keadaan idle. Meskipun banyak dari kita yang akan berpikir bawah Ondemand merupakan governor yang sangat ideal akan tetapi nyatanya Ondemand sangat buruk untuk pemakaian baterei maupun performa pada setingan bawaan. Salah satu alasan utama bahwa governor Ondemand tidaklah efisien yaitu governor ini langsung memutuskan frekuensi CPU berikutnya secara langsung bukan melakukan intervcal tertentu.. Perubahan frekuensi secara langsung memang sangat membantu dalam penanganan banyaknya prose yang dapat ditangani, akan tetapi tidaklah efektif diterapkan dalam pengunaan jangka panjang yang akan mengakibatkan turunnya frekuensi tinggi dan rendah secara drastis .

  2. Ondemandx: Pada dasarnya merupakan governor Ondemand dengan penambahan

  Governor ini dapat dikatakan sebagai governor wake/suspend mode. Ondemand yang hemat daya. Ketika layar dalam keadaan mati, frekuensi maksimum pada CPU di set pada 500 mhz. Walaupun Ondemand adalah governor bawaan di banyak kernel dan dipertimbangkan karena aman/stabil, akan tetapi untuk mendukung Ondemand/Ondemandx tergantung dari kemampuan CPU untuk melakukan penggantian frekuensi secara cepat dan memiliki transisi latensi frekuensi yang sangat rendah..

  Tidak semua I/O cocok dengan governor

  scheduler

  Ondemand/Ondemandx, hanya I/O SIO yang sepertinya dapat dikatakan cocok sebagai pasangan Ondemand/Ondemandx.

  3. Conservative Sebuah Ondemand versi yang lebih lambat yang menaikkan frekuensi secara perlahan untuk menghemat penggunaan baterei. Conservative didasarkan pada Ondemand. Fungsi governor ini seperti governor Ondemand yang secara dinamis mengatur frekuensi berdasarkan utilisasi prosesor(processor utilization). Bagaimanapun, governor Conservative menaikkan dan menurunkan kecepatan CPU secara lebih bertahap daripada Ondemand. Dengan kata lain, governor ini menaikkan frekueni secara bertahap ketika CPU digunakan dan langsung melakukan lompatan ke frekuensi terendah ketika dalam keadaan idle.. Target governor Conservative adalah untuk mengatur frekuensi CPU secara dinamis, tanpa melompat langsung ke frekuensi tertinggi.

4. Interactive Interactive dianggap sebagai governor yang lebih efisien dari Ondemand.

  Jadi dapat dikatakan lebih cepat, dan hemat baterei. Interactive di rancang untuk sensitif-latency, beban kerja yang interaktif. Alih-alih pengambilan sampel pada setiap interval seperti ondemand, Interactive menentukan bagaimana skala ketika CPU keluar dari status idle. Governor ini memiliki keuntungan sebagai berikut : 1) Lebih responsif, karena governor yang ada melakukan sampel beban CPU dalam konteks penjadwalan kerja, tapi governor Interactive melakukan hal ini dalam konteks waktu, yang memberikan sampel beban CPU yang lebih konsisten. 2) Peningkatan frekuensi CPU memiliki prioritas yang lebih tinggi, yang kemudian memberikan kemampuan CPU dalam menangani beban kerja secara lebih baik, tidak seperti governor yang ada yang menjadwalkan penaikkan skala pengerjaan untuk menyelesaikan beban kerja yang ada.

  Dapat dikatakan bahwa Interactive merupaka governor Ondemand yang lebih cerdas. Dikarenakan pengambilan sampel pemakaian CPU setiap X ms (seperti Ondemand) dapat digunakan untuk menentukan daya bawah

  CPU untuk X ms.

  5. Interactivex: Merupakan governor interactive dengan profile yang lebih hemat baterei daripada governor Interactive.

  6. Lulzactive: merupakan governor campuran antara Interactive dan Smartass dan merupakan salah satu governor pilihan para pengembang pihak ketiga. Versi lama : Ketika beban kerja lebih besar atau sama dengan 60%, governor langsung menaikkan skala prosesor ketingkat yang lebih tinggi.

  Ketika beban kerja kurang dari 60% governor menurunkan skala prosesor ketingkat yang lebih rendah. Ketika layar dalam posisi mati, frekuensi di kunci ke dalam skala frekuensi minimum yang bersifat global. Tiga parameter yang di tentukan user adalah inc_cpu_load, pump_up_step,

  

pump_down_step . Tidak eperti versi lamanya, versi yang baru memberikan

  kontrol yang lebih baik untuk pengguna. Pengguna dapat menentukan ambang batas untuk governor dalam menaikkan/menurunkan skala prosesor. Pengguna juga dapat menentukan angka frekuensi yang dapat dilewatkan ketika menaikkan dan menurunkan frekuensi. Ketika beban kerja lebih besar atau sama dengan inc_cpu_load, governor menaikkan skala CPU pump_up_step secara bertahap. Ketika beban kerja lebih kecil dari inc_cpu_load, governor meurunkan skala pump_down_step.

  7. Lulzactiveq: Lulzactiveq adalah pengembangan dari governor Lulzactive yang ditulis oleh anggota XDA bernama Robertosc. Lulzactiveq mengarah kepada pengoptimalan versi kedua Luzactive yaitu dengan menyediakan sebuah parameter tambahan (dec_cpu_load) untuk membuat penentukan skala bawah lebih sensitif dan menggabungkan logika hotplug dengan governor.

  Luzactiveq adalah sebuah governor pertama yang menggunakan logika hotplug bawaan. Ketika CPU keluar dari posisi idle kemudian saat itu pula dibuat penskalaan CPU, jika load >= inc_cpu_load skala CPU naik and jika load <dec_cpu_load, skala CPU turun. Hanya prosessor dengan inti banyak yang dapat menerapkan governor ini.

  8. Smartass: Merupakan sebuah hasil penyempurnaan governor Interactive yang dilakukan oleh Erasmux. Tujuan utamanya adalah untuk menghemat pemakaian baterei tanpa mengurangi performa.

  9. SmartassV2: Versi 2 dari Smartass, salah satu pilihan para pengembang pihak ketiga.

  Governor ini bertujuan untuk menetapkan frekuensi ideal. governor ini menggunakan frekuensi ideal yang berbeda untuk keadaan layar hidup dan layar mati, dinamai awake_ideal_freq and sleep_ideal_freq. Governor ini menurunkan skala CPU sangat cepat (untuk segera menuju kondisi sleep_ideal_freq ) ketika layar dalam keadaan mati dan menaikkan dengan cepat ke posisi awake_idel_freq ketika layar hidup. Tidak ada batasan penaikkan frekuensi ketika posisi layar mati (tidak seperti Smartass). Jadi dengan keseluruhan jangkauan frekuensi yang tersedia. Jadi seluruh jangkauan frekuensi dapat digunakan oleh governor baik itu dalam posisi layar mati (idle) atau layar hidup (awake).

  10. Intellidemand: Intellidemand alias Intelligent Ondemand yang di tulis oleh Faux yang merupakan pengembangan dari governor Ondemand. Perilaku gover ini didsarkan pada penggunaan GPU (Graphic processing Unit). Ketika GPU dalam keadaan sangat sibuk (main game, melihat maps, dan lainnya) governor ini berperilaku seperti Ondemand. Ketika GPU sibuk, intellidemand membatasi frekuensi maksimum secara bertahap tergantung dari frekuensi yang tersedia pada perangkat/kernel untuk menghemat baterei. Proses ini disebut dengan “Browsing mode”.

  11. Lazy: Governor ini berasal dari Ezekeel yang dibuat berdasarkan Ondemand dengan tambahan paramater min_time_state yang bertujuan menentukan waktu minimum CPU untuk tetap pada frekuensi yang ada sebelum skala naik/turun. Ide ini bertujuan menghilangkan ketidakstabilan yang disebabkan oleh penggantian frekuensi secara cepat yang dilakukan Ondemand. Governor ini hanya menetukan frekuensi selanjutnya setelah melewati waktu yang ditetapkan pada min_time_state. Lazy juga mempunyai screenoff_maxfreq yang ketika digunkan akan menyebabkan governor ini memilih frekuensi maksimum ketika layar dalam keadaan mati.

  12. Lagfree: Lagfree hampir sama dengan ondemand. Perbedaan utamanya terletak pada governor ini dikembangkan untuk penggunaan baterei yang lebih hemat. Frekuens i secara “anggun” diturunkan dan dinaikkan, tidak seperti

  Ondeman yang terlalu sering dinaikkan ke posisi 100%. Lagfree tidak melewatkan frekueniapapun ketika skalanya dinaikkn ataupun diturunkan.

  13. Lionheart: Lionheart sangat bagus dipasangkan dengan deadline i/o scheduler.

  14. LionheartX LionheartX merupakan pengembangan dari governor LionheartX akan tetapi terdapat penambahan beberapa fitur governor Smartass.

  15. Brazilianwax: Hampir sama dengan smartassV2. Akan tetapi lebih ringan, sehingga memiliki performa yang lebih baik dan lebih hemat dalam penggunaan baterei.

  16. SavagedZen: Salah satu pengembangan governor smartassV2. Yang bertujuan mendapatkan performa dan ketahanan baterei yang seimbang.

  17. Userspace: Disamping menentukan frekuensi secara otomatis, pengguna dijiinkan dengan bebas dapat menentukan frekuensi.

  18. Powersave: Mengunci frekuensi maksimum ke frekuensi minimum. Biasanya menyebabkan lag yang luar biasa.

  19. Performance: Menetapkan frekuensi minimum sebagai frekuensi maksimum.

2.9 I/O Scheduler

  I/O Scheduler adalah suatu kemampuan kernel dalam mengontrol pengaksesan terhadap penyimpanan data. Tujuan utamanya adalah mengecilkan latensi pencarian data pada media penyimpanan, prioritas permintaan I/O dari proses yang berjalan, mengalokasikan jumlah ruang penyimpanan untuk setiap proses yang berjalan, dan menjamin setiap permintaan penggunaan media penyimpanan data terpenuhi secara keseluruhan sebelum batas waktunya habis. (Governor, Tweaks. 2012. forum.xda-developers.com/showthread.php?t=1369817) Terdapat beberapa I/O scheduler yang digunakan beberapa pihak pengembang, yaitu :

1. Noop 2.

  Deadline 3.

CFQ 4. DFQ 5. SIO 6.

  Anticipatory

2.9.1 Noop Scheduler

  Memasukkan semua permintaan I/O yang datang dan mengaturnya sesuai dengan logika “First In First Out” dan menerapkan permintaan yang digabungkan sekaligus. Sangat cocok digunakan untuk media penyimpanan yang tidak tergantung kepada perpindahan fisik untuk mengakses data seperti flash memori.

  Keuntungan yang didapat adalah flash drive tidak membutuhkan penyortiran terhadap beberapa permintaan I/O seperti pada hardisk.

  Keuntungan:

   Melayani permintaan I/O dengan nomor cpu cycles yang lebih sedikit.

   Sangat bagus untuk penyimpanan kilat.

   Baik digunakan untuk pusat data sistem.

  Kekurangan:

   Pengurangan nomor cpu cycles mengakibatkan penurunan kinerja.

2.9.2 Deadline Scheduler Tujuan utamanya adalah mengecilkan jarak pelayanan terhadap permintaan I/O.

  Hal ini sama dengan aturan Round Robin yang sangat cocok digunakan untuk melayani permintaan I/O yang banyak. Five queues sangat agresif dalam mengatur ulang urutan permintaan I/O yang akan dilayani.

   Mendekati penjadwalan yang real time.

  

 Baik untuk mengurangi latensi setiap permintaan I/O tunggal yang

diberikan.

   Scheduler terbaik untuk pemakaian pada basis data.

  

 Jumlah ruang yang diperlukan oleh proses dapat dengan mudah dihitung.

   Sangat baik digunakan pada memori kilat.

  Kekurangan:

   Ketika sistem kelebihan beban kerja, tidak dapat diprediksi banyaknya proses yang mungkin dilewatkan oleh Deadline scheduler.

  Keuntungan:

  2.9.3 CFQ ( Completely Fair Queuing)

  CFQ scheduler mengatur skala antrian I/O setiap per-proses dan mendistribusikan ruang I/O yang tersedia secara rata kepada setiap permintaan I/O. Setiap per- proses mengandung permintaan sinkronisasi dari proses. setiap jarak waktu dialokasikan untuk setiap antrian tergantung priritas dari proses utama. Versi kedua dari CFQ mempunyai beberapa penyempurnaan terhadap penanganan proses I/O starvation dan beberapa backward seeks yang kecil dengan harapan lebih responif.

  Keuntungan:

   Mengatur keseimbangan terhadap kemampuan I/O.

   Lebih mudah untuk disesuaikan.

   Baik untuk sistem yang menggunakan lebih dari satu prosesor atau prosesor berinti banyak.

   Kemampuan basis data sistem yang baik.

  Kekurangan:

 Beberapa pengguna melaporkan sistem membutuhkan waktu yang lebih

lama melakukan pengenalan media penyimpanan.

  2.9.4 BFQ

  Jika pada CFQ yang terjadi adalah pemotongan waktu pemakaian, maka BFQ adalah pemotongan yang terjadi pada kapasitas yang dijinkan. Media penyimpanan diijinkan untuk mengaktifkan proses selama kapasitas nya (banyaknya sector) belum habis terpakai. Kapasitas menetapkan berbagai proses sebagai suatu fungsi.

  Keuntungan:

   Sangat baik untuk transfer data menggunakan.

   Diyakini sebagai scheduler terbaik untuk media penyimpanan rekaman video HD dan video langsung (streaming).

   Beberapa pengembang menetapkan sebagai I/O scheduler terbaik..

  Kekurangan:

   Sangat tidak cocok digunakan pada saat mencari nilai benchmark.

   Semakin tinggi kapasitas yang menangani proses dapat menyebabkan meningkatnya latensi pada disk.

2.9.5 SIO

  Sebuah I/O scheduler sederhana yang bertujuan untuk menjaga latensi pada kondisi paling minimum ketika melayani berbagai permintaan I/O. Tidak ada konsep prioritas antrian, hanya sebuah penggabungan dasar. Sio merupakan sebuah campuran I/O antara noop dan deadline. Tidak ada pengaturan ulang permintaan ataupun pemilihan permintaan proses.

  Keuntungan:  Sederhana.

   Mengecilkan kemungkinan adanya permintaan yang tertunda.

  Kekurangan:

   Sangat lambat dalam kecepatan pembacaan memori kilat, dibandingkan dengan schedulers lainnya.

   Kecepatan pembacaan segmen pada memori kilat juga tidak begitu bagus.

  2.9.6 V(R)

  Tidak seperti scheduler lainnya, penyelerasan dan pemisahan permintaan tidak dilayani terpisah, melainkan digabungkan untuk mendapatkan sebuah kondisi yang adil bagi setiap proses. Permintaan selanjutnya dilayani berdasarkan jarak dari permintaan terakhir.

  Keuntungan:

   Mungkin merupakan sebuah scheduler terbaik untuk mendapatkan nilai benchmark yang tinggi.

  Kekurangan:

   Tidak stabilnya kinerja I/O.

  2.9.7 Anticipatory

  Didasarkan pada 2 fakta yaitu : i) Disk terlihat bekerja sangat lambat. ii) Operasi penulisan dapat terjadi kapan saja, tetapi selalu terdapat beberapa proses yang menunggu untuk proses pembacaan.

  Jadi, untuk mengantisipasi adanya sebuah proses overwrite maka dibuat suatu penyelarasan operasi pembacaan.

  Keuntungan:  Permintaan proses pembacaan tidak pernah menunggu terlalu lama.

   Memiliki kemampuan pembacaan memori kilat yang baik seperti halnya pada Noop scheduler.

  Kekurangan:  Mengurangi kemampuan penulisan pada media penyimpanan yang memiliki kecepatan tinggi.

  (Governor, Tweaks. 2012.forum.xda-developers.com/showthread.php?t=1369817)

2.10 Overclock

  Overclock adalah istilauntuk berjalan di kecepatan yang lebih tinggi daripada ketentuan pembuat perangkat tersebut. Prinsipnya adalah membuat kinerja lebih tinggi. Tetapi perlakuan ini beresiko menyebabkan kestabilan sistem yang berkurang sampai rusaknya periferal yang di overclock. (Ciu Bun Seng. 2011)

  Overclock memiliki batasan tertentu tergantung dari jenis hardware yang digunkan. Bahkan, walaupun memiliki vendor yang sama akan tetapi batasan overclock dari suatu smartphone berbeda.

  Pada kondisi yang tidak stabil, overclock dapat menyebabkan sistem menjadi tidak stabil, mulai dari hardware hingga software, jika pada hardware dapat menyebabkan adanya efek kenaikan suhu dan pemborosan sumber daya, sementara pada software , dapat menyebabkan jalur data menjadi tidak lancar.

  Pada PC, overclock pada CPU biasanya dapat dilakukan baik melalui BIOS maupun software tertentu. Sedangkan pada android overclock CPU dapat dilakukan dalam 2 cara, yaitu melalui kernel dan menggunakan aplikasi.

2.11 Clockworkmod Recovery

  ClockworkMod Recovery (CWM) adalah sebuah recovery pengganti pilihan untuk sebuah perangkat android, dibuat oleh Koushik “Koush” Dutta. CWM merupakan pengembangan dari recovery bawaan android versi 2.1 (Eclair). Kmemapuannya meliputi Nandroid backup, adb shell, advanced update.zip dan file browser untuk pilihan paket zip. (Google. 2013. developer.android.com/guide/index.html)

  Aplikasi bernama ROM manager dapat digunakan untuk pemasangan CWM, melakukan penggantian langsung terhadap recovery bawaan. Seperti recovery bawaan CWM bisa digunakan untuk melakukan pembaharuan perangkat lunak perangkat. Tidak seperti recovery bawaan, CWM mempunya kemampuan untuk mengganti seluruh sitem operasi android termasuk ROM pengembang pihak ketiga.

  Ketika telah terpasang, CWM dapat di akses dengan mematikan perangkat terlebih dahulu, kemudian menginterupsi bootloader dengan menekan beberapa kombinasi tombol. CWM juga dikenal dengan nama clock recovery.