LWN.net Logo

Some changes needed...

Some changes needed...

Posted Nov 27, 2012 18:24 UTC (Tue) by Zack (guest, #37335)
In reply to: Some changes needed... by mathstuf
Parent article: Langasek: Upstart in Debian

"Linux on the desktop" has already arrived. In fact, it arrived many years ago. The only thing it lacks -- by most people's definition of it -- is ubiquity; a sizeable market percentage that is measured in natural numbers.

In my opinion the only way to ever reach such ubiquity is if one particular distribution gets Apple or MS size marketing behind it, and as such it would dwarf all the others into relative obscurity anyway, making any sort of incompatibilities moot, since whatever is in that distribution is what the proprietary ISPs will package for.

Technical excellence will only get an OS so far, and any tweaking in the margins -- by shaving yet another few seconds off booting or having a standardised init system -- isn't going to make a platform more popular.

That said, of course init could do with a replacement, and systemd seems (the init part anyway) to have some desirable features. But realistically, there's no hurry to push it as the next silver bullet that will finally make X happen with any distribution that doesn't adopt it going to be left behind.
It *certainly* isn't a good enough excuse to demand preempting other interesting software for.

>> a poorly architected replacement
>Care to share examples or specifics?

Well, if a main author of a project basically concedes there's no point in sending in patches concerning portability because the software is too specific already, that makes it cowboy-coding to me, irrespective of whether he is the best codeslinger in town.

If you're going to replace init, do it properly.


(Log in to post comments)

Some changes needed...

Posted Nov 27, 2012 19:26 UTC (Tue) by mathstuf (subscriber, #69389) [Link]

> In my opinion the only way to ever reach such ubiquity is if one particular distribution gets Apple or MS size marketing behind it, and as such it would dwarf all the others into relative obscurity anyway, making any sort of incompatibilities moot, since whatever is in that distribution is what the proprietary ISPs will package for.

And since only Google (and possibly Canonical, but their success isn't as apparent to most) is doing this so far and their direction doesn't really include my general computer use cases (AFAIK), we may as well work on things we can change (which tend to be the technical side of things).

> Technical excellence will only get an OS so far, and any tweaking in the margins -- by shaving yet another few seconds off booting or having a standardised init system -- isn't going to make a platform more popular.

Agreed. However, there's always the chicken-and-egg problem. Without a standard and reliable init system, we might not get the attention of third parties. Without the third parties, we lose potential users. *Something* needs to give somewhere for things to change. The faster boot is a nice side effect, but it certainly isn't the end goal.

> if a main author of a project basically concedes there's no point in sending in patches concerning portability because the software is too specific

As with anything, lines need to be drawn somewhere. Are you going to support Linux 2.4? FreeBSD 7? VAX? Windows? As an example, some of the features systemd provides expect something like the cgroups API to exist. What (existing) interface would you propose is used on BSD instead? Drop it and systemd isn't really portable anyways since it wouldn't be able to give the same guarantees about stopping services on BSD as it could on Linux. All that does is push the portability burden onto the services which expect it to exist. At this point, it might be easier to provide the cgroups API on BSD or to get something done which does things equivalently with an interface acceptable for BSD and then offer that on Linux as well.

Some changes needed...

Posted Nov 27, 2012 22:34 UTC (Tue) by Zack (guest, #37335) [Link]

>As with anything, lines need to be drawn somewhere. Are you going to support Linux 2.4? FreeBSD 7? VAX? Windows?

True, but "nothing but (current) linux, and all linux platforms should use this" is just drawing that line in a circle around yourself.
By my standards that's acceptable for a quickly thrown together proof-of-concept mailclient, but not really for the init system we're all to use.

>As an example, some of the features systemd provides expect something like the cgroups API to exist.
>What (existing) interface would you propose is used on BSD instead?

That would be up to the BSD developers, once they inescapably see the light. But up until that point it would be good form to just have systemd default to a bog standard portable init wherever its highly specialised features are not available so hackers everywhere can at least attempt to bring such glory to their system and meantime be able to boot.

>we may as well work on things we can change (which tend to be the technical side of things).

I guess that's as true as anything written in this thread. "Be the change you want to see in the world", or something like that.

Some changes needed...

Posted Nov 27, 2012 23:54 UTC (Tue) by Eckhart (guest, #74500) [Link]

> But up until that point it would be good form to just have systemd default to a bog standard portable init wherever its highly specialised features are not available so hackers everywhere can at least attempt to bring such glory to their system and meantime be able to boot.

Why is this so hard to understand? systemd fundamentally depends on concepts like cgroups, they are not just an afterthought. Just have a look at the code.

Or, as an analogy: a team of engineers are building a maglev train. You are telling them to add wheels and a diesel engine, so it can also run on conventional tracks. Sure, it might be possible to add this stuff: by increasing costs per unit, ruining the design and reducing the maximum speed the train is able to travel because of the weight of the diesel engine.

Some changes needed...

Posted Nov 28, 2012 0:02 UTC (Wed) by dlang (✭ supporter ✭, #313) [Link]

> systemd fundamentally depends on concepts like cgroups

however when people complain about how systemd should not be considered to be the standard init because it requires cgroups, which impose a significant performance hit on current systems, the answer that we get is that cgroups are an optional feature, systemd will work without cgroups, just not as well.

you can't have it both ways, pick a story and stick with it.

Some changes needed...

Posted Nov 28, 2012 0:43 UTC (Wed) by mathstuf (subscriber, #69389) [Link]

I think the specifics are that cgroups have to be available, but not fully enabled. From the README:

> with cgroups (but it's OK to disable all controllers)

I would assume that cgroups still offers the process grouping functionality, it just can't do per-group rlimits.

Some changes needed...

Posted Nov 28, 2012 2:02 UTC (Wed) by Eckhart (guest, #74500) [Link]

> however when people complain about how systemd should not be considered to be the standard init because it requires cgroups, which impose a significant performance hit on current systems, the answer that we get is that cgroups are an optional feature, systemd will work without cgroups, just not as well.

> you can't have it both ways, pick a story and stick with it.

Picked a story for you: http://0pointer.de/blog/projects/cgroups-vs-cgroups.html

(Hint: if you don't know how "systemd" and "cgroups" relate, googling for both terms might help.)

Some changes needed...

Posted Nov 28, 2012 16:50 UTC (Wed) by nye (guest, #51576) [Link]

>Picked a story for you: http://0pointer.de/blog/projects/cgroups-vs-cgroups.html

That document says "if you...disable the grouping feature entirely (A) then systemd will loudly complain at boot and proceed only reluctantly with a big warning and in a limited functionality mode". That sounds a lot like "a bog standard portable init wherever its highly specialised features are not available", which you claimed was impossible.

Some changes needed...

Posted Nov 28, 2012 19:15 UTC (Wed) by Eckhart (guest, #74500) [Link]

> That document says "if you...disable the grouping feature entirely (A) then systemd will loudly complain at boot and proceed only reluctantly with a big warning and in a limited functionality mode". That sounds a lot like "a bog standard portable init wherever its highly specialised features are not available", which you claimed was impossible.

According to systemd developers "limited functionality mode" means "expect breakage" and "might allow you to compile a kernel with cgroups if you are lucky".

Some changes needed...

Posted Nov 28, 2012 14:31 UTC (Wed) by HelloWorld (guest, #56129) [Link]

> True, but "nothing but (current) linux, and all linux platforms should use this" is just drawing that line in a circle around yourself.
I don't see a reason to make init portable. sysvinit is portable, but who actually uses it on anything but Linux? Nobody, because pretty much every other Unix out there has its own init, and they're certainly not all portable (cf. SMF on Solaris). And the BSD people won't adopt systemd anyway due to the license.

Also note that while systemd's implementation isn't portable, its interfaces are, so nothing stops a vendor from implementing a systemd clone for their OS.

Some changes needed...

Posted Nov 27, 2012 20:31 UTC (Tue) by HelloWorld (guest, #56129) [Link]

> Well, if a main author of a project basically concedes there's no point in sending in patches concerning portability because the software is too specific already, that makes it cowboy-coding to me, irrespective of whether he is the best codeslinger in town.
The reason isn't that systemd is "too specific already". It was a conscious decision done very early in the project to not make it portable, because that would have incurred a cost in maintainability (abstraction layers, ifdef-hell) that its authors were (and are) not prepared to pay.

> If you're going to replace init, do it properly.
It was done properly. systemd beats the pants off any other init system for linux.

Some changes needed...

Posted Nov 28, 2012 11:01 UTC (Wed) by Wol (guest, #4433) [Link]

And the programmer in question has a reputation for blaming other systems when it is their fault.

A lot of programs follow the unix philosophy of "be strict in what you send, and liberal in what you accept". Lennart doesn't do that. He does "be strict in everything you do". Which is why so many of his previous programs have been such a pain - he refused to work around bugs etc in other programs, and just complained and complained until they were fixed.

Unfortunately, in the meantime, things like Pulseaudio didn't work properly :-(

Hence the decision that systemd would assume the things it needed were there, I suppose. And then Lennart made sure that, in linux at least, they were. If other people want to port systemd, they need to make sure the things it needs are there.

Cheers,
Wol

Some changes needed...

Posted Nov 28, 2012 11:28 UTC (Wed) by paulj (subscriber, #341) [Link]

Aside: Isn't that more often referred to as the "Postel Principle", rather than the unix philosophy?

Some changes needed...

Posted Dec 3, 2012 13:50 UTC (Mon) by JanC_ (guest, #34940) [Link]

Yes, it is, and it applies to the internet (originally the TCP/IP protocol), not unix. (It is also often misunderstood...)

Some changes needed...

Posted Nov 28, 2012 14:06 UTC (Wed) by mathstuf (subscriber, #69389) [Link]

Personally, I also try to get bugs fixed rather than work around them. Either everybody will need to do that workaround or those that really need it fixed can just bump the minimum version. Yes, things can suck until they are fixed, but I can't remember any sound issues since Fedora 10 or 11 (and I've had a Rawhide machine since 14 or so)[1]. Maybe its selective memory, but they've not been major enough to mention in passing (Fedora 9 Beta however...). And, FWIW, this is what GNOME tries to do. As long as those refusing to do workarounds help in some way with the bugs (fixing, testing, documenting it, etc.), I see no issue with the approach.

[1]Well, okay, flat volumes suck, but that's been added to my dotfiles.

Some changes needed...

Posted Nov 28, 2012 16:24 UTC (Wed) by raven667 (subscriber, #5198) [Link]

I'm not sure how demanding quality and working on building a robust infrastructure is supposed to be a bad trait ... I think if more developers were less tolerant of misbehaving infrastructure that the Linux software stack would be even better than it is now.

Some changes needed...

Posted Nov 28, 2012 16:57 UTC (Wed) by nye (guest, #51576) [Link]

>I'm not sure how demanding quality and working on building a robust infrastructure is supposed to be a bad trait ... I think if more developers were less tolerant of misbehaving infrastructure that the Linux software stack would be even better than it is now.

We tried that. It was called HURD. As you know, it's been a roaring success and now powers 87% of desktops around the world.

Some changes needed...

Posted Nov 28, 2012 17:07 UTC (Wed) by Cyberax (✭ supporter ✭, #52523) [Link]

I've actually tried HURD when it became available in Debian (I think it was about 5 years ago). It was a crappy PITA - nothing worked, daemons crashed, system was locking up all the time.

Some changes needed...

Posted Nov 28, 2012 17:50 UTC (Wed) by nye (guest, #51576) [Link]

And that's what actually happens in reality when you focus on theoretical elegance like being intolerant of misbehaving infrastructure, rather than focussing on making things that work in this world.

It's why 32-bit applications can't play sound out of the box on Debian wheezy (at least as of a couple of weeks ago), because both PulseAudio and Debian's multiarch implementation care more about 'technical excellence' than working software.

(I know, I should have filed a bug for my specific problem, or at least found out if there was one already, but I'd just spent ages trying to figure out why 32-bit applications can't use OpenGL on NVidia hardware only to discover that the bug was filed, the reason understood, a fix posted, and the maintainer intentionally didn't apply it because "if there's two things in the world I don't care about it's wine and the nvidia driver". I had no desire to head right back down that particular rabbit hole.)

Some changes needed...

Posted Nov 28, 2012 17:58 UTC (Wed) by mathstuf (subscriber, #69389) [Link]

> "if there's two things in the world I don't care about it's wine and the nvidia driver"

Was this a package maintainer or upstream?

Some changes needed...

Posted Nov 28, 2012 18:52 UTC (Wed) by cortana (subscriber, #24596) [Link]

Some changes needed...

Posted Nov 28, 2012 19:06 UTC (Wed) by mathstuf (subscriber, #69389) [Link]

That seems like something FESCo would handle in Fedora (conflict between packager of A and packager of B which depends on A). There's no way to elevate it in Debian?

Some changes needed...

Posted Dec 1, 2012 15:05 UTC (Sat) by viiru (subscriber, #53129) [Link]

> That seems like something FESCo would handle in Fedora (conflict between
> packager of A and packager of B which depends on A). There's no way to
> elevate it in Debian?

Yes there is, the Technical Committee (see http://www.debian.org/devel/tech-ctte ).

Some changes needed...

Posted Nov 28, 2012 22:24 UTC (Wed) by HelloWorld (guest, #56129) [Link]

It's interesting to see that other people had the same kind of issues with Debian maintainers that I did. It's one of the reasons why I switched away from Debian some time ago.

Some changes needed...

Posted Nov 28, 2012 17:41 UTC (Wed) by HelloWorld (guest, #56129) [Link]

> We tried that. It was called HURD.
Lennart doesn't call for some crazy new design that nobody is able to implement, he merely advocates fixing bugs instead of working around them. And he does succeed with that, most distros ship with PulseAudio, Avahi and systemd today.

Some changes needed...

Posted Nov 28, 2012 12:35 UTC (Wed) by dgm (subscriber, #49227) [Link]

> In my opinion the only way to ever reach such ubiquity is if one particular distribution gets Apple or MS size marketing behind it

Think about this again. Do you really believe that most people (the 99%, you know) could be convinced to _replace_ the OS that's already installed in their machines?

I believe that they cannot be bothered, as long as it keeps working, more or less (it's unbelievable how much pain users can endure before fixing stuff).

No, the only way is to convince device _sellers_ to preload Linux, and then provide them with a version that can do whatever they want to do, with a minimum of fuss. That implies technical excellence, of course.

Remember netbooks? The very first ones that sold with Linux? Some claimed they were being returned because they didn't run MS Office. Today I don't see anybody returning their iPads because they cannot run Office, so odds are that this was not the real problem. Maybe the reason was that the Linux inside those machines was not exactly "excellent".

> Technical excellence will only get an OS so far, and any tweaking in the margins -- by shaving yet another few seconds off booting or having a standardised init system -- isn't going to make a platform more popular.

Maybe, or maybe not. Picture yourself having a dual booting machine, say a laptop or a tablet. You could chose to boot Windows 8 in a couple of minutes or Linux almost instantly (say, less than 10 seconds). Which one would you boot more often?

Some changes needed...

Posted Nov 28, 2012 13:49 UTC (Wed) by Zack (guest, #37335) [Link]

>Think about this again. Do you really believe that most people (the 99%, you know) could be convinced to _replace_ the OS that's already installed in their machines?

I don't think we're disagreeing. When I mention "Apple or MS size marketing", I also include strongarming OEMs into shipping the OS, having "<manufacturer> recommends Deborah ME edition" advertised when buying machines online, having yound succesful people holding that life changing device and smiling at you from the poster at the busstop, the works. So,
>the only way is to convince device _sellers_ to preload Linux,
was implied. But I don't believe a "minimum of fuss" is any match for a "maximum of sales" in their eyes, which firmly plants systemd -- or any sort of technical improvement -- in the "neat to have on your system" category. Except I don't think it's neat to have, since it doesn't really do anything to improve non-linux systems with the aformentioned popularity as a result of unification as excuse.

Since we can't yet tend to the masses, we might as well tend to our own. I guess that's the only real point of contention: where some see linux-based systems as "our own", and some see the term in a different context.

Some changes needed...

Posted Nov 28, 2012 14:13 UTC (Wed) by mathstuf (subscriber, #69389) [Link]

As a note, Windows 7 feels very fast at boot, shutdown, suspend (which I believe is always a hybrid suspend/hibernate), and resume. From what I read, Microsoft was working on improving that for 8. Granted, boot/login is sort of cheating since control is handed over before things are actually ready to use (though I remember KDE (< ~4.5) having similar behavior), but it's still a nice psychological effect.

Some changes needed...

Posted Nov 28, 2012 17:31 UTC (Wed) by nye (guest, #51576) [Link]

>Picture yourself having a dual booting machine, say a laptop or a tablet. >You could chose to boot Windows 8 in a couple of minutes or Linux almost >instantly (say, less than 10 seconds). Which one would you boot more often?

One of the things that really upsets me about LWN, and most Linux-related forums in general, is the obstinate refusal to consider minor points like 'facts', preferring to make up random nonsense trashing other platforms rather than ever bothering to make a fair comparison. It's like many people can't think of any ways in which Linux is *actually better*, so they have to make some up.

It's tiresome and childish, and it makes FOSS advocates look bad.

Some changes needed...

Posted Nov 28, 2012 17:56 UTC (Wed) by mathstuf (subscriber, #69389) [Link]

I think this falls to Hanlon's Razor (s/stupidity/extrapolated ignorance/). Windows before 7 *did* have horrible boot performance (ISTR Vista being particularly bad on my school laptop, but maybe that's memories of it souring over time). Once you're under 5–10 seconds, it's really in the "who cares?" realm. Hell, it takes 3 seconds for the cable box my family has to get the picture on the screen after switching channels at home and no one complains. Video game console starting animations can take longer. Five seconds from switch to useful would probably be generally accepted. Windows 7 is there on my work machines (modulo the limbo where services and such are starting up after I log in and whether updates need to be finished installing). CentOS 5 is not by any means. Fedora Rawhide is getting there with systemd (17 seconds from when journald starts logging to my user being logged in at a TTY with manual entry). The best I had seen on my machines before was a ~35 second internet to internet reboot (manual login and ifup wlan0) on an eee900 netbook (either Fedora 13 or 14?).

Some changes needed...

Posted Nov 28, 2012 19:18 UTC (Wed) by reedstrm (guest, #8467) [Link]

My laptop makes it from cold start to gdm login screen in 9~10 sec, running bog standard Ubuntu 12.04, by virtue of replacing the system disc w/ an SSD.

Add another 3-4 sec for initial login. Yes, even bloated desktop login is acceptable w/ faster disc IO.

Not that I find boot time that interesting anymore: sleep/resume has been solved, I almost never actually shut down anymore.

My biggest issue is NetworkManager taking its time to decide where I am and getting the appropriate WiFi up.

Some changes needed...

Posted Nov 28, 2012 18:06 UTC (Wed) by nye (guest, #51576) [Link]

>It's like many people can't think of any ways in which Linux is *actually better*, so they have to make some up.

NB. I'm not saying there aren't any, just that the most commonly quoted reasons which basically boil down to performance and stability are manifestly untrue in the majority of cases, like this boot time example.

Some changes needed...

Posted Nov 28, 2012 22:18 UTC (Wed) by louie (subscriber, #3285) [Link]

Lots of these examples (particularly with regards to stability/crashiness) are really about Windows 95/98/XP, which are the last versions of Windows that many Linux users ran/remember. My first Linux install was done immediately after Word crashed 10-12 times in a single *hour* during a paper I was writing at school. Now I use Word 8-10 hours a day and I can't recall 8-12 crashes in total in the past three *years.* It is really unfortunate that most of us don't realize what we're competing against - it is a very bad bubble to be living/thinking in.

Some changes needed...

Posted Nov 29, 2012 14:42 UTC (Thu) by dgm (subscriber, #49227) [Link]

It was just a supposition to make a point. Would you feel any better should I had mentioned OS X instead? What's all the fuss about?

Copyright © 2013, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds