What’s scary about 5 second boot is not that it is possible. What is scary is that Ubuntu, Fedora, Debian, Mandriva, Gentoo and Suse couldn’t do it. Not even close.
And that seems to be a mindset issue: “It’s not about booting faster, it’s about booting in 5 seconds.”
Scary
October 3rd, 2008 | General
16 comments ↓
We haven’t really tried.
In hoary, we set ourselves the goal of 30s which we achieved. The next release we’re focussing on boot speed is 9.04 (which was planned and announced before Arjan’s demo :p)
Funny. Some 6 months ago there were those pretty bootcharts on planets. I commented that “bah, there’s no real technical reason why a system couldn’t boot up in 2 seconds flat”. What I got was practically booed silent by the “better people”.
Now, 5 seconds… Next stop, 2. then 1, then 0.5. Really, it’s not even HARD. It’s all about only the fact that most of the developers are plain stupid and have no vision.
rawsausage: troll somewhere else. Insults are not appreciated.
Well, I’m certainly not an expert in this area, and I hope their work can be applied to the mainstream distros. But, one thing stood out to me from the article:
“With a handful of modules you cover 95% of laptops out there,” Arjan said. He suggested building an initrd-based image to cover the remaining 5%.
That’s not going to fly with distros who have been trying to get everything to “just work” for the last few years. Although if I’m reading it correctly and this only provides a second or two of time savings, I don’t imagine most distros will think that’s a huge price to pay for a more flexible configuration.
Arjan’s work is extremely impressive, but do remember that he did *cut functionality* to get this.
For example, he’s not running Sendmail. Now I think running sendmail on a client machine is stupid, but if you use cron, sendmail is how it gives you output.
He wasn’t running Avahi, nor CUPS. He wasn’t using GDM. He was using XFCE instead of GNOME (no idea whether XFCE is actually faster or it was just randomly chosen).
Right, what Colin said.
Also, he’s working with a specific set of software on a specific set of hardware. Sure, he can confidently claim that it would work just find on thousands of other systems, but we all know what happens to confident claims like that.
A fast init system is not practical for a general-purpose distro until it can truly work on ALL hardware – or at least all reasonable consumer hardware – with ANY set of software from that distro’s official repositories installed, and working as it should. Arjan’s work is interesting (although not really original – Xandros had a fast boot system named fastinit on the Eee when it first came out, after all, and Mandriva’s own Claudio Matsuoka has been working to re-implement and extend this as ‘finit’ for several months). But it doesn’t mean that all normal distros are just crap and stupid for using traditional init systems.
To put it simply, a fast init system like Arjan’s gives a massive improvement in performance – at the cost of a massive regression in functionality. It’s not a clear-cut win.
finit: http://helllabs.org/finit/
First of all: Arjan dd not cut any functionality I care about, as far as I can see. And I run a desktop doing the usual stuff: web surfing, sending email, etc.
My problem with this is that it’s a factor of roughly ten. Arjan’s boot is 10x faster than a normal boot. That is a landslide. Had he only been 2x faster, ok. 4x would have raised my eyebrows to considerable heights. But this is 10x faster. I know he tuned it for the EEE and did a lot of other “dirty” tricks, but there is no reason why the installer couldn’t do the same tricks and tune my system to run this fast. At least I’m not seeing them.
Insults? It’s plain truth. Listen up skilless kids, it’s plain simple:
0. Integrate the components
1. Start the logon GUI
2. The rest, on dependency tree when required, on background
You see, for user it doesn’t mean when the components get started. Only thing that matters is that the things that he needs are ready when he needs them. Take a look at what absolute crap the normal Linux startup sequence does! Yes, most of that is really important and required, but the question is WHEN. The answer is: Later.
Shouldn’t this be the business of the hardware vendors and not of the mostly generic distros?
I would expect to install a “Sony-Vaio-Tz-optimization.deb” and get maximum performance.
So speak up to the hardware vendors to provide something like this.
Talk is cheap. Show me the code.
rawsausage: all major distros already load X before the rest of init is completed, as early as is practically possible. Do some research before you troll.
otte: well, for a start, he kills initrd and sticks all modules in the kernel. Which is what we used to do in 2001. There’s good reasons for going with initrd. The fact that he can get away with it on one very basic laptop doesn’t mean we can just ditch initrd. Yes, he suggests trying a big-ass kernel and falling back to initrd if it doesn’t work, but that’s an untested compromise that adds substantial complexity.
Then he uses a static /dev tree, with udev only added on top later. I am sure he has not really tested the consequences of this in a general operating environment.
Basically, what he does is cut out all sorts of shit which is, granted, not used by the most basic possible scenario (a very simple-use, single-user laptop with local authentication and not much hardware) but *is* used in plenty of other situations. And then he says “what we should do is use this extremely minimalistic system by default and try and dynamically bolt on all the other bits if they prove useful”.
Which is basically doing the easy work and grabbing the headlines, and leaving the tough work to others. It’s all very well to say “oh, yeah, we can just glue in things like network authentication if they’re needed on the system in question”, but…how? Has he done it? Has he researched how to do it? Has he looked at whether it would introduce regressions on those systems that need it?
No.
What he’s done is optimized an incredibly simple case and said “Look, it’s fast!”. Which Gentoo people have been doing for years.
It’s useful in that it shows a simple scenario can boot that fast. Great. But that’s just the opening act. There’s a ton more work to do before it can actually be useful in a general purpose distro. You can’t just sit back and say “well, look, he solved the problem, what have all you other chumps been doing for years?”
If you are interested in the work done by distribution to make a distro boot faster, there is this blog post of Frederic Crozat about the subject :
http://blog.crozat.net/2008/09/improving-boot-time-on-general-linux.html
Michael: Frederic’s post is pat of the problem. It says “we’re x secs faster”, not “now we’re only y secs too slow”.
Adam: I’m aware that all the distro people have spent a lot of time to come up with solutions for all the weird daemons/systems that can be installed, and they did great work.
And I’m well aware that Arjan’s code is at the sweet spot of the 80/20 rule. But he did 100% of the mindset work.
otte: so you’re saying that rather than optimize an existing, working system we should let it rot while working on the Next New Shiny Thing?
I’d say the Next New Shiny Thing approach has been the problem more often than not.
“First of all: Arjan dd not cut any functionality I care about, as far as I can see. And I run a desktop doing the usual stuff: web surfing, sending email, etc.”
So, I guess you should move to writing at planet XFCE instead of planet gnome? I doubt they had done it with gdm+gnome. Sine gnome is one of the flag bearers of the “lets create slow starting daemons and frameworks” culture..
From the article:
“X is still problematic. We had to do a lot of damage to X, Arjan said.”
Wonder what the affects are of that “damage”?