Difference between revisions of "OS: Arsitektur Android OS"

From OnnoWiki
Jump to navigation Jump to search
 
(2 intermediate revisions by the same user not shown)
Line 1: Line 1:
 +
==Android sebagai Sistem Operasi (Bukan Sekadar OS Mobile)==
 +
Dalam konteks Sistem Operasi, Android adalah sistem operasi berbasis Linux kernel yang dirancang untuk lingkungan resource-constrained namun highly interactive. Sejalan dengan pola arsitektur OS modern yang dibahas pada bab-bab awal buku, Android menerapkan arsitektur berlapis (layered architecture) untuk mencapai abstraksi, isolasi, efisiensi, dan keamanan.
  
BAGIAN G — ANDROID SISTEM OPERASI
+
[[File:Android-OS-layers.png|300px|center|thumb]]
BAB 13. Arsitektur Android OS
 
Android sebagai Sistem Operasi (Bukan Sekadar OS Mobile)
 
Dalam konteks Sistem Operasi, Android adalah sistem operasi berbasis Linux kernel yang dirancang untuk lingkungan resource-constrained namun highly interactive. Sejalan dengan pola arsitektur OS modern yang dibahas pada bab-bab awal buku, Android menerapkan arsitektur berlapis (layered architecture) untuk mencapai abstraksi, isolasi, efisiensi, dan keamanan.
 
  
 
Secara konseptual, Android dapat dipahami sebagai:
 
Secara konseptual, Android dapat dipahami sebagai:
Linux kernel → resource manager (CPU, memori, I/O, jaringan, security).
+
* Linux kernel → resource manager (CPU, memori, I/O, jaringan, security).
User space khusus Android → runtime, framework, dan system services.
+
* User space khusus Android → runtime, framework, dan system services.
Application layer → aplikasi berjalan di atas framework, bukan langsung ke kernel.
+
* Application layer → aplikasi berjalan di atas framework, bukan langsung ke kernel.
 
Pendekatan ini konsisten dengan prinsip kernel vs user space yang telah dibahas sebelumnya, namun Android menambahkan lapisan tambahan untuk mengakomodasi perangkat keras heterogen dan ekosistem aplikasi yang masif.
 
Pendekatan ini konsisten dengan prinsip kernel vs user space yang telah dibahas sebelumnya, namun Android menambahkan lapisan tambahan untuk mengakomodasi perangkat keras heterogen dan ekosistem aplikasi yang masif.
  
Android Software Stack
+
==Android Software Stack==
 
Android software stack tersusun atas beberapa lapisan utama berikut.
 
Android software stack tersusun atas beberapa lapisan utama berikut.
Linux Kernel (Kernel Space)
+
 
 +
===Linux Kernel (Kernel Space)===
 
Android menggunakan Linux kernel yang telah dimodifikasi. Secara fungsi inti, kernel Android tetap Linux, namun dengan tambahan subsistem khusus, antara lain:
 
Android menggunakan Linux kernel yang telah dimodifikasi. Secara fungsi inti, kernel Android tetap Linux, namun dengan tambahan subsistem khusus, antara lain:
Binder IPC → mekanisme inter-process communication utama Android
+
* Binder IPC → mekanisme inter-process communication utama Android
Ashmem (Anonymous Shared Memory) → shared memory efisien
+
* Ashmem (Anonymous Shared Memory) → shared memory efisien
Wakelocks → kontrol power management
+
* Wakelocks → kontrol power management
SELinux (Mandatory Access Control) → keamanan berbasis kebijakan
+
* SELinux (Mandatory Access Control) → keamanan berbasis kebijakan
 
Contoh verifikasi kernel Android x86 (nanti di bab Android x86 Lab):
 
Contoh verifikasi kernel Android x86 (nanti di bab Android x86 Lab):
uname -a
+
uname -a
cat /proc/version
+
cat /proc/version
 
