“Do one thing well” - Unix philosophy
The init
When the Linux kernel finishes booting, it starts exactly one userspace process: PID 1. The kernel does not run services, configure the network, or start daemons — it hands off to PID 1 and says "do the rest." Two hard rules
- If PID 1 exits, the kernel panics. So something must always be PID 1.
- PID 1 must reap zombies. When any process's parent dies, its orphaned children get reparented to PID 1. When those orphans exit they become zombies until someone wait()s them. Only PID 1 can — if it doesn't, zombies pile up and exhaust the process table.
Philosophy of openrc
- openrc does not want to be PID 1 → you bring your own (sysvinit, busybox-init, fc-agent).
- openrc does not do logging → you bring your own (syslog).
- openrc does not do device management, DNS, time sync, login sessions, containers, timers, mounts → separate tools, each swappable.
- openrc is not a resident daemon → it's scripts + tiny tools, invoked then gone. State is plain files in /run/openrc you can cat and rm.
- Service definitions are shell scripts you can read and edit — not a declarative format interpreted by a big binary.
Openrc vs Systemd
Systemd PID 1 and the service manager and socket activation and (with journald/logind/udevd in the suite) logging, sessions, devices. It's always-resident - systemd literally is PID 1, running for the whole life of the machine.
openrc is only a service manager. It is deliberately not PID 1, and it has no resident daemon. rc-service, openrc-run, rc-update are tools — invoked, do work, exit. openrc was designed to sit on top of a separate, independent PID-1 init. That separation is its whole philosophy.
So on a real openrc system, what's PID 1? Not openrc. It's a separate, tiny init:
- sysvinit's /sbin/init (the classic /etc/inittab init) — the traditional pairing
- busybox init — what Alpine uses
- openrc-init — openrc's own minimal PID-1 binary (a separate program from the openrc service manager, shipped in the same project for people who want it)
systemd → an all-in-one appliance — washer+dryer+folder in one welded unit. Convenient, integrated, but you can't replace just the dryer, and you can't not have the whole thing.
openrc → a dishwasher. It washes dishes. It doesn't try to also be your fridge. Buy the fridge separately, swap either one anytime.