Belajar FreeBSD - Konsep Dasar & Arsitektur Utama
Episode 2 of 23

Belajar FreeBSD - Konsep Dasar & Arsitektur Utama

Memahami arsitektur FreeBSD: base system yang menyatukan kernel dan userland, ports tree untuk source, dan packages `pkg` untuk binary. Kalian juga akan mengenal komponen utama: kernel modular, bootloader, rc system, filesystem, jails, pf, dan bhyve yang bekerja sebagai satu sistem terpadu.

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

Pendahuluan

Di episode 1 sebelumnya kalian sudah memahami sejarah FreeBSD dan filosofi di baliknya. Sekarang saatnya masuk lebih dalam ke arsitektur dan konsep dasar — peta teknis yang akan kalian pakai di seluruh episode berikutnya.

FreeBSD sering digambarkan sebagai sistem "satu paket": kernel, userland, dan tooling dibangun dari source tree yang sama. Tapi apa sebenarnya isi paket itu, dan bagaimana komponen-komponennya bekerja sama? Episode ini akan membedah tiga pilar distribusi software — base system, ports, dan packages — lalu mengenalkan komponen inti sistem.

Tiga Pilar Distribusi Software

FreeBSD mendistribusikan software melalui tiga jalur yang saling melengkapi. Memahami perbedaannya adalah kunci membaca hampir semua dokumentasi FreeBSD.

Base System

Base system adalah inti FreeBSD: kernel, utilitas dasar, compiler, library, dan dokumentasi yang dikembangkan bersama dan dirilis sebagai satu kesatuan. Ketika kalian menginstal FreeBSD, inilah yang pertama kali masuk ke disk. Pembaruannya dilakukan dengan freebsd-update yang memastikan base system selalu sinkron sebagai unit tunggal:

Memperbarui base system
freebsd-update fetch
freebsd-update install

Karena base system adalah unit utuh, tidak ada istilah "paket setengah terpasang" untuk komponen inti. Versi kernel dan userland selalu kompatibel satu sama lain — inilah sumber kestabilan yang melegenda.

Ports Tree

Ports tree adalah koleksi skrip dan metadata untuk membangun ribuan aplikasi dari source. Berada di /usr/ports, setiap port mendeskripsikan cara mengunduh source, menerapkan patch, dan mengompilasi. Ini adalah jalur yang paling fleksibel — kalian mengontrol flag kompilasi dan optimasi untuk hardware spesifik.

Menjelajah struktur ports
ls /usr/ports/www
cat /usr/ports/www/nginx/Makefile | head -20

Packages pkg

Packages adalah hasil jadi dari ports: binary yang sudah dikompilasi dan siap diinstal. Diurus oleh package manager pkg, jalur ini jauh lebih cepat dan tidak memerlukan toolchain di sistem. Package adalah pilihan default untuk sebagian besar pengguna.

Info

Ports dan packages berbagi basis yang sama: package dibangun dari port. Karena itu, nama dan opsi yang kalian lihat di /usr/ports adalah sumber kebenaran, sementara pkg hanyalah kendaraan distribusinya.

Komponen Utama FreeBSD

Kernel: Modular dan Dinamis

Kernel FreeBSD bersifat modular. Fitur seperti ipfw, bhyve, atau netgraph bisa dimuat dan dibuang saat runtime dengan kldload, kldunload, dan dilihat dengan kldstat:

Mengelola modul kernel
kldstat
kldload if_lagg
kldunload if_lagg

Biasanya modul yang paling sering dipakai sudah dikompilasi ke dalam kernel GENERIC yang dirilis bersama FreeBSD. Konfigurasi kernel kustom untuk kebutuhan khusus (seperti membuang modul yang tidak perlu di appliance) dibahas di episode 18.

Userland: Tools BSD

Di atas kernel, FreeBSD menyediakan userland — seluruh utilitas yang kalian ketik setiap hari: ls, cp, sed, pw, mount, dan lainnya. Semua ditulis dan diuji bersama kernel, sehingga konsistensi antar tool sangat tinggi. Tidak ada perang versi GNU vs BSD seperti di ekosistem Linux.

Bootloader dan loader.conf

Urutan boot FreeBSD dimulai dari firmware (UEFI atau BIOS), lalu bootloader, kemudian kernel. Konfigurasi boot disimpan di /boot/loader.conf — kalian bisa mengatur parameter kernel, ukuran ramdisk, dan modul yang dimuat sebelum sistem penuh menyala:

Contoh /boot/loader.conf
cat /boot/loader.conf

Parameter di file ini sering dipakai untuk tuning awal, seperti kern.maxfiles atau batas memori ZFS ARC, yang akan kita bahas di episode 18.

rc System untuk Service

Manajemen service FreeBSD menggunakan rc system bergaya SysV. Konfigurasi terpusat di /etc/rc.conf, dan skrip layanan ada di /etc/rc.d serta /usr/local/etc/rc.d untuk software dari pkg. Dengan sysrc, kalian bisa mengubah konfigurasi service tanpa mengedit file manual:

Mengaktifkan sshd via sysrc
sysrc sshd_enable="YES"
service sshd start

Filesystem: UFS dan ZFS

FreeBSD mendukung dua filesystem utama. UFS adalah pendamping setia dari era Unix klasik — cepat, sederhana, dan dapat diandalkan. ZFS adalah filesystem modern dengan checksum, snapshot, compression, dan pooling yang menjadi pilihan default instalasi sejak beberapa rilis terakhir.

Memeriksa filesystem dan pool ZFS
df -h
zpool status

Jails, pf, dan bhyve

Tiga komponen terakhir ini adalah bintang produksi FreeBSD:

  • Jails — containerisasi OS-level yang mengisolasi proses dengan filesystem, jaringan, dan user mereka sendiri.
  • pf — packet filter bawaan yang kuat untuk firewall, NAT, dan load balancing.
  • bhyve — hypervisor tipe-2 bawaan untuk menjalankan VM Linux maupun FreeBSD.

Ketiganya akan dibahas mendalam di episode 12-16, tapi penting untuk mengenalnya sekarang karena mereka adalah bagian tak terpisahkan dari arsitektur, bukan add-on terpisah.

Warning

Jangan tergoda menganggap jails seperti Docker secara mental. Jails mengisolasi seluruh sistem operasi (bukan hanya proses), berbagi kernel host, dan dikonfigurasi lewat jail.conf. Konsep yang berbeda menghasilkan cara pakai yang berbeda — jails dibahas di episode 15.

Struktur Direktori yang Perlu Dikenal

Beberapa direktori khas FreeBSD yang wajib kalian pahami:

DirektoriIsi
/etcKonfigurasi base system
/etc/rc.confPusat konfigurasi service
/usr/localSoftware dari pkg dan ports
/usr/portsPorts tree untuk build dari source
/bootBootloader, kernel, dan loader.conf
/var/logLog sistem

Perhatikan bahwa FreeBSD konsisten menaruh software pihak ketiga di /usr/local, memisahkannya dari base system di /usr dan /bin. Konvensi ini menjaga kejelasan dan memudahkan pembaruan.

Penutup

Di episode 2 ini kalian sudah memahami arsitektur FreeBSD: base system sebagai unit utuh, ports tree untuk source, dan packages pkg untuk binary. Kalian juga mengenal komponen utama — kernel modular, userland BSD, bootloader dengan loader.conf, rc system, filesystem UFS/ZFS, serta jails, pf, dan bhyve sebagai kekuatan produksi.

Inti yang harus dibawa pulang:

  • Base system menyatukan kernel dan userland; perbarui dengan freebsd-update.
  • Ports menyediakan fleksibilitas build dari source; pkg menyediakan kecepatan binary.
  • Kernel bersifat modular; kelola dengan kldload dan kldstat.
  • Konfigurasi service terpusat di /etc/rc.conf; ubah dengan sysrc.
  • UFS dan ZFS adalah dua filesystem utama, dengan ZFS sebagai default modern.
  • Jails, pf, dan bhyve adalah komponen produksi bawaan yang dibahas lebih dalam nanti.

Di episode 3 selanjutnya kita akan langsung praktik: instalasi FreeBSD dengan bsdinstall dan partitioning — dari langkah-langkah wizard instalasi, pilihan keymap dan hostname, sampai keputusan partisi antara ZFS default dan UFS tradisional. Siapkan image ISO yang sudah kalian unduh di episode 0!