Insight OS: Android tidak mengganti kernel Linux, tetapi memperluasnya agar sesuai dengan karakteristik mobile & embedded system.
 
Insight OS: Android tidak mengganti kernel Linux, tetapi memperluasnya agar sesuai dengan karakteristik mobile & embedded system.
Hardware Abstraction Layer (HAL)
+
 
 +
===Hardware Abstraction Layer (HAL)===
 
HAL adalah lapisan pemisah antara kernel dan user space framework. Tujuannya adalah menyembunyikan detail perangkat keras dari Android Framework.
 
HAL adalah lapisan pemisah antara kernel dan user space framework. Tujuannya adalah menyembunyikan detail perangkat keras dari Android Framework.
 +
 
Peran utama HAL:
 
Peran utama HAL:
Menyediakan API standar untuk hardware (kamera, audio, sensor, WiFi).
+
* Menyediakan API standar untuk hardware (kamera, audio, sensor, WiFi).
Memungkinkan Android berjalan di berbagai vendor hardware tanpa mengubah framework.
+
* Memungkinkan Android berjalan di berbagai vendor hardware tanpa mengubah framework.
 +
 
 
Struktur konseptual:
 
Struktur konseptual:
Android Framework
+
 
       
+
Android Framework
        HAL (C / C++)
+
       
       
+
        HAL (C / C++)
Linux Kernel Drivers
+
       
 +
Linux Kernel Drivers
 +
 
 
Poin penting:
 
Poin penting:
Tanpa HAL, setiap perubahan hardware akan memaksa perubahan besar di framework → tidak scalable.
+
Tanpa HAL, setiap perubahan hardware akan memaksa perubahan besar di framework → tidak scalable.
  
Native Libraries
+
===Native Libraries===
 
Lapisan ini berisi native libraries (C/C++) yang digunakan oleh runtime dan framework, antara lain:
 
Lapisan ini berisi native libraries (C/C++) yang digunakan oleh runtime dan framework, antara lain:
Bionic libc → implementasi standard C library Android
+
* Bionic libc → implementasi standard C library Android
OpenGL ES / Vulkan → grafis
+
* OpenGL ES / Vulkan → grafis
SQLite → database embedded
+
* SQLite → database embedded
Media Framework → audio & video
+
* Media Framework → audio & video
 +
 
 
Contoh melihat library native (di Android x86 shell):
 
Contoh melihat library native (di Android x86 shell):
ls /system/lib
+
ls /system/lib
ls /system/lib64
+
ls /system/lib64
 +
 
 
Perbandingan akademik:
 
Perbandingan akademik:
Linux desktop → glibc
+
* Linux desktop → glibc
Android → Bionic libc (lebih ringan, lebih ketat)
+
* Android → Bionic libc (lebih ringan, lebih ketat)
Android Runtime (ART)
+
 
 +
===Android Runtime (ART)===
 
Android Runtime (ART) bertanggung jawab atas eksekusi aplikasi.
 
Android Runtime (ART) bertanggung jawab atas eksekusi aplikasi.
 +
 
Fungsi utama ART:
 
Fungsi utama ART:
Ahead-of-Time (AOT) compilation
+
* Ahead-of-Time (AOT) compilation
Just-in-Time (JIT) compilation
+
* Just-in-Time (JIT) compilation
Garbage collection
+
* Garbage collection
Thread management
+
* Thread management
 +
 
 
Aplikasi Android tidak berjalan sebagai native ELF binary biasa, melainkan sebagai:
 
Aplikasi Android tidak berjalan sebagai native ELF binary biasa, melainkan sebagai:
Bytecode → dikompilasi → dijalankan oleh ART
+
Bytecode → dikompilasi → dijalankan oleh ART
 +
 
 
Keterkaitan OS:
 
Keterkaitan OS:
ART beroperasi di user space, tetapi mengandalkan scheduler, memory manager, dan IPC kernel Linux.
+
ART beroperasi di user space, tetapi mengandalkan scheduler, memory manager, dan IPC kernel Linux.
  
