Membedah arsitektur utama NetBSD: base system, kernel modular, userland, rump kernels, dan build system build.sh, serta memahami perbedaan antara -current, stable, dan release yang akan menemani sepanjang series.

Di episode 1 sebelumnya kita telah menelusuri sejarah NetBSD — dari 386BSD pada 1993 hingga rilis 11.0 di 2026 — dan memahami mengapa portabilitas menjadi jiwa proyek ini. Sekarang saatnya masuk ke dalam mesin: pada episode ini kita akan membedah konsep dasar dan arsitektur utama NetBSD — bagaimana sistem ini disusun, apa saja komponen-komponennya, dan bagaimana hubungan antar komponen tersebut bekerja.
Mengapa memahami arsitektur penting? Karena hampir semua yang akan kalian lakukan di episode-episode berikutnya — instalasi, build kernel, package management, networking, bahkan embedded — adalah manipulasi terhadap arsitektur ini. Jika kalian paham bahwa base system dan pkgsrc adalah dua dunia yang terpisah, kalian tidak akan bingung mengapa update base system dan update package adalah dua hal yang berbeda. Mari kita bedah.
Pembagian paling fundamental di NetBSD adalah dua dunia yang terpisah tegas:
/usr/src dan dikontrol langsung oleh proyek NetBSD./usr/pkg dan tidak tercampur dengan base system.Kalian harus selalu ingat pembagian ini. Ketika kalian mengupdate NetBSD lewat build.sh distribution, itu memperbarui base system. Ketika kalian menjalankan pkg_add -u, itu memperbarui package pkgsrc. Keduanya berjalan berdampingan tanpa saling menimpa.
| Direktori | Isi |
|---|---|
/usr/src | Source tree base system (kernel + userland) |
/usr/pkgsrc | Source tree package pkgsrc |
/usr/pkg | Prefix instalasi package (bin, sbin, lib, etc) |
/etc | Konfigurasi sistem |
/usr/sbin | Administrasi tools |
/sys | Kernel source (symlink ke /usr/src/sys) |
ls -l /usr/pkg/bin
ls -l /usr/src/sys/archamd64 arm arm64 evbarm evbmips m68k mips powerpc riscv sparc64 ...Daftar direktori di /usr/src/sys/arch adalah bukti portabilitas NetBSD: setiap folder adalah arsitektur yang didukung kernel, dan semuanya dibangun dari source tree yang sama.
NetBSD memiliki tiga jalur pengembangan yang perlu kalian bedakan dengan jelas:
| Jalur | Deskripsi | Siapa yang Memakai |
|---|---|---|
-current | Cabang pengembangan terbaru, berubah setiap saat | Pengembang, pengujian fitur baru |
netbsd-N (stable) | Cabang rilis yang dirawat, hanya menerima backport perbaikan | Production, sebagian besar pengguna |
release | Snapshot yang dirilis formal (misal 11.0) | Pengguna yang menginginkan stabilitas maksimal |
Untuk production, pakailah stable branch seperti netbsd-11. Kalian bisa melihat jalur yang sedang kalian jalankan lewat uname -a atau sysctl kern.version:
uname -a
sysctl kern.versionNetBSD hostname 11.0 NetBSD 11.0 (GENERIC) #0: Thu Jul 30 12:00:00 UTC 2026
NetBSD 11.0 (GENERIC) #0: Thu Jul 30 12:00:00 UTC 2026
root@build02:/build/src/sys/arch/amd64/compile/GENERICKernel NetBSD dirancang modular. Driver dan subsistem bisa dimuat dan dibongkar secara dinamis lewat modload, modunload, dan modstat. Kernel inti bisa dikecilkan sesuai kebutuhan — inilah salah satu alasan NetBSD sangat cocok untuk embedded.
modstatNAME CLASS SOURCE REFS SIZE
acpi misc - 0 101
pf network - 0 60
npf network - 0 82Perhatikan baris npf dan pf pada contoh di atas — firewall pun bisa berupa module. Di episode 9 kita akan membedah kernel module secara mendalam.
Salah satu keunikan NetBSD adalah rump kernels — kemampuan menjalankan driver dan subsistem kernel di userspace sebagai proses biasa. Ini memungkinkan pengujian filesystem, network stack, dan driver tanpa perlu reboot atau mesin terpisah. Di episode 17 kita akan menggunakannya secara langsung untuk mem-boot filesystem di userspace.
Base system NetBSD berisi userland lengkap: shell, editor, compiler, network tools, dan utility administrasi. Ciri khasnya adalah kebersihan dan konsistensi — semua tools mengikuti konvensi yang sama, dan dokumentasi man tersedia lengkap. Kapanpun ragu, bacalah man:
man sysctlNetBSD adalah sistem source-based. Seluruh base system dibangun dengan build.sh — script yang mengatur toolchain, kernel, dan userland dalam satu alur. Ini membedakannya dari sistem yang hanya menyediakan binary prebuilt. Alurnya kira-kira begini:
| Tahap build.sh | Fungsi |
|---|---|
build.sh tools | Membangun toolchain (compiler, binutils) |
build.sh kernel=GENERIC | Membangun kernel untuk arsitektur target |
build.sh distribution | Membangun seluruh userland + sets |
build.sh release | Membuat release lengkap dalam RELEASEDIR |
Di episode 10 kita akan menjalankan seluruh alur ini. Yang penting sekarang adalah memahami bahwa NetBSD memberi kalian kemampuan untuk membangun seluruh sistem dari source — tanpa rahasia tertutup.
sysctl adalah pintu untuk membaca dan mengatur parameter kernel secara runtime. Hampir semua tuning di NetBSD melewati tool ini, dan kalian akan memakainya di banyak episode — dari memeriksa versi kernel hingga mengatur keamanan.
sysctl hw.model
sysctl kern.ostype
sysctl net.inet.ip.forwardinghw.model = Intel(R) Xeon(R) CPU E5-2620 v4 @ 2.10GHz
kern.ostype = NetBSD
net.inet.ip.forwarding = 0Setelah memahami arsitektur, mari susun alur kerja umum seorang pengguna NetBSD:
sysinst (episode 3).pkg_add atau build dari pkgsrc (episode 4).Pada episode 2 ini, kalian telah membedah arsitektur utama NetBSD: pembagian tegas antara base system dan pkgsrc, alur pengembangan -current/stable/release, serta komponen-komponen inti seperti kernel modular, rump kernels, build system build.sh, dan sysctl.
Inti yang harus dibawa pulang:
netbsd-11) untuk production.modload, modunload, dan modstat.Di episode 3 selanjutnya kita akan memulai perjalanan hands-on yang sesungguhnya: instalasi NetBSD dengan sysinst — mulai dari partisi disk dengan fdisk dan disklabel, memilih sets yang tepat, hingga boot pertama yang sukses. Siapkan VM kalian, karena kita akan benar-benar mengetik! Sampai jumpa di episode 3!