cross-posted from: https://programming.dev/post/36342010
Nitro is a tiny process supervisor that also can be used as pid 1 on Linux.
There are four main applications it is designed for:
- As init for a Linux machine for embedded, desktop or server purposes
- As init for a Linux initramfs
- As init for a Linux container (Docker/Podman/LXC/Kubernetes)
- As unprivileged supervision daemon on POSIX systems
Nitro is configured by a directory of scripts, defaulting to /etc/nitro (or the first command line argument).
I’m a very mid-level Linux user. I use systemd because I’m just not familiar with how init systems actually work. I love that the choice is there, but I think systemd has it’s place with users like me that get confused.
That being said, I did run Dracut on EndeavourOS because it was recommended for that distro. I never dived into it to see what the exact difference was, though I do remember running into some things I needed to do that Dracut did differently. There may come a day when I dive into inits, but for now I’m just happy if my system boots to desktop.
Inits are simple. If you know gnu make, it’s about as complicated as you can make an init.
SystemD is not just an init. That’s the problem.
Dracut is an initramfs generator, not an init system. They do completely different things. You were still using systemd as an init system.
And I rest my case, lol. I don’t even know the difference between init and initramfs. It’s definitely a hole in my knowledge and I should know it going down the line, but I need the right time.
I’m here and there on what I want to learn at any moment. It’s not like I can’t learn, but it’s all about what interests me at the time. I learn things in a scattered manner, which admittedly is a horrible way to learn but its just how my brain works.