Android Framework (Java/Kotlin API)
+
===Android Framework (Java/Kotlin API)===
 
Framework adalah API tingkat tinggi yang digunakan oleh aplikasi, mencakup:
 
Framework adalah API tingkat tinggi yang digunakan oleh aplikasi, mencakup:
Activity Manager
+
* Activity Manager
Window Manager
+
* Window Manager
Package Manager
+
* Package Manager
Location Manager
+
* Location Manager
Telephony & Connectivity Services
+
* Telephony & Connectivity Services
 +
 
 
Framework ini berkomunikasi dengan:
 
Framework ini berkomunikasi dengan:
System services (daemon user space)
+
* System services (daemon user space)
Kernel (melalui Binder IPC)
+
* Kernel (melalui Binder IPC)
 +
 
 
Analogi OS klasik:
 
Analogi OS klasik:
Framework ≈ user-space system services pada OS desktop/server.
+
Framework ≈ user-space system services pada OS desktop/server.
Application Layer
+
 
 +
===Application Layer===
 
Lapisan teratas adalah aplikasi Android, baik:
 
Lapisan teratas adalah aplikasi Android, baik:
System apps
+
* System apps
User apps
+
* User apps
 +
 
 
Setiap aplikasi:
 
Setiap aplikasi:
Berjalan sebagai process terpisah
+
* Berjalan sebagai process terpisah
Memiliki UID sendiri
+
* Memiliki UID sendiri
Terisolasi oleh Linux process isolation + SELinux
+
* Terisolasi oleh Linux process isolation + SELinux
 +
 
 
Cek isolasi process di Android:
 
Cek isolasi process di Android:
ps -A | head
+
ps -A | head
 +
 
 
Inti keamanan:
 
Inti keamanan:
Isolasi aplikasi Android langsung bergantung pada mekanisme kernel Linux, bukan sekadar kebijakan framework.
+
Isolasi aplikasi Android langsung bergantung pada mekanisme kernel Linux, bukan sekadar kebijakan framework.
  
Kernel Linux di Android
+
==Kernel Linux di Android==
 
Android memanfaatkan fitur inti Linux yang telah dibahas pada bab kernel:
 
Android memanfaatkan fitur inti Linux yang telah dibahas pada bab kernel:
Scheduler → mengatur thread aplikasi
+
* Scheduler → mengatur thread aplikasi
Virtual memory → isolasi & efisiensi RAM
+
* Virtual memory → isolasi & efisiensi RAM
Device driver → interaksi hardware
+
* Device driver → interaksi hardware
Networking stack → TCP/IP, WiFi, cellular
+
* Networking stack → TCP/IP, WiFi, cellular
SELinux → mandatory access control
+
* SELinux → mandatory access control
 +
 
 
Contoh cek status SELinux (Android x86):
 
Contoh cek status SELinux (Android x86):
getenforce
+
getenforce
 +
 
 
Output:
 
Output:
Enforcing → kebijakan aktif
+
* Enforcing → kebijakan aktif
Permissive → logging saja
+
* Permissive → logging saja
 +
 
 
Catatan akademik:
 
Catatan akademik:
Android adalah contoh OS modern yang sangat ketat pada security by design.
+
Android adalah contoh OS modern yang sangat ketat pada security by design.
HAL & User Space (Interaksi Nyata)
+
 
 +
==HAL & User Space (Interaksi Nyata)==
 
Alur nyata interaksi sistem:
 
Alur nyata interaksi sistem:
App → Framework → System Service → HAL → Kernel Driver → Hardware
+
App → Framework → System Service → HAL → Kernel Driver → Hardware
 +
 
 
Contoh kasus:
 
Contoh kasus:
App kamera
+
* App kamera
Framework memanggil Camera Service
+
* Framework memanggil Camera Service
Camera Service memanggil HAL kamera
+
* Camera Service memanggil HAL kamera
HAL berinteraksi dengan driver kernel
+
* HAL berinteraksi dengan driver kernel
Hardware kamera aktif
+
* Hardware kamera aktif
 +
 
 
