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

Belajar Void Linux - Konsep Dasar & Arsitektur Utama

Episode ini memetakan arsitektur Void Linux dari lapisan kernel hingga package manager. Kalian akan memahami bagaimana runit menjadi PID 1 lewat runsvdir, bagaimana XBPS mengelola paket, serta peran tiap komponen seperti xbps-install dan xbps-query dalam ekosistem Void.

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

Pendahuluan

Setelah mengenal sejarah Void di episode 1, saatnya membedah arsitekturnya. Episode 2 memetakan bagaimana Void tersusun dari bawah ke atas: kernel, libc, init system, dan package manager. Memahami arsitektur ini adalah kunci agar perintah-perintah di episode berikutnya tidak terasa seperti hafalan buta.

Void punya pola yang jelas: setiap lapisan punya satu pekerjaan yang sederhana. Kernel mengelola perangkat keras, runit mengelola proses, dan XBPS mengelola paket. Tidak ada layanan omnibus yang mengerjakan semuanya sekaligus.

Mari kita susun peta arsitektur Void Linux lapis demi lapis.

Peta Arsitektur Void

Dari Kernel hingga Userland

Void Linux dibangun di atas kernel Linux yang dikemas oleh Void sendiri. Di atas kernel ada libc — glibc atau musl sesuai pilihan saat instalasi. Di atas libc, seluruh userland berjalan: shell, utilitas, dan aplikasi.

Gambaran susunan lapisannya:

Lapisan arsitektur Void
Aplikasi dan service
--------------------------
Libc (glibc / musl)
--------------------------
Kernel Linux (linux / linux-lts)
--------------------------
Perangkat keras

Pilihan libc menentukan bagaimana aplikasi dikompilasi dan dijalankan, sementara pilihan kernel menentukan kompatibilitas dengan perangkat keras. Keduanya dipilih saat instalasi dan bisa diubah belakangan, seperti yang akan kita bahas di episode 6 dan 11.

runit sebagai PID 1

Saat sistem boot, kernel menjalankan init pertama yang ditunjuk pada baris init= di GRUB. Di Void, proses pertama itu adalah runit, yang kemudian meluncurkan runsvdir — supervisornya. runsvdir menjalankan supervisor per-service bernama runsv untuk setiap service yang diaktifkan lewat symlink di /var/service/.

Alur boot-nya seperti ini:

Alur boot Void
Kernel -> runit -> runsvdir -> runsv per service

Setiap service adalah direktori di /etc/sv/ berisi skrip run. Detail lengkapnya akan kita praktikkan di episode 5.

Komponen Utama XBPS

xbps-install: Memasang dan Upgrade Paket

xbps-install adalah pintu gerbang utama untuk memasang paket. Sinkronkan repositori dengan -S, lalu install nama paket:

Sinkronisasi dan install paket
sudo xbps-install -S
sudo xbps-install htop

Perintah xbps-install -S memperbarui index repositori, sedangkan xbps-install htop memasang paket beserta dependensinya. Untuk upgrade seluruh sistem, gunakan xbps-install -Su seperti di episode 1.

xbps-query: Mencari dan Menelisik Paket

xbps-query digunakan untuk menanyakan basis data paket. Cari paket berdasarkan nama atau deskripsi dengan -s, lihat paket terpasang dengan -l, dan cek berkas milik sebuah paket dengan -f:

Query paket di Void
xbps-query -s 'nginx'
xbps-query -l | wc -l
xbps-query -f nginx | head

Output xbps-query -l adalah daftar semua paket terpasang. Menghitungnya dengan wc -l memberi gambaran seberapa ramping sistem kalian.

xbps-remove dan xbps-reconfigure

Untuk menghapus paket beserta dependensi yang tidak terpakai, gunakan xbps-remove dengan opsi -R. Sementara xbps-reconfigure dipakai untuk menjalankan ulang skrip konfigurasi sebuah paket — misalnya setelah kalian mengubah skrip service:

Hapus dan reconfigure paket
sudo xbps-remove -R htop
sudo xbps-reconfigure -f openssh

Opsi -f pada xbps-reconfigure -f openssh memaksa eksekusi ulang konfigurasi openssh meskipun tidak ada perubahan versi.

xbps-pkgdb: Pemeriksaan Kesehatan Basis Data

xbps-pkgdb memeriksa konsistensi basis data paket. Jalankan dengan opsi -a untuk memeriksa semua paket:

Cek kesehatan basis data paket
sudo xbps-pkgdb -a

Perintah xbps-pkgdb -a melaporkan paket yang file-nya hilang, ownership yang salah, atau masalah lainnya. Ini adalah langkah pertama yang tepat saat sistem terasa aneh.

xbps-src dan void-packages

Membangun Paket dari Source

xbps-src adalah build system Void yang bekerja di dalam repo void-packages. Ia memungkinkan kalian menyusun paket dari source code, bahkan paket yang tidak tersedia di repositori biner. Alur dasarnya:

Alur xbps-src
Template paket -> xbps-src pkg -> paket biner lokal

Template paket berisi metadata seperti nama, versi, dependensi, dan langkah build. Episode 15 akan membahasnya secara penuh.

Penutup

Episode 2 memetakan arsitektur Void Linux: kernel di bawah, libc di tengah, dan aplikasi di atas, dengan runit sebagai PID 1 yang menjalankan runsvdir untuk mengawasi service. Kalian juga mengenal peran tiap komponen XBPS — dari xbps-install, xbps-query, xbps-remove, xbps-reconfigure, hingga xbps-pkgdb.

Inti yang harus dibawa pulang:

  • Arsitektur Void tersusun dari kernel, libc, userland, dan init.
  • runit adalah PID 1 yang meluncurkan runsvdir dan runsv per service.
  • Service runit adalah direktori berisi skrip run.
  • xbps-install dipakai untuk install dan upgrade paket.
  • xbps-query dipakai untuk mencari dan menelisik paket.
  • xbps-src dan void-packages dipakai untuk membangun dari source.

Di episode 3 selanjutnya kita akan mempraktikkan instalasi dan setup awal — memakai void-installer untuk mempartisi disk, mengatur user, network, dan bootloader, lalu menyetel hostname, timezone, dan repositori agar sistem siap dipakai sehari-hari.