Personally I don't really care much either way.
Personally I don't really care much either way.
Definitely. But this is probably true for many things at a low-level in the stack. E.g., it would also be hard to replace D-BUS or the Linux kernel (as evidenced by the fact that Debian/KFreeBSD will probably not be in Jessy).
I agree that it is a worry. But you can never make progress without taking any risks. We have tried 'fully isolated init' for years and it does not really work for modern systems/applications.
We have tried 'fully isolated init' for years and it
does not really work for modern systems/applications.
I keep hearing this but I haven't seen any concrete reasons why it would be true. I'm curious what those reasons are. As I said I don't personally care that much as I work far enough up the stack to not be affected for the most part.The way I see it is that the systemd developers just plowed a way through the undergrowth and produced a suite of components that provide functionality that's appealing for people to build on. That's an offering that was accepted and now other people complain that the "systemd people are forcing their system on us and I want sysV init". The right course of action would be "meh, don't like systemd, I'll build a better offering." Talk is cheap, code is what counts.
I very much like systemd. It's documentation is actually long, but clear and well structured. The init component is much simpler than the mess of shell scripts used before. There certainly are problems and issues with it, but I've met problems and issues with about any kind of software I had to deal with so far (including my own), so I take that as a given.
I know dozens of init systems that do much more, markedly better than systemd, and are modular so you can easily replace them when the time for a new technology comes. systemd is very recent, and still its opinionated architecture is showing inflexible to changes.
(1) systemd (2) write and advocate the usage of a different init system. (3) a horrible death
I'm certainly not opposed to having a better alternative, but the systemd people managed to write something that is better than sysvinit and made the package good enough to get people to use it. Now people complain that they're taking over the linux world by force, but they actually don't. They just provide something people want - it's not that they forced the gnome people at gunpoint to use systemd.
The problem is that systemd is that is being forcefully pushed to all distros. For instance, by merging udev with systemd. We want to keep all the alternatives available.
I understand your pain, I sometimes don't like the direction things that I use move or the ways they change, but I'm not sitting at the sidelines complaining about being pushed around. I get to use stuff others provided for free, I'm grateful for that and I either fork/change it or move on to something else. I'm not in a position to tell them what they should be spending their time on.
Lennart Poettering could just stop developing and supporting udev any second, that's his personal decision and I couldn't say "he forced me to use windows" and I don't see anybody else could.
Don't like the (maybe) coming systemd dependency for udev? Build the code to set up the bus yourself or pay someone or wait until someone knowledgeable gets sufficiently fed up and builds something. Same for the gnome dependency on systemd: Either accept it or contribute the time to make it work without while retaining the features it has.
Also, Windows can also be forked, by distributing patches instead of binaries. So that argument is a red herring, DOS has been forked before, and every proprietary application, but that doesn't mean I can't ask other developers a bit of respect for those of us who are using other init systems, I will maintain my software, just let me do that. All the discourse about democracy around GNU/Linux wasn't supposed to be summed up as "Fork or GTFO".
Yes, indeed, I do. Because most applications will not unnecessarily depend on systemd, but rather because the dependency provides some (perceived) benefit to the developers. And if the developers decide that the benefit is worth the dependency, they'll do it. And if you want to prevent that future, you need to provide something that offsets the benefit - write the test and compat code to support gentoo, write the docs, provide the money (or other incentive) for the developers to do so. That's how it works. You don't have to do all of that yourself, you can form a group, build your own distro, run a fundraiser, whatever you choose. But you don't get to sit back and complain and hope the world changes for you and neither do I.
There's no democracy in the OSS scene, users don't get to decide what the software they use looks like and even maintainers or other software have no vote. It's more like a market - we use what's best for our personal cause. You pick and choose and the software with the most users will prevail, others either hold their ground or disappear (ConsoleKit).
All this discussion doesn't and won't preclude me from do all the things you said under "preventing the future".
People developing software. For example the gnome folks. You, me. (don't know about you, but I have services that use systemd for starting and supervising the service)
> If GNU/Linux closed its source and went proprietary, you would say exactly the same things: Fork or GTFO.
Yes, actually, yes. If Linus decided that all future development he wants to do is now closed source, I either have the option to fork and continue in the open or GTFO. I'm not the one to decide what he can to in his time. There's be a number of legal issues surrounding that, for example that he can't take the current kernel code, but if he decides that within the given framework he closes his development, fine with me. If Linus decides that he thinks that a deep integration between the kernel and systemd is the way forward for his project, I have to accept that. I may not like it, but unless I do something to change it I can't force it any other way.
The beauty of OSS is that you can exactly do that - take the last public version and make something better, something that's more the way you like it, no matter what the original owner thinks, says or does.
> The beauty of OSS is that you can exactly do that - take the last public version and make something better, something that's more the way you like it, no matter what the original owner thinks, says or does.
Read my previous comment: The beauty of proprietary software is that you can exactly do that - take the last public version, patch it and make something better, something that's more the way you like it, no matter what the original owner thinks, says or does. :)
Why not? Do you pay them for their time? I don't. So who am I, what do they owe me? Nothing. Not even a new free version of linux.
>Read my previous comment: The beauty of proprietary software is that you can exactly do that - take the last public version, patch it and make something better, something that's more the way you like it, no matter what the original owner thinks, says or does. :)
No, actually you can't. You're not entitled to unless you specifically sought a license that permits it. All Open Source Licenses grant you that permission.
> No, actually you can't. You're not entitled to unless you specifically sought a license that permits it
Please take a look at 17 U.S. Code 搂 117.
No, why? If they port it and even if they provide it closed source binary only, I'd still believe that an open source browser and office packet are fundamentally more in societies interest, but they're certainly entitled to build and distribute IE and Office for linux/unix/catOS and I'm not entitled to tell them to stop. Given the license of pretty much all linux distributions I think nobody would be. Just as microsoft allows the distribution of OpenOffice and Firefox for Windows. They don't have to like it.
>> No, actually you can't. You're not entitled to unless you specifically sought a license that permits it
> Please take a look at 17 U.S. Code 搂 117.
I'm not going to discuss american law with you, but please note that this paragraph puts severe restrictions on redistribution of copies, while the GPL does not. I'm not a law scholar, much less an american law scholar but I don't think this means what you think it does.
It seems you don't read my comments, because I've edited binaries, and distributed patches of proprietary software, that's not illegal, only I didn't distribute the binary or code without permission. Let me tell you, having systemd source doesn't help me at all because it's a megalithic blob.
Is the GPL a good thing? Yes, BUT just because you license your junk with the GPL you don't deserve a Nobel peace price. You seem to think that had Hitler released a hello world program with a GPL license he would be a saint, and can't be criticized, "fork or shut up", you say?
> As long as you're not distributing the software, you have nothing to worry about.
You're not allowed to redistribute the software, modified or not. GPL or any other OSS license grants you the the permission. (and no, distributing software under GPL does not make you a saint or even a good person. See Reiser)
>> GPL or any other OSS license grants you the the permission
The sysvinit alternatives that I know and use, all use an OSS license, most of them less restrictive (BSD or MIT). I use free (as in freedom) software; that's why systemd is harmful to me, always trying to create incompatibilities with other open source programs lacking a multi-million corporation backer.
Better in some ways, worse in others. If systemd were unequivocally better in all areas, nobody would be complaining. By saying what you said, you're subtly but deliberately telling every one of those people that their concerns are irrelevant and/or a result of their ignorance. This is the systemd developers' M.O. and a large part of the reason why there's so much drama over systemd.
> This is the systemd developers' M.O.
So far I've mostly seen "we believe this is better and we'll build it this way, like it or leave." That's certainly opinionated, but hey, they're totally entitled to have that view (why would they build it if they thought it's worse?!) My view and your view may differ, but we don't get to complain unless we provide something that we think is better and get a lot of people to agree on that.
The community seems pretty evenly split on this point, with folks like myself taking the opposite view: systemd is a regression in so many fundamental areas that its improvements in things like boot times and init script syntax just are not worth the tradeoffs that it imposes. I don't care if the frogurt is free when it's full of potassium benzoate.
And I'm also free to correctly identify that their poor leadership decisions are ruining a wonderful piece of software and causing the community, including Ian fucking Jackson, to abandon the group that made it possible.
Except they've been adopted, systemd has been mandatory only in some bigger more commercial distros.
The right course of action would be "meh, don't like
systemd, I'll build a better offering." Talk is cheap,
code is what counts.
This statement seems to ignore Upstart though. Which is again from a very cursory examination exactly that. A better and more modular init without some of the complaints of systemd and yet is not gaining the mind share.Why isn't it considered a viable alternative?
Exposing the event model directly to the jobs also made reasoning about the current system state (which is what actually matters, not how we got there) tended to make upstart jobs a lot more complicated than necessary. (This is from memory, it's been ages since I actually looked at upstart jobs.)
read comments #6 and #8 on this 5 year old unfixed bug and weep: https://bugs.launchpad.net/upstart/+bug/447654
in comment #7 on this (unfixed) bug Scott says it could be solved by having upstart use cgroups instead of ptrace to track processes: https://bugs.launchpad.net/upstart/+bug/406397
That's not that hard once you have proper dependency-driven init, Gentoo's done it for a long time. You just need some way for the networking scripts to tell init that they're started now. Traditionally they'd do it by forking into the background once they're done starting just like any other init script. It's a bit harder if the network might not become available until after startup but not that much so.
That rarely happens in server environments. I wonder how much of the recent debates about init systems is caused by the the rise of mobile consumer devices and developers' desire to cater to them.
I care when my laptop takes more than a few seconds to start up, but I really don't care when one of my cloud servers takes a few minutes to start up. Network not ready yet? Meh, we could just sleep(10) and try again.
http://0pointer.de/blog/projects/socket-activation.html
Socket activated containers:
http://0pointer.de/blog/projects/socket-activated-containers...
Resource management:
http://0pointer.de/blog/projects/resources.html
Better service information:
http://0pointer.de/blog/projects/systemctl-journal.html
In fact, the whole series is a recommended reading. Anyway, all these features requirer tighter integration with other components than SysV init. E.g. Linux' cgroups, services that support socket activation, integration with the logging system for status information, etc.
Also, a lot of techniques in systemd were already pioneered in launchd on OS X since Tiger.
Because minimal boot time is way more important than predictable, repeatable functionality. It's totally cool if some other daemon lies about whether or not my service is actually listening while just happily buffering into /dev/null. This is all brilliant stuff and a huge step forward over UNIX.
2. Socket activation do 饾惂饾惃饾惌 buffer into /dev/null; that is simply FUD.
And the purpose of systemd, as near as I can tell, appears to be making my system into a Windows box, complete with binlogs.
You should educate yourself about FUD, I recommend the Halloween documents, where they explain the unfeasibility of FUD tactics against an open source project, and that if someone tries to do it they won't get anywhere.
You're a little late; inetd(1) first appeared in 4.3BSD, c. 1986.
We stopped using inetd for reasons. Modern services don't work this way, nor should they.
There are some online communities in which that kind of thing is ok. HN is not one of those.
The word 'scabrous' means "dealing with salacious or indecent material". Feel free to inspect the image, I guarantee it's safe for work.
The first meaning of "scabrous" in my dictionary is "having a rough surface", and that's how I meant it. There's a long tradition of using that word to describe rough-and-tumble discourse, and it seemed fitting. You didn't just smack another user, you smacked them with a pointy implement (a link to an insulting image). That's not ok on HN. Neither is smacking people without a pointy implement. And telling another user "You're a liar and a coward, and you know it" is right out鈥攁 bannable offense, although we didn't ban you for it.
I'm insisting on this more than usual, because we don't want the pugilistic approach that is popular in some related (by subject matter, at least) online communities to take root here. When commenting on HN, please eliminate incivility from what you post.
Your position about the place we want HN to be is clear, but I still believe the image is not insulting or offending anybody in any way. Those who flagged it, could they have misinterpreted it as an insult to the developers? An insult to the users? An inappropriate "scabrous" picture based on the URL? Or just as an attack to a program that needs our praise?
I realize now that I was being too cute pulling out the old "scabrous" to make what is really an obvious and mundane point, and ended up confusing things. Sorry. I get bored sometimes and throw in variations which HN moderation comments are obviously not the place for. Let me try to be clearer.
There's nothing at all wrong with that image per se. It's great. I've made more than my share of Rube Goldberg analogies and know exactly where you're coming from. Had you linked to the same image in a thoughtful comment about overcomplicated systems, with no trace of incivility, of course it would be fine. It was only a problem in this context, i.e. a drive-by potshot in an inflamed discussion on a polarized topic.
It's "you're stuck with this architecture unless you redo the whole darn thing". And, again, systemd keeps getting larger and larger. As you say, it isn't that hard to replace sysvinit. But to replace systemd you need to replace / write shims for far more things. (Your window manager? I wish I was joking...)
During this timeframe, GNOME developed integration with systemd-logind, similarly to how it developed ConsoleKit support beforehand. And in fact the ConsoleKit backend was supported for a while afterwords. But this is no longer the case as nobody was willing to support it and maintain it in upstream GNOME. So it was removed.
So I'm confused by the comment. Your insinuation seems to be this is somehow the fault of systemd for requiring a shim for things like GNOME, if you want them to work without systemd itself as PID 1. But the reality is that any software which has an API dependency that you want to replace is either going to A) need a shim or B) need a replacement that is also supported by the project. And the ship already sailed on option #2 - ConsoleKit held on until upstream decided to remove the bitrot.
I find this line of argument very weird. Indeed, this whole scenario seems to be a story of exactly how FOSS often works and how we envision it to work: people do the work, and in some cases they may compete with or achieve superiority over another project. And other people adopt that work and use it for their own work later on. And people may develop replacements that are or are-not compatible as they see fit.
It's probably very true that GNOME and systemd developers worked together to reach agreements on systemd-logind, so it could be used by both and they could understand each others needs. But why is it systemd's fault if nobody stepped up to maintain ConsoleKit, and systemd's fault if GNOME decided to remove support for something they saw as bitrot? Am I missing something extremely key here? Or do you consider this nobody's fault and just something that happened?