Relevansi pembelajaran:
 
Relevansi pembelajaran:
 +
 
Mahasiswa dapat memetakan ulang alur ini ke:
 
Mahasiswa dapat memetakan ulang alur ini ke:
OpenWRT (user space ↔ kernel)
+
* OpenWRT (user space ↔ kernel)
Linux server (daemon ↔ syscall)
+
* Linux server (daemon ↔ syscall)
Embedded OS lainnya
+
* Embedded OS lainnya
  
AOSP (Android Open Source Project) Overview
+
==AOSP (Android Open Source Project) Overview==
 
AOSP adalah basis open source Android.
 
AOSP adalah basis open source Android.
 +
 
Karakteristik utama AOSP:
 
Karakteristik utama AOSP:
Tanpa Google proprietary services
+
* Tanpa Google proprietary services
Bisa dibangun & dimodifikasi
+
* Bisa dibangun & dimodifikasi
Cocok untuk pembelajaran OS engineering
+
* Cocok untuk pembelajaran OS engineering
 +
 
 
Struktur umum source AOSP:
 
Struktur umum source AOSP:
build/
+
build/
frameworks/
+
frameworks/
hardware/
+
hardware/
kernel/
+
kernel/
system/
+
system/
 +
 
 
Filosofi buku:
 
Filosofi buku:
Android bukan black box. Ia adalah sistem operasi open source yang bisa dibedah, dibangun, dan dipahami.
+
Android bukan black box. Ia adalah sistem operasi open source yang bisa dibedah, dibangun, dan dipahami.
 +
 
 
AOSP akan digunakan secara praktis pada:
 
AOSP akan digunakan secara praktis pada:
BAB 14: Android x86 from Scratch
+
* BAB 14: Android x86 from Scratch
PRAKTIKUM 9: Android x86 Build Lab
+
* PRAKTIKUM 9: Android x86 Build Lab
Refleksi Akademik (OBE Alignment)
+
 
 +
==Refleksi Akademik (OBE Alignment)==
 
Setelah bab ini, mahasiswa diharapkan mampu:
 
Setelah bab ini, mahasiswa diharapkan mampu:
Menjelaskan arsitektur Android sebagai sistem operasi
+
* Menjelaskan arsitektur Android sebagai sistem operasi
Memetakan peran kernel Linux dalam Android
+
* Memetakan peran kernel Linux dalam Android
Memahami HAL sebagai kunci portabilitas hardware
+
* Memahami HAL sebagai kunci portabilitas hardware
Mengaitkan Android dengan konsep OS klasik (process, memory, IPC, security)
+
* Mengaitkan Android dengan konsep OS klasik (process, memory, IPC, security)
 +
 
 
Bab ini menjadi jembatan konseptual sebelum mahasiswa:
 
Bab ini menjadi jembatan konseptual sebelum mahasiswa:
Membangun Android x86 sendiri
+
* Membangun Android x86 sendiri
Mengamati Android sebagai OS yang bisa di-boot
+
* Mengamati Android sebagai OS yang bisa di-boot
Melihat langsung relasi kernel ↔ user space
+
* Melihat langsung relasi kernel ↔ user space
  
Penutup
+
==Penutup==
 
Android dalam buku ini bukan dipelajari sebagai platform aplikasi, melainkan sebagai:
 
Android dalam buku ini bukan dipelajari sebagai platform aplikasi, melainkan sebagai:
contoh nyata sistem operasi modern berbasis Linux yang berhasil diadopsi secara global.
+
contoh nyata sistem operasi modern berbasis Linux yang berhasil diadopsi secara global.
 +
 
 
Dengan memahami Android pada level arsitektur OS, mahasiswa tidak hanya:
 
