Jumat, 22 April 2016

Apa sih OS Android?

Mumpung lagi semangat nulis, langsung saja kita bahas tentang OS Android. Pertama kita perjelas dulu apa arti OS. OS(Operating System) yaitu sebuah sistem yang mampu mengoperasikan sebuah hardware dengan fungsi tertentu yang dilengkapi sebuah tampilan sehingga pengguna bisa mengoperasikan hardware. Bisa dibilang pengguna(user) hanya menjalankan sebuah OS agar hardware bisa bekerja. Jadi, kedudukannya OS seperti gambar dibawah:


Kedudukan OS


Lalu, komponen utama sebuah OS apa saja?? dikutip dari sumber ini:
Komponen Utama dari OS adalah sebagai berikut:
- User Interface(UI)
- File Management System
- Input/Output(IO)
- Memory Management
- Kernel

Itu secara umum lho, butuh penjelasan?? Oke saya bahas.

- User Interface
Layer(lapisan) ini adalah lapisan yang berhubungan langsung antara pengguna dengan OS. Maksudnya?? ya yang tertampil di layar PC atau smartphone, yang anda klik, yang anda tekan-tekan itulah User Interface. Nah, layer ini berupa aplikasi-aplikasi yang saling terkait, sehingga membentuk tampilan yang mudah kita lihat, pahami dan operasikan. Biasanya juga disebut Application Layer

- File Management System
Layer ini menyediakan data-data yang "umum"nya akan dipakai aplikasi (layer UI). Ya bisa disebut dengan Library. Jadi nanti pembuat aplikasi(developer) membuat sebuah aplikasi berdasarkan Layer ini. Kalau library ini belum diupdate oleh pengembang OS sendiri, maka developer aplikasi belum bisa membuat aplikasi dengan fungsi yang lebih kompleks.

- Input/Output
Layer ini mengolah input dan output dari OS. Hasil input dari layer Application akan diteruskan menuju layer selanjutnya. Bila layer dibawahnya sudah memproses sebuah data, maka membutuhkan output agar si pengguna dapat mengetahui hasil data yang diproses. Biasanya menuju hardware atau cuman data baru(hasil proses data tadi).

- Memory Management
Layer ini mengolah data-data yang sedang atau telah diproses. Jadi, gak sekedar diproses langsung hilang begitu saja. Biasanya layer inilah yang berisi cache.

- Kernel
Layer yang mengurusi hardware. Ibaratnya kayak penerjemah. Agar hardware bisa bekerja sesuai kehendak developer aplikasi sesuai input dari layer application. Pada layer ini biasanya berisi bahasa pemrograman tingkat rendah.

Udah ada gambaran sedikit soal OS secara umum kan?? sekarang kita masuk ke Layer penyusun OS Android.
Lihat gambar ini dulu saja, pasti gak jauh beda dengan layer dasar dari OS.


Arsitektur Layer Pada OS Android
Kita bahas satu persatu mengenai Layer OS Android
OS Android mempunyai 4 layer Utama:
- Application Layer
- Library Layer
- Android Runtime
- Kernel Layer

Penjelasannya sih sebagian sudah sama dengan layer OS secara umum di atas tadi, cuman saya akan bahas beberapa yang beda dari layer OS secara umum:

- Android Runtime
Bagian ini setingkat dengan layer library. Dimana fungsinya memproses (nama lainnya compiler) bahasa Java yang digunakan pada Application Layer. Developer OS Android memutuskan menggunakan 2 bahasa pemrograman yakni bahasa Java dan bahasa C. Bahasa Java untuk membuat aplikasi sehingga developer aplikasi mudah dalam membuatnya. Sementara bahasa C untuk layer Kernel. Nantinya Android Runtime juga dibantu dengan Hardware Abstraction Layer untuk menjembatani antara Application Layer dengan Kernel Layer sehingga apa yang diperintahkan application layer bisa menggerakkan hardware. Itulah sebabnya bagian Hardware Abstraction Layer dilingkari dengan warna kuning, karena masih terkait dengan Android Runtime. Ingat fungsi Android runtime sebagai pemroses atau compiler lho.

