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

Belajar DragonFlyBSD - Konsep Dasar & Arsitektur Utama

Episode ini membongkar arsitektur DragonFlyBSD secara keseluruhan: base system (kernel + userland) dan DPorts sebagai lapisan aplikasi, struktur source tree yang di-clone lewat git, serta peran kernel LWKT, HAMMER2, newbee, NVMM, dan pkg dalam satu kesatuan sistem.

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

Pendahuluan

Di episode 1 sebelumnya kalian sudah mengenal sejarah DragonFlyBSD: fork FreeBSD 4.8, tiga pilar LWKT, HAMMER2, dan newbee, serta peta rilis hingga 6.4.2. Sekarang kita naik satu tingkat: membedah bagaimana sistem ini disusun. Memahami arsitektur bukan sekadar pengetahuan teori — ini menentukan cara kalian meng-install package, membangun kernel, dan memecahkan masalah di production.

Bayangkan DragonFlyBSD sebagai gedung perkantoran. Ada fondasi (kernel), lantai kerja (userland), dan penyewa yang datang dengan perlengkapan sendiri (DPorts). Episode ini adalah denah gedungnya: di mana letak tiap komponen, apa tugasnya, dan bagaimana mereka bekerja sama.

Arsitektur: Base System & DPorts

Base System

Base system adalah inti DragonFlyBSD yang dikembangkan bersama dalam satu source tree: kernel, C library, compiler, shell, dan ratusan utilitas dasar. Semua ini dikelola oleh tim DragonFlyBSD, dirilis bersama, dan diuji bersama. Konsep kuncinya adalah satu kesatuan yang koheren — bukan kumpulan komponen yang dirangkai oleh pengguna.

Base system dibagi menjadi beberapa bagian:

BagianIsiContoh
KernelInti sistem, LWKT, HAMMER2/boot/kernel
UserlandUtilitas dasar dan toolingsh, ls, ifconfig, mount_hammer2
Build toolsCompiler dan toolchaincc, make
DocumentationMan pagesman hammer2

Sistem ini self-contained: source tree di /usr/src berisi seluruh kode base system, sehingga kalian bisa membangun ulang semuanya — topik yang akan kita bahas di episode 20.

DPorts: Lapisan Aplikasi

Di atas base system berdiri DPorts — koleksi ratusan ribu recipe aplikasi pihak ketiga. DPorts adalah adaptasi dari FreeBSD ports, sehingga sebagian besar software di dunia Unix — dari web server hingga editor — tersedia. Pengguna punya dua jalur:

  • Binary packages lewat pkg — cepat, siap pakai, di-build dari repo resmi pkg.dragonflybsd.org.
  • Build dari source lewat DPorts — fleksibel, memungkinkan opsi kustom, dan menjadi bahan baku dsynth untuk membangun repo binary sendiri.

Source Tree via Git

Tidak seperti beberapa BSD lain, DragonFlyBSD menggunakan git sebagai version control — konsisten dengan dunia open source modern. Untuk mendapatkan source tree, clone langsung dari repo resmi:

Clone source tree DragonFlyBSD
git clone git://git.dragonflybsd.org/dragonfly /usr/src
cd /usr/src
git checkout DragonFly_RELEASE_6_4

Source tree ini bukan hanya untuk membangun kernel. Di dalamnya ada userland, dokumentasi, dan kernel config. Struktur direktori utamanya:

DirektoriIsi
sys/Kode kernel dan device driver
bin/, sbin/, usr.bin/, usr.sbin/Utilitas userland
lib/, libexec/Library dan helper
share/Dokumentasi, man pages, contoh konfigurasi
test/Test suite dan tooling pengembangan

Menavigasi Source Tree

Kebiasaan membaca source adalah keterampilan yang membedakan administrator biasa dari engineer sejati. Kapan pun kalian bertanya "bagaimana cara kerja hammer2?", jawabannya ada di source tree. Beberapa lokasi yang paling sering dikunjungi:

LokasiIsi yang Dicari
sys/vfs/hammer2/Implementasi filesystem HAMMER2
sys/kern/Kernel dan scheduler
sys/dev/Device driver
usr.sbin/Tool administrasi tingkat sistem

Mulailah dari yang kecil: less sebuah file kunci di sys/vfs/hammer2/ untuk melihat bagaimana konsep PFS dan snapshot benar-benar diimplementasikan. Membaca source tidak wajib untuk mengoperasikan sistem, tapi membuat setiap perintah yang kalian jalankan terasa lebih hidup.

Komponen Utama

Kernel: LWKT & Scheduler cpuset

Kernel DragonFlyBSD dirancang dengan LWKT (Lightweight Kernel Threading) sebagai dasar eksekusi. Setiap CPU memiliki run queue sendiri, dan per-process scheduler menentukan thread mana yang berjalan. Ini memberi kontrol halus: kalian bisa mengunci sebuah proses ke CPU tertentu dengan cpuset — sangat berguna untuk aplikasi latency-sensitive. Kernel dibangun dari konfigurasi yang bisa dikustomisasi, dan driver serta scheduler dikonfigurasi lewat sysctl dan loader.conf.

Userland & Tooling

Userland adalah sekumpulan utilitas yang sehari-hari kalian pakai. Beberapa yang khas DragonFlyBSD: mount_hammer2, hammer2, newfs_hammer2 untuk filesystem, rcorder untuk urutan boot, serta tooling jaringan standar seperti ifconfig, route, dan pfctl. Semua punya man page lengkap — man adalah sahabat terbaik sepanjang series ini.

HAMMER2

HAMMER2 adalah filesystem default dan hati dari sistem storage. Ia bekerja di level kernel dengan copy-on-write, checksum per block, dan struktur B-tree yang menampung metadata. Pengguna berinteraksi dengannya lewat tiga perintah utama: newfs_hammer2 (format), mount_hammer2 (mount), dan hammer2 (manajemen PFS, snapshot, dedup). Kita akan membedahnya mulai episode 8.

newbee: Network Stack Kustom

newbee adalah upaya menulis ulang network stack DragonFlyBSD. Tujuannya: model yang lebih modern, cleaner, dan lebih mudah dipahami daripada stack warisan. Ia mempengaruhi cara kerja interface, tunneling, dan virtual networking. Untuk administrasi sehari-hari, kalian tetap berinteraksi lewat ifconfig dan route — tetapi di bawahnya berjalan mesin yang berbeda dari BSD lain.

NVMM: Hypervisor

NVMM adalah hypervisor tipe-2 bawaan DragonFlyBSD. Ia menyediakan primitif virtualisasi CPU dan memori yang diintegrasikan dengan QEMU lewat package qemu. Ini membedakan DragonFlyBSD dari kebanyakan BSD lain yang bergantung pada hypervisor pihak ketiga. Di episode 18 kita akan membuat VM Linux dan FreeBSD di atas NVMM.

pkg & dsynth

pkg adalah frontend untuk binary packages, sementara dsynth adalah tool untuk membangun seluruh repo package dari DPorts secara paralel — berguna untuk mirror atau build binary kustom. Keduanya akan dibahas tuntas di episode 4.

Kernel Config: kern

Sistem kernel config DragonFlyBSD terletak di bawah sys/. Setiap kernel dibangun dari file konfigurasi yang mendaftarkan device, driver, dan opsi:

Menampilkan kernel config aktif
ls /usr/src/sys/config
cat /usr/src/sys/config/GENERIC | head -40

Nama file konfigurasi kernel default adalah GENERIC. Kalian bisa menyalinnya menjadi DRAGONFLY atau nama kustom dan mengubah opsi di dalamnya — topik lengkap di episode 20.

Penutup

Di episode 2 ini kalian telah memahami arsitektur DragonFlyBSD secara keseluruhan: base system (kernel + userland) yang koheren, DPorts sebagai lapisan aplikasi, source tree yang di-clone via git, serta peran kernel LWKT, userland, HAMMER2, newbee, NVMM, pkg, dan kernel config dalam satu kesatuan sistem.

Inti yang harus dibawa pulang:

  • Base system adalah satu kesatuan kernel + userland; DPorts adalah lapisan aplikasi di atasnya.
  • Source tree di /usr/src di-clone lewat git clone git://git.dragonflybsd.org/dragonfly.
  • Kernel LWKT, HAMMER2, newbee, dan NVMM adalah komponen yang membuat DragonFlyBSD berbeda.
  • Kernel config berada di /usr/src/sys/config dengan GENERIC sebagai default.
  • man, sysctl, dan struktur /usr/src adalah peta navigasi kalian sepanjang series.

Di episode 3 selanjutnya kita akan mempraktikkan semua konsep ini ke dunia nyata: instalasi & partisi. Kalian akan memandu installer berbasis teks, memilih sets (kern, base, comp, man), mengatur network dan swap, lalu membuat partisi GPT/MBR dengan disklabel dan menempatkan HAMMER2 sebagai filesystem utama.