Episode ini membedah arsitektur Alpine dari akarnya: musl libc versus glibc, BusyBox dengan konsep applet, package manager apk dengan repository main community dan testing, serta init system OpenRC. Kalian juga mengenali komponen utama seperti kernel dan setup-alpine.

Setelah memahami sejarahnya, saatnya membedah mesin di balik Alpine. Episode 2 menjelaskan empat lapis arsitektur yang hampir selalu disebut ketika orang membicarakan Alpine: musl libc, BusyBox, apk, dan OpenRC. Empat komponen inilah yang membuat Alpine berbeda dari distro mainstream.
Kenapa harus paham arsitektur? Karena hampir semua perilaku yang "aneh" di Alpine — binary yang tidak jalan, perintah yang hasilnya berbeda, service yang dikelola dengan cara lain — bisa dijelaskan oleh salah satu dari empat lapis ini. Setelah episode 2, kalian akan membaca gejala dan langsung tahu sumbernya.
musl adalah implementasi C standard library yang dirancang untuk kecepatan, ukuran kecil, dan keamanan memori. Ia menggantikan glibc yang dipakai Ubuntu, Debian, dan CentOS. Karena aplikasi berkomunikasi dengan kernel lewat libc, memilih libc menentukan kompatibilitas seluruh sistem.
Perbedaan utama yang wajib kalian tahu:
Periksa libc yang dipakai sistem:
/usr/bin/ldd --version 2>&1 | head -1
musl --versionOutput musl --version menampilkan versi musl seperti musl libc (x86_64) Version 1.2.5.
Karena musl, kebanyakan paket di repository Alpine di-compile ulang untuk musl. Aplikasi proprietary yang hanya menyediakan binary glibc — seperti beberapa tool dari vendor — memerlukan gcompat atau container glibc untuk berjalan. Di episode 14 kita akan menyelesaikan kasus ini.
BusyBox adalah satu binary yang berisi ratusan utilitas POSIX dalam satu file — disebut applet. busybox menyediakan versi minimal dari sh, ls, cp, grep, sed, ifconfig, dan banyak lagi. Saat kalian mengetik ls di Alpine, sebenarnya kalian menjalankan applet BusyBox, bukan GNU coreutils.
Lihat daftar applet yang tersedia:
busybox --list
busybox --help | head -20Konsekuensinya, beberapa opsi perintah GNU tidak tersedia. Misalnya ls --color di BusyBox memakai sintaks berbeda, dan grep BusyBox tidak mendukung beberapa flag GNU. Bila kalian butuh versi GNU penuh, install paket seperti coreutils:
apk add coreutils
ls --versionSetelah menginstall coreutils, perintah ls --version tersedia lengkap. Pola "default ringan, upgrade bila perlu" ini adalah ciri khas filosofi Alpine.
apk (Alpine Package Keeper) adalah package manager Alpine. Tidak seperti apt atau dnf, apk tidak punya lockfile dan selalu menyelesaikan dependency dengan algoritma SAT solver. Perintah intinya sederhana:
apk update
apk add nginx
apk del nginx
apk upgradeAlpine memiliki tiga tingkat repository yang didefinisikan di /etc/apk/repositories:
Baca repository aktif:
cat /etc/apk/repositories
apk search openssl | head -10Output cat /etc/apk/repositories menampilkan baris seperti https://dl-cdn.alpinelinux.org/alpine/v3.24/main.
OpenRC adalah init system berbasis script yang dikelola oleh OpenRC project (sekarang di bawah Gentoo). Ia menggantikan systemd: tidak ada daemon besar yang mengelola semuanya, melainkan script shell di /etc/init.d/ dengan konfigurasi di /etc/conf.d/. PID 1 memanggil init, yang kemudian menjalankan script-script ini secara paralel.
Service dikelola dengan rc-service dan rc-update:
rc-service sshd start
rc-update add sshd default
rc-statusPerintah rc-update add sshd default menambahkan sshd ke runlevel default sehingga start otomatis saat boot. Kita akan membedah OpenRC secara penuh di episode 5.
Alpine menyediakan dua kernel utama yang bisa dipilih saat install:
linux-edge sejak Alpine 3.23.Struktur konfigurasi utama Alpine yang perlu kalian kenali:
/etc/apk/ - konfigurasi apk dan repositori
/etc/network/ - interfaces dan networking
/etc/init.d/ - script service OpenRC
/etc/conf.d/ - variabel konfigurasi per service
/etc/modules - modul kernel yang dimuat saat bootsetup-alpine adalah wizard interaktif yang memandu instalasi dari awal: keymap, hostname, networking, repository, user, dan SSH. Kita akan menggunakannya penuh di episode 3. Struktur di atas menjadi peta yang akan kalian jelajahi di seluruh series.
Episode 2 membedah empat lapis arsitektur Alpine: musl libc yang kecil dan aman, BusyBox dengan ratusan applet dalam satu binary, apk dengan repository main community testing, dan OpenRC sebagai init system non-systemd. Kalian juga mengenali kernel linux-lts dan linux-stable serta struktur konfigurasi penting.
Inti yang harus dibawa pulang:
Di episode 3 selanjutnya kita akan melakukan instalasi dan setup dengan setup-alpine — mulai dari boot ISO, keymap, hostname, networking, pemilihan repository, user admin, SSH, hingga keputusan skema disk sys atau data.