bootsvc
is (typically) the first program loaded by usermode (contrast with userboot, which is loaded by the kernel). bootsvc
provides several system services:
After preparing these services, it launches one program from the bootfs. The program may be selected with a kernel command line argument bootsvc.next
(this default to bin/component_manager
currently). The launched program is provided with the bootfs mounted at /boot
and the loader service. bootsvc.on_next_process_exit
controls whether bootsvc reboots or shuts down the device when the process it starts exits. The kernel command line arguments are provided to it via envp
. See the documentation in system/core/bootsvc/main.cpp:LaunchNextProcess()
for more details.