OS: 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:
- 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.