The
kloader is the in-kernel bootloader for platforms that do not have a proper firmware.
Some platforms supported by
NetBSD do not have a firmware that can boot the
NetBSD kernel. Examples are game consoles (dreamcast port), and handhelds (hpcarm, hpcmips, and hpcsh ports). On such platforms the bootloader is usually a host program that runs under the native OS. This means that rebooting
NetBSD is a lengthy process of booting into the native OS first, launching the bootloader program, and finally booting
NetBSD again. This problem is addressed by
kloader, which allows the currently running kernel to serve as a bootloader for the kernel being booted, thus avoiding the burden of booting into the native OS first.
When
kloader is configured into the kernel, a call to
reboot(2) causes the
kloader to load the new kernel into memory, and arrange for control to be passed to the new kernel — just like a standalone bootloader does. The new kernel then boots in the ordinary manner.