I'm looking for a comparison between the architectures of systemd and launchd. I've heard both criticized as being anti-unix, but the only real criticism of launchd I've read is the merging of crond into init.
For example, the major feature systemd brought (in my opinion) is socket activation paired with dependency management, which both decreases boot time and simplifies process management. This provides init with more information, and many of the features naturally follow. It looks like launchd offers a similar feature set (registering daemons as opposed to immediately starting them), but I haven't used launchd, so I don't know what exactly it brings to the table. I have used upstart, so comparisons there would also be helpful.
I've read the launchd wiki page, which states what it replaces, but I still don't understand how it works. Specifically, I have these questions:
It looks like there's significant interest in launchd in the FreeBSD community, so I'd like to understand it before I form any long-term opinions/potentially help out.
For example, the major feature systemd brought (in my opinion) is socket activation paired with dependency management, which both decreases boot time and simplifies process management. This provides init with more information, and many of the features naturally follow. It looks like launchd offers a similar feature set (registering daemons as opposed to immediately starting them), but I haven't used launchd, so I don't know what exactly it brings to the table. I have used upstart, so comparisons there would also be helpful.
I've read the launchd wiki page, which states what it replaces, but I still don't understand how it works. Specifically, I have these questions:
- Does launchd require (or at least strongly encourage) changes to daemons like systemd?
- Does launchd have enough information about processes to analyze boot times (i.e. does it replace bootchart)?
- Is there a concept of runlevels (like systemd's targets)? If so, how do they work?
It looks like there's significant interest in launchd in the FreeBSD community, so I'd like to understand it before I form any long-term opinions/potentially help out.