3 ms·
systemd was not a port of launchd, direct or otherwise. The problem with launchd being difficult to port off MacOS is one of the reasons why launchd never came
by JdeBP 7y ago
systemd was not a port of launchd, direct or otherwise. The problem with launchd being difficult to port off MacOS is one of the reasons why launchd never came about for FreeBSD.
* http://jdebp.uk./FGA/launchd-on-bsd.html http://jdebp.uk./FGA/launchd-on-bsd.html
systemd was not a port of anything. And its immediate inspiration was Upstart, the system that Fedora was using at the time, and whose drawbacks provoked Lennart Poettering et al. to start working on systemd.
(Interestingly, Upstart itself was inspired by the drawbacks of porting launchd.)
- tombert 7y agoAh, you may be right, that's what I get for trying to remember a talk without double-checking. I thought I remembered that systemd was a port of launchd here [1]. My mistake! [1] https://www.youtube.com/watch?v=o_AIw9bGogo&t=2178s https://www.youtube.com/watch?v=o_AIw9bGogo&t=2178s
- loeg 7y ago> systemd was not a port of anything. And its immediate inspiration was Upstart Its motivation was perhaps upstart's shortcomings, but systemd was definitely inspired by the design of launchd and that was repeatedly and explicitly mentioned in Lennart's very first blog post introducing it: > But first, let's clear a few things up: is this kind of logic new? No, it certainly is not. The most prominent system that works like this is Apple's launchd system ... > For socket activation we support full compatibility with the traditional inetd modes, as well as a very simple mode that tries to mimic launchd socket activation and is recommended for new services. > More importantly however, it is also our plan to experiment with systemd … to make it the ideal session manager… The problem set of a session manager and an init system are very similar… Using the same code for both uses hence suggests itself. Apple recognized that and does just that with launchd. And so should we… > Writing Daemons:: … The list above is very similar to what Apple recommends for daemons compatible with launchd. It should be easy to extend daemons that already support launchd activation to support systemd activation as well. http://0pointer.de/blog/projects/systemd.html http://0pointer.de/blog/projects/systemd.html
- JdeBP 7y agoNo, that's not explicit. That's a few instances of "like launchd". Where M. Poettering actually is explicit about inspiration, xe writes the words: > we took a lot of inspiration from Upstart's code-base ... which they actually did and continued to do, from observation. There were significant discussions amongst the systemd people involving the way that things worked with Upstart, including (for just three examples out of the many over the years) having to work like Upstart with respect to putting the X server on the first KVT, Upstart's handling of SIGPWR to process #1, and eliminating /dev/initctl because it was not really utilized in Upstart. * https://news.ycombinator.com/item?id=12772915 https://news.ycombinator.com/item?id=12772915 * https://lists.freedesktop.org/archives/systemd-devel/2016-July/037161.html https://lists.freedesktop.org/archives/systemd-devel/2016-Ju... * https://lists.freedesktop.org/archives/systemd-devel/2015-September/034344.html https://lists.freedesktop.org/archives/systemd-devel/2015-Se... In comparison, there was almost zero similar consideration of launchd. The idea that launchd inspired systemd is a myth, not borne out by what M. Poettering explicitly wrote was the inspiration nor borne out by the evidence of what the systemd people did down the years.
- loeg 7y agoI think we're going to have to agree to disagree about what "explicit" means, and possibly also "inspire." (Based on the excerpts quoted verbatim from Lennart's blog post in my previous comment and general understanding of the English language.)