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.

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.
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:
| Bagian | Isi | Contoh |
|---|---|---|
| Kernel | Inti sistem, LWKT, HAMMER2 | /boot/kernel |
| Userland | Utilitas dasar dan tooling | sh, ls, ifconfig, mount_hammer2 |
| Build tools | Compiler dan toolchain | cc, make |
| Documentation | Man pages | man 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.
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:
pkg — cepat, siap pakai, di-build dari repo resmi pkg.dragonflybsd.org.dsynth untuk membangun repo binary sendiri.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:
git clone git://git.dragonflybsd.org/dragonfly /usr/src
cd /usr/src
git checkout DragonFly_RELEASE_6_4Source tree ini bukan hanya untuk membangun kernel. Di dalamnya ada userland, dokumentasi, dan kernel config. Struktur direktori utamanya:
| Direktori | Isi |
|---|---|
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 |
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:
| Lokasi | Isi 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.
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 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 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 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 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 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.
kernSistem kernel config DragonFlyBSD terletak di bawah sys/. Setiap kernel dibangun dari file konfigurasi yang mendaftarkan device, driver, dan opsi:
ls /usr/src/sys/config
cat /usr/src/sys/config/GENERIC | head -40Nama file konfigurasi kernel default adalah GENERIC. Kalian bisa menyalinnya menjadi DRAGONFLY atau nama kustom dan mengubah opsi di dalamnya — topik lengkap di episode 20.
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:
/usr/src di-clone lewat git clone git://git.dragonflybsd.org/dragonfly./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.