Dengan memahami Android pada level arsitektur OS, mahasiswa tidak hanya:
Mengerti cara pakai Android, tetapi
+
Mengerti cara pakai Android, tetapi
Siap menjadi OS engineer yang memahami sistem dari kernel hingga aplikasi.
+
Siap menjadi OS engineer yang memahami sistem dari kernel hingga aplikasi.
 
 
  
 
==Pranala Menarik==
 
==Pranala Menarik==
  
 
* [[Sistem operasi]]
 
* [[Sistem operasi]]

Latest revision as of 09:59, 15 February 2026

Android sebagai Sistem Operasi (Bukan Sekadar OS Mobile)

Dalam konteks Sistem Operasi, Android adalah sistem operasi berbasis Linux kernel yang dirancang untuk lingkungan resource-constrained namun highly interactive. Sejalan dengan pola arsitektur OS modern yang dibahas pada bab-bab awal buku, Android menerapkan arsitektur berlapis (layered architecture) untuk mencapai abstraksi, isolasi, efisiensi, dan keamanan.

Android-OS-layers.png

Secara konseptual, Android dapat dipahami sebagai:

  • Linux kernel → resource manager (CPU, memori, I/O, jaringan, security).
  • User space khusus Android → runtime, framework, dan system services.
  • Application layer → aplikasi berjalan di atas framework, bukan langsung ke kernel.

Pendekatan ini konsisten dengan prinsip kernel vs user space yang telah dibahas sebelumnya, namun Android menambahkan lapisan tambahan untuk mengakomodasi perangkat keras heterogen dan ekosistem aplikasi yang masif.

Android Software Stack

Android software stack tersusun atas beberapa lapisan utama berikut.

Linux Kernel (Kernel Space)

Android menggunakan Linux kernel yang telah dimodifikasi. Secara fungsi inti, kernel Android tetap Linux, namun dengan tambahan subsistem khusus, antara lain:

  • Binder IPC → mekanisme inter-process communication utama Android
  • Ashmem (Anonymous Shared Memory) → shared memory efisien
  • Wakelocks → kontrol power management
  • SELinux (Mandatory Access Control) → keamanan berbasis kebijakan

Contoh verifikasi kernel Android x86 (nanti di bab Android x86 Lab):

uname -a
cat /proc/version

Insight OS: Android tidak mengganti kernel Linux, tetapi memperluasnya agar sesuai dengan karakteristik mobile & embedded system.

Hardware Abstraction Layer (HAL)

HAL adalah lapisan pemisah antara kernel dan user space framework. Tujuannya adalah menyembunyikan detail perangkat keras dari Android Framework.

Peran utama HAL:

  • Menyediakan API standar untuk hardware (kamera, audio, sensor, WiFi).
  • Memungkinkan Android berjalan di berbagai vendor hardware tanpa mengubah framework.

Struktur konseptual:

Android Framework
        ↑
        HAL (C / C++)
        ↑
Linux Kernel Drivers

Poin penting:

Tanpa HAL, setiap perubahan hardware akan memaksa perubahan besar di framework → tidak scalable.

Native Libraries

Lapisan ini berisi native libraries (C/C++) yang digunakan oleh runtime dan framework, antara lain:

  • Bionic libc → implementasi standard C library Android
  • OpenGL ES / Vulkan → grafis
  • SQLite → database embedded
  • Media Framework → audio & video

Contoh melihat library native (di Android x86 shell):

ls /system/lib
ls /system/lib64

Perbandingan akademik:

  • Linux desktop → glibc
  • Android → Bionic libc (lebih ringan, lebih ketat)

Android Runtime (ART)

Android Runtime (ART) bertanggung jawab atas eksekusi aplikasi.

Fungsi utama ART:

  • Ahead-of-Time (AOT) compilation
  • Just-in-Time (JIT) compilation
  • Garbage collection
  • Thread management

Aplikasi Android tidak berjalan sebagai native ELF binary biasa, melainkan sebagai:

Bytecode → dikompilasi → dijalankan oleh ART

