I think this is the way. sysinit is getting kind of big, though. Its purpose is to (1) initialize the system and (2) provide essential services, which tbh may be separate jobs. The essential services it provides are:
- Process manager
- Loader & driver loader
- Memory manager
- Physical memory manager
- Bootstrap filesystem
Some of these can probably be removed to separate daemons