Closed supercomputer7 closed 3 days ago
I can see the value in splitting out
init
(and therefore integrating it into BuggieBox via the usual utility path), but I'm having my doubts that we want the user to go through BuggieBox on a normal booting system. Keep in mind that BusyBox will either keep all the various libraries mapped in memory or will eventually be statically linked, so it's not exactly ideal for the leanest boot and rescue environment.I can see the value in splitting out
init
(and therefore integrating it into BuggieBox via the usual utility path), but I'm having my doubts that we want the user to go through BuggieBox on a normal booting system. Keep in mind that BusyBox will either keep all the various libraries mapped in memory or will eventually be statically linked, so it's not exactly ideal for the leanest boot and rescue environment.
Why not ideal for the leanest boot and rescue environment
? I'd expect us to have support for initramfs in the future (see the containers PR) and by doing that we could use buggiebox from a RAMFS
instance, which should result in a fast load of commands.
The BuggieBox program is now the first program to run in the system, so it will initialize all the basic stuff once so SystemServer doesn't need to worry about this again in its main code.The
init
program is now the first program to run in the system, so it will initialize all the basic stuff once soSystemServer
doesn't need to worry about this again in its main code.In case the user requests this,
init
can drop directly to a shell without trying to spawn SystemServer.To test this on x86-64, run:
This functionality can be useful in many cases:
SystemServer
behaves badly or inconsistently.mount -a
failed for some reason (badfstab
entry is probably a reason here), so the system is in an inconsistent state, so proceeding with boot is not a good idea.