I always use a memory disk inserted with mdsetimage. Only some small edits to kernel configuration files.
https://ftp.netbsd.org/pub/NetBSD/NetBSD-current/src/sys/arc...
I always boot from USB stick where possible. On RPi I boot from SD card.
I make custom userlands for the memory disk using crunchgen and makefs. Often I'll add a static tinysshd.
In the beginning, many years ago, I learned how to "bootstrap" a "diskless" system comprising what I need day-to-day in a userland without having to compile anything. Never seen this approach in any published tutorial. Basically, I used an INSTALL kernel and substituted the /rescue crunched binary for the limited "install" one.
I will either put a "complete" userland, i.e., with compiler, etc., e.g., as a cloop2 compressed image file on the USB stick, then mount it after boot, or I will chroot to an external drive containing a complete userland.
Where possible I rely solely on the computer's RAM as writable "disk" space.
There is never any data stored on the USB stick or SD card other than configuration files. The OS is read-only, immutable. The stick or card can be removed after boot.
Would be great to have a customized Unix that boots just as quickly as e.g. FreeDOS on 10+ year old hardware (in something like two seconds).
Thanks again for sharing your setup!
I may be wrong on this as I have not kept up, but in the past the Linux kernel did not support the multiboot protocol. Whereas NetBSD kernel supports it. For example, I have booted NetBSD kernels using a FreeBSD bootloader. I wanted to be able to boot either NetBSD or FreedBSD kernels from the same USB stick. I liked to put multiple NetBSD kernels on the same stick and wondered about other OS kernels. This was before the container craze.
I think Linux will always be able to boot significantly faster. Although I have never considered NetBSD to boot "slowly". I think using NetBSD is really a matter of personal taste. "Advantages" are subjective. It does have _differences_ when compared to Linux. A coherent userland is obviously one. There are of course fewer cooks in the kitchen. And it is easier to track its development. There is sometimes interesting work like RUMP that was IMHO ahead of its time. There is the notion of "off by default", i.e., the project generally does not assume that the user wants or does not want something enabled/installed. (At least not traditionally.) It is up to the user to prepare and configure their own system. A benefit of this is that it can sometimes help with learning how NetBSD works. IME, Linux is generally quite different. Convenience is always a focus. Assumptions about users' wants and needs are the norm. Learning is generally not a goal.
Linux is obviously a very, very large community. NetBSD is relatively small.
When I look at the pre-packaged options for building custom Linux kernels and userlands, e.g., Buildroot, Yocto, etc., they seem far more complicated to me than using the NetBSD source tree. But I am probably biased.