In many cases it is a good idea to just take these tools and configure them as needed. But in embedded systems that are highly optimized towards performance (fast boot time), storage (no waste of memory), security, and functionality, these generic tools might not fit perfectly. To achieve the abovementioned goals with systemd and dracut, a manual shrinking process from the feature-rich default configuration needs to be accomplished by developers. Security features such as configuration-file checking are not available on application level in systemd, dracut, and the Debian tools. These tools also heavily depend on shell interpreters, which might cause security concerns.
To overcome these limitations with focus on embedded devices, crinit and cominit were developed.
Learn more about crinit and cominit in our tech paper, which is published jointly with Elektrobit.
If you are interested in crinit and cominit please visit github. crinit and cominit are placed under MIT license and are be hosted on github as well as here. You are more than welcome to give feedback or even contribute.
You can find the full tech paper here.