- Kernel Layer
Pada layer ini OS Android menggunakan Kernel milik Linux. Otomatis, menggunakan bahasa C untuk berkomunikasi dengan hardware.
Oh ya, kan Android dengar-dengar basicnya LINUX OS, nah yang dimaksud bagian mananya? sebelum membahas bagian itu mending kita lihat Linux OS layer:

Arsitektur Layer OS Linux
wah ternyata arsitektur layernya sangat sederhana(pantesan ringan). Nah ternyata bagian yang sama dari Android adalah Layer Kernelnya. Android menggunakan format Kernel yang sama dengan Linux(seperti yang dijelaskan sebelumnya)


Sudah banyak kan penjelasannya mengenai OS Android. Sekarang saya akan coba jawab mengenai polemik yang sering jadi "kebingungan publik".
OS Android menggunakan bahasa Java, berarti OS Android pengembangan dari OS hape Java donk??

sebelum menjawab, mari kita ketahui apa sih yang disebut "OS Java" pada feature phone?
Sebenarnya feature phone juga menggunakan OS. Kalau tidak gimana caranya pengguna(user) bisa memperintah hardware kalau tanpa sistem software atau sistem operasi yang menjembatani. OS yang digunakan adalah Java ME dengan architecture layer seperti dibawah:

Arsitektur Layer Java ME
Nah arsitektur di atas coba kaitkan dengan arsitektur milik OS Android. Terlihat sangat berbeda kan? dasar dari layer(Kernel Layer) saja sudah berbeda. Kesamaamnya cuman sama-sama menggunakan bahasa Java dalam membuat aplikasi. Sama-sama pakai bukan berarti satu keturunan kan? jadi jawaban saya adalah dasar pengembangan OS Android bukan Java ME tapi dari Linux yang dimodifikasi dan ditambah dengan Java Virtual Machine karena developer Android(atau penemu) memutuskan memilih bahasa Java sebagai bahasa dalam pembuatan aplikasinya.


Dalam OS Android menggunakan Android runtime dalvik dan bahkan sekarang ART. Dan setahuku keduanya merupakan Java Virtual Machine. Kalau virtual machine artinya emulator donk? apa artinya android adalah emulator?

Kalau Java Virtual Machine adalah emulator, ya benar. Fungsi sebenarnya emulator adalah sebagai compiler atau menjalankan serangkaian program yang sudah dikemas. Nah program/aplikasinya kan pakai bahasa Java. Nah sekarang logika sederhana saja, bila Android adalah program yang berjalan di emulator, siapakah yang menjalankan program emulatornya?? Linux?? padahal Linux pada OS Android ya cuman dibagian Kernel saja. Atau Linux yang menjalankan emulator yang berisi Android?? jawabannya tidak lah. Aneh saja bila suatu OS yang berjalan emulator disebut sebagai OS baru.  Sekalian saja OS Android adalah OS linux. Tapi nyatanya OS Android merupakan OS yang utuh(memenuhi syarat sebagi OS).


OS Android kan denger-denger termasuk OS yang berat, karena butuh spesifikasi tertentu agar bisa nyaman dalam menjalankannya, apa benar demikian??

jawabannya nanti dulu lah, itu butuh pembahasan yang agak panjang, haha 

Untuk sementara sekian dulu saja. Semoga bisa menambah wawasan. Ilmu diatas saya dapatkan dari seminar, diskusi dengan pakar(dosen, developer aplikasi,dll) hingga search google bahkan di bangku perkuliahan juga saya pelajari(tapi bukan tentang Android murni, melainkan bahasa Java, bahasa C, mikrokontroller hingga dasar-dasar Operating system)

2 komentar:

  1. The actual time and effort took to create this wonderful article were really great and would like to read this blog regularly to get more updates...
    Android Training | Android Online Training

    BalasHapus
  2. Thanks for sharing your innovative ideas to our vision. I have read your blog and I gathered some new information through your blog. Your blog is really very informative and unique. Keep posting like this. Awaiting for your further update.
    Salesforce Training in Chennai

    Salesforce Online Training in Chennai

    Salesforce Training in Bangalore

    Salesforce Training in Hyderabad

    Salesforce training in ameerpet

    Salesforce Training in Pune

    Salesforce Online Training

    Salesforce Training

    BalasHapus