OS: Android x86 from Scratch
Dalam mata kuliah Sistem Operasi Lanjutan, Android x86 digunakan sebagai laboratorium sistem operasi, bukan sebagai pengganti smartphone. Pendekatan ini konsisten dengan filosofi buku bahwa OS harus dibongkar, dibangun, dan diuji, bukan sekadar digunakan. Dengan Android x86, mahasiswa dapat mengamati langsung relasi kernel–user space, runtime behavior, process isolation, dan security model Android dalam lingkungan yang reproducible.
Android x86 adalah port AOSP (Android Open Source Project) ke arsitektur x86/x86_64, sehingga:
- Dapat dijalankan di PC, VM, dan emulator
- Dapat di-debug dengan tool Linux standar
- Cocok untuk eksperimen kernel, HAL, dan user space
Poin kunci:
Android x86 menjadikan Android setara dengan Ubuntu Server dan OpenWRT sebagai objek studi OS di lab virtual.
Android x86 vs Android Device (Smartphone)
Perbandingan ini penting agar mahasiswa memahami apa yang sama secara fundamental dan apa yang berbeda secara implementasi.
Kesamaan fundamental (perspektif OS):
- Menggunakan Linux kernel
- Pemisahan kernel space dan user space
- Android Runtime (ART)
- Framework dan system services
- Model keamanan berbasis UID + SELinux
Perbedaan utama (implementasi):
- Android device
- Kernel vendor-specific
- Hardware khusus (ARM SoC, sensor mobile)
- Bootloader sering proprietary
- Sulit dimodifikasi untuk pembelajaran OS
- Android x86
- Kernel generic x86
- Hardware PC/virtual
- Boot via ISO / GRUB
- Sangat hackable dan cocok untuk lab
Insight akademik:
Android x86 adalah “Android versi engineering”—fokus pada transparansi sistem, bukan kenyamanan pengguna akhir.
Posisi Android x86 dalam Peta Arsitektur OS
Jika disejajarkan dengan bab-bab sebelumnya:
- Ubuntu Server 24.04 → general-purpose OS
- OpenWRT x86 → network & embedded OS
- Android x86 → application-centric OS dengan isolasi ketat
Ketiganya berbagi fondasi:
- Linux kernel
- Process scheduling
- Virtual memory
- Device driver
- Networking stack
Refleksi OBE:
Mahasiswa memahami satu kernel, banyak desain OS—sebuah system thinking yang krusial.
Build Environment Android x86 (Ubuntu 24.04)
Seperti pada bab Compile Kernel Linux dan Build OpenWRT x86, lingkungan build adalah fondasi. Build Android berskala besar dan resource-intensive—ini adalah pengalaman engineering nyata.
Spesifikasi Minimum Sistem Build
Disarankan menggunakan VM Ubuntu Server 24.04:
- CPU: 4 core (minimum 2)
- RAM: 8–16 GB (minimum 8 GB)
- Disk: ≥ 150 GB
- OS: Ubuntu 24.04 LTS
- Internet stabil
Catatan:
Keterbatasan resource akan terasa—dan itu bagian dari pembelajaran OS skala industri.
Instalasi Dependency Build AOSP
Jalankan perintah berikut di Ubuntu 24.04:
sudo apt update sudo apt install -y \ git-core gnupg flex bison build-essential \ zip curl zlib1g-dev gcc-multilib g++-multilib \ libc6-dev-i386 libncurses5-dev x11proto-core-dev \ libx11-dev libgl1-mesa-dev libxml2-utils \ xsltproc unzip fontconfig
Instal Java dan repo tool:
sudo apt install -y openjdk-17-jdk repo
Verifikasi:
java -version repo --version
Keterkaitan OS:
Seluruh proses build AOSP bergantung pada toolchain GNU/Linux, memperkuat relevansi Ubuntu sebagai core platform.
AOSP Build Process (Android x86)
Mengambil Source Code Android x86
Buat direktori kerja:
mkdir -p ~/android-x86 cd ~/android-x86
Inisialisasi repo Android x86:
repo init -u https://github.com/android-x86/manifest.git repo sync -j$(nproc)
Proses sinkronisasi besar dan lama—ini normal dan mencerminkan kompleksitas OS modern.
Menyiapkan Environment Build
Aktifkan environment build:
source build/envsetup.sh
Pilih target build:
lunch android_x86_64-userdebug
Penjelasan:
- x86_64 → arsitektur target
- userdebug → debug-friendly, ideal untuk lab OS
Proses Build Android x86
Mulai build:
make -j$(nproc)
Hasil build berada di:
out/target/product/x86_64/
File penting:
kernel system.img ramdisk.img android_x86_64.iso
Analogi akademik:
Setara dengan kernel image + initramfs + root filesystem pada Linux/OpenWRT.
Emulator & Virtual Machine
Emulator Android (Konsep & Batasan)
Emulator:
- Mensimulasikan hardware
- Cocok untuk pengujian aplikasi
- Kurang cocok untuk pembelajaran OS level
- Dalam konteks mata kuliah ini, emulator bukan fokus utama.
Android x86 di Virtual Machine (Pendekatan Utama)
Menggunakan VirtualBox (selaras dengan Praktikum 1).
Langkah-langkah setup VM Android x86:
- Create VM
- Name: Android-x86
- Type: Linux
- Version: Other Linux (64-bit)
- Resource
- RAM: 4–8 GB
- CPU: 2–4 core
- Storage
- Attach ISO:
out/target/product/x86_64/android_x86_64.iso
- Boot & Install
- Pilih Install Android-x86 to harddisk
- Filesystem: ext4
- Install GRUB bootloader
- Boot Android x86
Verifikasi Android sebagai Sistem Operasi
Masuk ke Android shell:
adb shell
Cek kernel:
uname -a
Cek process:
ps -A | head
Observasi penting:
Android berjalan sebagai multi-process OS, dengan isolasi proses berbasis kernel Linux.
Mini Eksperimen (Hands-on, Fun & Menantang)
Beberapa eksperimen sederhana namun bermakna:
Matikan zygote:
stop zygote
→ UI berhenti (bukti zygote inti user space)
Observasi memori:
free -h
Bandingkan dengan Ubuntu:
ps aux
Insight:
Kernel sama, tetapi desain user space membentuk karakter OS.
Refleksi Akademik (OBE-Oriented)
Setelah bab ini, mahasiswa mampu:
- Membangun Android OS dari source
- Menjelaskan perbedaan Android device vs Android x86
- Menjalankan Android sebagai OS di VM
- Mengaitkan Android dengan konsep kernel Linux
- Melihat Android sebagai sistem operasi utuh
Penutup Bab ini menegaskan bahwa Android bukan black box. Dengan Android x86, mahasiswa:
bertransformasi dari pengguna Android menjadi pembangun sistem operasi Android.