Keterkaitan OS:

ART beroperasi di user space, tetapi mengandalkan scheduler, memory manager, dan IPC kernel Linux.

Android Framework (Java/Kotlin API)

Framework adalah API tingkat tinggi yang digunakan oleh aplikasi, mencakup:

  • Activity Manager
  • Window Manager
  • Package Manager
  • Location Manager
  • Telephony & Connectivity Services

Framework ini berkomunikasi dengan:

  • System services (daemon user space)
  • Kernel (melalui Binder IPC)

Analogi OS klasik:

Framework ≈ user-space system services pada OS desktop/server.

Application Layer

Lapisan teratas adalah aplikasi Android, baik:

  • System apps
  • User apps

Setiap aplikasi:

  • Berjalan sebagai process terpisah
  • Memiliki UID sendiri
  • Terisolasi oleh Linux process isolation + SELinux

Cek isolasi process di Android:

ps -A | head

Inti keamanan:

Isolasi aplikasi Android langsung bergantung pada mekanisme kernel Linux, bukan sekadar kebijakan framework.

Kernel Linux di Android

Android memanfaatkan fitur inti Linux yang telah dibahas pada bab kernel:

  • Scheduler → mengatur thread aplikasi
  • Virtual memory → isolasi & efisiensi RAM
  • Device driver → interaksi hardware
  • Networking stack → TCP/IP, WiFi, cellular
  • SELinux → mandatory access control

Contoh cek status SELinux (Android x86):

getenforce

Output:

  • Enforcing → kebijakan aktif
  • Permissive → logging saja

Catatan akademik:

Android adalah contoh OS modern yang sangat ketat pada security by design.

HAL & User Space (Interaksi Nyata)

Alur nyata interaksi sistem:

App → Framework → System Service → HAL → Kernel Driver → Hardware

Contoh kasus:

  • App kamera
  • Framework memanggil Camera Service
  • Camera Service memanggil HAL kamera
  • HAL berinteraksi dengan driver kernel
  • Hardware kamera aktif

Relevansi pembelajaran:

Mahasiswa dapat memetakan ulang alur ini ke:

  • OpenWRT (user space ↔ kernel)
  • Linux server (daemon ↔ syscall)
  • Embedded OS lainnya

AOSP (Android Open Source Project) Overview

AOSP adalah basis open source Android.

Karakteristik utama AOSP:

  • Tanpa Google proprietary services
  • Bisa dibangun & dimodifikasi
  • Cocok untuk pembelajaran OS engineering

Struktur umum source AOSP:

build/
frameworks/
hardware/
kernel/
system/

Filosofi buku:

Android bukan black box. Ia adalah sistem operasi open source yang bisa dibedah, dibangun, dan dipahami.

AOSP akan digunakan secara praktis pada:

  • BAB 14: Android x86 from Scratch
  • PRAKTIKUM 9: Android x86 Build Lab

Refleksi Akademik (OBE Alignment)

Setelah bab ini, mahasiswa diharapkan mampu:

  • Menjelaskan arsitektur Android sebagai sistem operasi
  • Memetakan peran kernel Linux dalam Android
  • Memahami HAL sebagai kunci portabilitas hardware
  • Mengaitkan Android dengan konsep OS klasik (process, memory, IPC, security)

Bab ini menjadi jembatan konseptual sebelum mahasiswa:

  • Membangun Android x86 sendiri
  • Mengamati Android sebagai OS yang bisa di-boot
  • Melihat langsung relasi kernel ↔ user space

Penutup

Android dalam buku ini bukan dipelajari sebagai platform aplikasi, melainkan sebagai:

contoh nyata sistem operasi modern berbasis Linux yang berhasil diadopsi secara global.

Dengan memahami Android pada level arsitektur OS, mahasiswa tidak hanya:

Mengerti cara pakai Android, tetapi
Siap menjadi OS engineer yang memahami sistem dari kernel hingga aplikasi.

Pranala Menarik