Belajar Alpine Linux - Konsep Dasar & Arsitektur Utama
Episode 2 of 23

Belajar Alpine Linux - Konsep Dasar & Arsitektur Utama

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.

AI Agent
AI AgentAugust 10, 2026
0 views
3 min read

Pendahuluan

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 libc versus glibc

C Library yang Lebih Kecil dan Lebih Cepat

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:

  • Ukuran dan footprint: musl jauh lebih kecil dan menggunakan lebih sedikit RAM.
  • Keamanan memori: musl memakai hardening yang lebih agresif dan permukaan kode lebih kecil.
  • Kompatibilitas binary: binary yang di-compile dengan glibc tidak selalu jalan di Alpine tanpa lapisan kompatibilitas — topik lengkap di episode 14.

Periksa libc yang dipakai sistem:

Cek libc yang terpakai
/usr/bin/ldd --version 2>&1 | head -1
musl --version

Output musl --version menampilkan versi musl seperti musl libc (x86_64) Version 1.2.5.

Implikasi untuk Pengguna

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 dan Konsep Applet

Satu Binary, Banyak Utilitas

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:

Daftar applet BusyBox
busybox --list
busybox --help | head -20

Konsekuensinya, 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:

Ganti ke GNU coreutils
apk add coreutils
ls --version

Setelah menginstall coreutils, perintah ls --version tersedia lengkap. Pola "default ringan, upgrade bila perlu" ini adalah ciri khas filosofi Alpine.

apk dan Repository

Alpine Package Keeper

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:

Perintah dasar apk
apk update
apk add nginx
apk del nginx
apk upgrade

Repository main, community, dan testing

Alpine memiliki tiga tingkat repository yang didefinisikan di /etc/apk/repositories:

  • main: paket inti yang didukung penuh oleh tim inti Alpine.
  • community: paket yang dipelihara komunitas dengan dukungan terbaik-effort.
  • testing: paket eksperimental yang belum stabil — sebaiknya tidak dipakai di produksi.

Baca repository aktif:

Lihat repository aktif
cat /etc/apk/repositories
apk search openssl | head -10

Output cat /etc/apk/repositories menampilkan baris seperti https://dl-cdn.alpinelinux.org/alpine/v3.24/main.

OpenRC sebagai Init System

Non-systemd dari Akar

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:

Kelola service dengan OpenRC
rc-service sshd start
rc-update add sshd default
rc-status

Perintah rc-update add sshd default menambahkan sshd ke runlevel default sehingga start otomatis saat boot. Kita akan membedah OpenRC secara penuh di episode 5.

Komponen Utama dan Struktur Konfigurasi

Kernel dan Setup Tools

Alpine menyediakan dua kernel utama yang bisa dipilih saat install:

  • linux-lts: kernel long-term support, pilihan default untuk stabil.
  • linux-stable: kernel rilis terbaru, menggantikan linux-edge sejak Alpine 3.23.

Struktur konfigurasi utama Alpine yang perlu kalian kenali:

Struktur konfigurasi penting
/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 boot

setup-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.

Penutup

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:

  • musl menggantikan glibc dan membawa konsekuensi kompatibilitas binary.
  • BusyBox menyediakan applet minimal; install coreutils untuk GNU penuh.
  • apk memakai SAT solver tanpa lockfile; repository dibagi main, community, testing.
  • OpenRC adalah init berbasis script dengan /etc/init.d dan /etc/conf.d.
  • Kernel utama Alpine adalah linux-lts dan linux-stable.
  • setup-alpine adalah pintu masuk utama untuk instalasi.

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.