Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

There must be buy-in for a reason.

My impression, at least with systemd, is:

1) systemd put in a whole bunch of work to be backward compatible. They make migration easier, at the cost of some complexity within the codebase. It supports some compatibility with init shell scripts and has inetd compatibility.

If you want to take a dim view of it, it's a little bit like Microsoft's "embrace and extend". systemd has "good" properties for adoption. They do seem to engineer aggressively for adoption, rather than just trying to make the best technical solution. Pottering does have a good understanding of these politics, which makes people angry.

2) Features. Other systems are more "modular", but don't cover as much ground. There are some supervision toolkits like daemontools and runit, but they are meant more for servers. These systems leave it up to end users to do more work. systemd you can kind of drop in and it mostly works, until you have to debug it.

Again, this is sort of like Microsoft. You can stuff in features to satisfy all the different camps, even if the combination of those features results in a poor architecture.

3) Genuinely good ideas/features. I guess this is why Pottering is so controversial. There is a bunch of crap thrown in with some good ideas. Socket activation is genuinely a good feature. It's not new -- Apple's launchd and I believe Sun's SMF use it too. But yeah I think we should give credit to the good ideas for some of the adoption.

There's no doubt they put in a lot of effort to systemd. The only thing that compared is Upstart. It does seem that people paid to work on open source by companies like Red Hat and Canonical are the ones who really influence the direction Linux is going on.

People had issues with Upstart too, though not to this level. So really the high adoption of systemd is not that much of a surprise, given that there were few realistic alternatives.



"Engineering for adoption", as you said, is necessary for something attempting to replace something as key as the init system and other core components.

With software like this, whatever the replacement, if it doesn't have adequate backwards compatibility, it will never see any significant adoption. Switching over wholesale at once is simply too difficult.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: