bootsvc is (typically) the first program loaded by usermode (contrast with
userboot, which is loaded by the kernel).
several system services:
- A filesystem service with the contents of the bootfs (/boot)
- A loader service that loads from that bootfs
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
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.