OS: Android x86 from Scratch

From OnnoWiki
Jump to navigation Jump to search

BAB 14. Android x86 from Scratch Android x86 sebagai Objek Studi Sistem Operasi 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.



Pranala Menarik