Slashdot Mirror


How Kernel Hackers Boosted the Speed of Desktop Linux

chromatic writes "Kernel hackers Arjan van de Ven and Auke Kok showed off Linux booting in five seconds at last month's Linux Plumbers Conference. Arjan and other hackers have already improved the Linux user experience by reducing power consumption and latency. O'Reilly News interviewed him about his work on improving the Linux experience with PowerTOP, LatencyTOP, and Five-Second Boot."

80 of 380 comments (clear)

  1. Should lead to possibly great advertisements by pwnies · · Score: 5, Insightful

    Not only is this an impressive accomplishment, but if this can be applied generically to most distributions then it should present an excellent opportunity for advertisement. Showing how you can boot, check your email, read the latest news, and be done with all you need to have done while a fellow Vista machine is still booting says a lot. Even if we can get most distributions down to 15sec average, it's a huge leap. Grats to these guys.

    1. Re:Should lead to possibly great advertisements by Anonymous Coward · · Score: 5, Funny

      Kudos to you sir, for reducing the time it takes to type congratulations by instead using grats!

    2. Re:Should lead to possibly great advertisements by Bryansix · · Score: 5, Funny

      Actually Vista with 4 Gigs of RAM boots pretty quickly. It's once it's up that it is slow.

    3. Re:Should lead to possibly great advertisements by Anonymous Coward · · Score: 4, Funny

      You can boot Vista with only 4 Gigs of ram?

    4. Re:Should lead to possibly great advertisements by SilentChris · · Score: 5, Insightful

      The only issue is that they had to cut some corners to make this work. Axing sendmail? Ok, I understand that (I think was arguing that 10 years ago -- still don't wonder why that's on by default in the desktop distributions). But "The 'done booting' time did not include bringing up the network"? Um, ok... no. With the proliferation of devices solely used to read information from networks (Netbooks, those "quick-loading" Linux apps some laptop manufacturers are including so people can check their email, etc.) accessing the network is one of the main purposes for turning on the machine in the first place. It would royally piss people off to have a quick loading screen, log in and then see "Hold up, still starting up the network". (Just as frustrating as starting a Windows or Mac, getting to the desktop and still waiting while services and programs are loaded).

      Come to think of it, what people really need to do is take a good look at modern OSes and determine EXACTLY what still needs to be there and what's cruft. Some of the daemons/services we're launching made sense 15-20 years ago. Does the fax daemon really need to start on my Mac? Does the Group Policy Client need to be started on my Vista box when I'm not on a domain? There's lots of stuff that at one point probably made sense to someone but now is just extraneous.

    5. Re:Should lead to possibly great advertisements by not+already+in+use · · Score: 4, Informative

      but if this can be applied generically to most distributions then it should present an excellent opportunity for advertisement.

      Not going to happen. If you read the article, you'll see that they compiled all drivers directly into the kernel, so it is essentially an embedded device now. Also consider the fact that they are using a SSD, which is going to decrease boot times regardless of any boot-process improvements.

      So basically, you could never apply these speed increases to a generic distro.

      --
      Similes are like metaphors
    6. Re:Should lead to possibly great advertisements by nschubach · · Score: 4, Insightful

      ... but an OEM can. (If they were so inclined.)

      --
      Every time I start to have faith in humanity, I ruin it by driving to work between 7 and 8 am.
    7. Re:Should lead to possibly great advertisements by Anonymous Coward · · Score: 3, Interesting

      Is there any good reason the kernel can't be compiled with device drivers automatically upon installation? Even if drivers change, it can ignore the compiled one in favor of a module, and/or have a "recompile kernel for currently installed devices" button.

      I also doubt the SSD is that big of an issue Windows already offers the option of using Flash ram sticks in the same way, and loading boot data sequentially on the fastest portion of the disk is also a viable (and popular) way to boost speeds.

      Step 1 is making it specific, Step 2 is making it generic. I can't see any technical reason these changes can't be made generic, it's more a question of difficulty than possibility. Who is going to pay the work to generalize these changes?

    8. Re:Should lead to possibly great advertisements by sofar · · Score: 5, Interesting

      says who?

      We talked with both the fedora and ubuntu developers at the LPC and even they agreed that a LOT more drivers should be compiled into the kernel instead of being modules (c'mon, ext3 as a module? really?).

      99% of what we did to make this work in 5 seconds applies straight for generic laptops and even most people's desktop sytems.

      The speedups _still_ are relevant with generic spinning media too. Maybe those are not as fast as SSD's, but the principle is still the same (IOW, for instance reading data in the order that you need it, is better than reading it in the order that it is scattered across the hard disk)

      speeding up the kernel to boot in 1 second is TOTALLY applicable to generic distros (not only that, it's relatively easy and we basically already did that).

      speeding up X startup to be 1.5s is TOTALLY applicable to generic distros.

    9. Re:Should lead to possibly great advertisements by MMC+Monster · · Score: 4, Interesting

      Why not?

      How about the first time the system boots, it profiles what drivers are installed. It then recompiles the kernel to include those drivers.

      On subsequent reboots, it uses the recompiled kernel and then, once the system is up and running, check to see if something that is compiled in is no longer needed, and see if something has been added that should be compiled in.

      I'm sure it's not *that* easy, but maybe an idea for the future?

      --
      Help! I'm a slashdot refugee.
    10. Re:Should lead to possibly great advertisements by sofar · · Score: 5, Informative

      actually we do bring up the network daemon (either connmand or network manager) as soon as we can, but we don't stop the entire startup process.

      on my test system here it runs dhclient about when X starts up and the network card receives a reply with a few seconds from that, long before I can start firefox :)

    11. Re:Should lead to possibly great advertisements by CODiNE · · Score: 5, Funny

      Yeah, Safe Mode.

      --
      Cwm, fjord-bank glyphs vext quiz
    12. Re:Should lead to possibly great advertisements by ColaMan · · Score: 4, Interesting

      So basically, you could never apply these speed increases to a generic distro.

      Oh come now! Never say never!
      You could:

      - Boot with modular kernel.
      - Probe devices and get a list of loaded modules.
      - Recompile kernel with said modules built-in.
      - Boot with that kernel from now on.

      It's relatively scriptable - in fact, I think there's a "probe loaded modules and generate new .config" script already about the place. If the user is unwilling to wait for a kernel recompile during install, just stick with the modular kernel and incrementally compile during idle time.

      It's trivial. I'd code it up myself, but I'm a little busy at the moment, you understand.

      --

      You are in a twisty maze of processor lines, all alike.
      There is a lot of hype here.
    13. Re:Should lead to possibly great advertisements by schwaang · · Score: 4, Insightful

      Sendmail's main purpose in the typical Linux desktop configuration (say, Fedora) is delivering logwatch output to root. [Logwatch attempts to distill the important stuff from system log files.]

      But sendmail can be started lazily (in the background) so as not to slow the boot. Or sendmail can be replaced with a lighter weight smtp daemon. Truly though, logwatch-by-email should die for non-enterprise desktops. It's so 1980s it just hurts.

      IMHO logwatch should be replaced by some kind of graphical notification widget which requires authentication to actually view the details, since they can be sensitive. As it is, I haven't read my logwatch emails in months, but if SMART is complaining about an immanent disk failure I'd *really* like to know.

    14. Re:Should lead to possibly great advertisements by sofar · · Score: 5, Informative

      we don't even need to recompile the kernel, we can just link the modules in as needed. Something most older UNIX systems actually did.

    15. Re:Should lead to possibly great advertisements by the_womble · · Score: 2, Funny

      if SMART is complaining about an immanent disk failure I'd *really* like to know.

      An immanent disk? Computers really are getting everywhere.

    16. Re:Should lead to possibly great advertisements by Theolojin · · Score: 3, Insightful

      Actually Vista with 4 Gigs of RAM boots pretty quickly. It's once it's up that it is slow.

      Microsoft seems to have performed a bit of trickery to make you perceive that Vista boots quickly. The desktop on my wife's Vista laptop appears fairly quickly but it is simply unusable for a couple more minutes. This is different from XP which is fairly usable as soon as (well, shortly after) the desktop appears. It's rather like the desktop is the bootsplash on Vista.

      --
      Life is short; think quickly.
    17. Re:Should lead to possibly great advertisements by grasshoppa · · Score: 2, Informative

      You still get group policies assigned, whether you are in a domain or not.

      So yes. You need the group policy service.

      --
      Mod me down with all of your hatred and your journey towards the dark side will be complete!
    18. Re:Should lead to possibly great advertisements by dfetter · · Score: 4, Informative

      Nope. Kudos is Greek and singular, just like pathos :)

      --
      What part of "A well regulated militia" do you not understand?
    19. Re:Should lead to possibly great advertisements by Curtman · · Score: 2, Funny

      Kudos to you sir, for reducing the time it takes to type congratulations by instead using grats!

      I prefer 'c13s'.

    20. Re:Should lead to possibly great advertisements by es330td · · Score: 4, Insightful

      What really needs to happen is for there to be an informative display of what is happening when the system is loading, something that is one of my favorite things about linux. Most people wouldn't gripe about how long it takes for their system to load if they knew what it was that was loading. Sadly, I have stopped being amazed by the people who complain that "Windows loads slow" and then go in and find that they are incapable of saying "No" to any application that wants to install itself on their system. If you want the iTunes Helper and 6 different IE toolbars to load then you accept that requires time. If your fancy all-in-one fax/printer/scanner/roaster has some special monitor that has to load, suck it up and accept a slow load but at least allow the user of any OS to see what exactly it is that is getting put in memory when their system starts up.

    21. Re:Should lead to possibly great advertisements by DocSavage64109 · · Score: 2, Interesting

      I would say XP can also be unusable for a minute or two after login depending on what background applications and drivers start up. Certainly a clean XP install will be usable instantly.

    22. Re:Should lead to possibly great advertisements by Not_Wiggins · · Score: 4, Informative

      An IBM developer figured out how to use "make" to start services in parallel (once you have determined the dependencies).

      A link to the article is here.

      Bear in mind, this is circa 2003. 8)

      --
      Diplomacy is the art of saying, "Nice doggie!" until you can find a rock.
    23. Re:Should lead to possibly great advertisements by Anonymous Coward · · Score: 3, Funny

      none of your penis pills around here, sir!

    24. Re:Should lead to possibly great advertisements by jd · · Score: 3, Interesting

      Yeah, but you don't need a full ESMTP server for that - a wrapper for the local delivery agent that speaks classic SMTP (but ignores most of it) should be sufficient. In fact, if you're only using it to deliver to root, you've a choice of a tiny bit of text formatting, putting into a huge block of text and whapping it onto the end of root's mailbox, or doing a tiny bit of other text formatting and use the local mail delivery agent to do all of the work.

      If you've only one login account (the rest are for daemons or accessed via sudo), then the login code is excessively heavy. There's effectively only one user and effectively only one password. Those need to be in a password/shadow file for compatibility with other apps, but for machines that are essentially single-user, where the data is essentially fixed-length, you don't need search algorithms, routines to scan for the correct column, etc. You store two fixed-length blocks of data and then do a string compare and a byte compare. No files to open, no multi-layer authentication modules, etc. For a straight single-user desktop, you don't need such weight for a console login. You do for servers and other remote activity, but not for the console.

      XDM/GDM/KDM could be rigged to work under GGI or XGGI. They don't need the full X system. You can complete booting that whilst the user logs in.

      --
      It's a small world and it smells funny; I'd buy another if it wasn't for the money; Take back what I paid (SoM)
    25. Re:Should lead to possibly great advertisements by Anonymous Coward · · Score: 2, Informative

      Just a peace of advice...

      If you're really serious about being notified of S.M.A.R.T. disk attribute change/selftest failure, you should consider using the -m switch in your /etc/smartd.conf file. The -M switch controls under what conditions it will email. I have mine set to '-M test' so it sends an email at boot up to ensure that it can mail notifications successfully and also serves to let me know when the server has arbitrarily rebooted which rarely happens when you consider 30 to 90 day uptimes on average. I do this precisely on Fedora (and CentOS and RedHat Ent. can do the same just without the temp monitoring because their packaged version is too old and doesn't have the temp monitoring feature for [S/P]ATA drives). I use it to notify me via email when something happens to the hard drive instantly, like temperature has gone too high, or God forbid a regularly scheduled disk test failed (hasn't happened yet). I used to have my personal headless fileserver email me to my gmail account which I got instant notification of on my Blackberry...ever since my ISP put themselves (the IP subnet I'm on) on a SPAM no mail list...gmail now refuses my mail from my box so now I just email to root and redirect all of that to my primary user account and just run a simple local mailbox poll program to notify me at the desktop when new mail arrives. I hope to come up with something in the near future for better instant notification. But otherwise it works great for logwatch and if it wasn't for the ISP intentionally blacklisting their customer IP space I would still get instant notification of smartd events which are rare so don't worry about them filling up your inbox. I get one lately only when the system reboots and a test message is issued. Only once this year did I get a real warning that the temp had gone over 50 degrees C while I was at work...turned out the A/C had been shutoff the whole day during the summer and I was somewhat overdue to clean out some dust in the fans.

      #man smartd.conf can prove to be a useful read, and if you are using Fedora, alot of the switches and options are actually documented right in the /etc/smartd.conf file. Its a self documenting config file.

      Sly

    26. Re:Should lead to possibly great advertisements by PReDiToR · · Score: 4, Interesting

      I picture something like that, but further.

      Once the distro installer has finished it would attempt to boot the system to the graphical login. If the login screen came up it would save the state of the machine to a fast loading RAM image that GRUB could directly inject to RAM.
      Reading ~100MB of system should take seconds on any machine, and the code area taken up by the GRUB routine could be overwritten with a memory offset command embedded in the first few bytes of the image.
      Once the image is in RAM the execution starts up again immediately waiting for your login details.

      Of course, hardware would have to be hashed to make sure that the image was still compatible with the machine and that the disk hadn't been moved to a different one. Upgrading the hardware or the kernel, software updates et cetera would require the image to be resaved, but those are easily achieved.
      Taking into account the size of the image, I guess that someone could code the installer to compile the kernel with the modules the system uses built in. Maybe as a function of the exit procedure. "Optimise load time - warning! This will take quite some time"

      Basically I guess what I'm saying is something like a hibernate file, but one that is rarely changed and only contains the system, not the applications running in a session.

      --

      Do not meddle in the affairs of geeks for they are subtle and quick to anger
    27. Re:Should lead to possibly great advertisements by Iskender · · Score: 3, Funny

      Kudos to you sir, for reducing the time it takes to type congratulations by instead using grats!

      Using 'grats' is pretty amateurish though: real Slash-users lubricate their keyboards with GRITS for optimum performance.

    28. Re:Should lead to possibly great advertisements by Malekin · · Score: 4, Informative

      32-bit operating systems on x86 can get around this with PAE. Windows XP and Vista don't have support for it, though.

      http://www.appleinsider.com/articles/08/09/03/road_to_mac_os_x_snow_leopard_64_bits_santa_rosa_and_the_great_pc_swindle.html

      The half gig "lost" is because x86 is a memory-mapped architecture. The graphics card memory and all your peripherals are mapped over the top part of your memory address space.

    29. Re:Should lead to possibly great advertisements by networkBoy · · Score: 4, Informative

      You obviously fail it.

      The 32 bit limitation is 4 gigs of RAM (total).
      Your video card's memory is mapped into the same address space as your system ram, but from the top of the address space downward, rather than system ram (mapped from bottom of address space upward).
      The video ram has priority, thus if you have 3G of ram and a 1G video card you are using 100% of your address space. any more system memory installed will be masked by the video ram and thus is "lost".
      -nB

      --
      whois gawk date unzip strip find touch finger mount join nice man top fsck grep eject more yes exit umount sleep dump
    30. Re:Should lead to possibly great advertisements by RulerOf · · Score: 2, Insightful

      This is done by every operating system... ok, it's done by Windows and OS X. Not sure about the linux flavors.

      What I'd be curious to know is if there's a way to prevent it from giving me a damn desktop if I can't use it yet... I wouldn't mind sitting at an hourglass or green spinning circle for 8 extra seconds if it means Windows won't taunt me with a GUI I cannot use :P

      --
      Boot Windows, Linux, and ESX over the network for free.
    31. Re:Should lead to possibly great advertisements by Pr0xY · · Score: 2

      Fail! The desktop editions of Windows XP and Vista will ignore any RAM found above 4GB (that's the RAM displaced by your video card and other memory mapped devices) even with PAE enabled for compatibility reasons.

      PAE from a hardware point of view allows up to 64GB of physical RAM.

      check out http://msdn.microsoft.com/en-us/library/aa366778.aspx#physical_memory_limits_windows_vista.

      Notice how only the server editions have numbers > 4GB and guess what, that "physical memory" is both RAM and memory mapped devices.

    32. Re:Should lead to possibly great advertisements by SanityInAnarchy · · Score: 2, Insightful

      But "The 'done booting' time did not include bringing up the network"? Um, ok... no.

      Consider that "bringing up the network" generally involves communicating with at least one other device. You can't really call it a metric of OS boot time when merely plugging into a different network (or none at all) might change the result.

      Come to think of it, what people really need to do is take a good look at modern OSes and determine EXACTLY what still needs to be there and what's cruft.

      I would much prefer simply cutting them out of the boot process, or making a smarter boot process.

      For example: Maybe I do want a MySQL server running. But I certainly don't want you to delay my login screen while I wait for it to start. I probably don't want it eating up RAM on a desktop, either, until something needs it.

      A good implementation: X11 on OS X. Granted, there are many things not to like about it, but one thing to love is the fact that it only starts once you actually attempt to run an X app.

      --
      Don't thank God, thank a doctor!
    33. Re:Should lead to possibly great advertisements by Anpheus · · Score: 4, Funny

      Ah, the old, "I have discovered a truly marvelous method to improve Linux which the margins of my free time are too narrow to allow me to code."

      Still keep writing.

    34. Re:Should lead to possibly great advertisements by drew · · Score: 2

      It would royally piss people off to have a quick loading screen, log in and then see "Hold up, still starting up the network". (Just as frustrating as starting a Windows or Mac, getting to the desktop and still waiting while services and programs are loaded).

      They wouldn't be the first, unfortunately. The Intel wireless driver on my Dell Inspiron laptop works that way. Somehow they've completely disabled all of Window's built in network configuration and replaced it with a tray app that starts as part of the normal boot / login process. Even when coming back from suspend, I have to wait about two seconds for it to connect back to the network again. When booting from scratch it's even worse. It's actually pretty common for me to have Thunderbird or Firefox (quickly being replaced by Chrome) up and running only to get a connection error because my wireless driver is still initializing.

      You're completely right, though, it does royally piss me off...

      --
      If I don't put anything here, will anyone recognize me anymore?
    35. Re:Should lead to possibly great advertisements by Dolda2000 · · Score: 2, Informative
      Actually though, the 4 GB limitation is the virtual address space size. Most 686-class CPUs have a 36-bit address bus and PAE extensions for up to 64 billion physical addresses. (For the uninformated, PAE allows setting the high 4 bits of the address bus in the page tables).

      The original reported problem of Windows only reporting 3 GB of RAM is probably related to one of the many problems described in this Microsoft article: http://www.microsoft.com/whdc/system/platform/server/PAE/PAEdrv.mspx

      It doesn't mention Vista specifically, but it does list different physical address space limitation for the various editions of other Windows versions. Among others, XP is mentioned as being limited to 4 GB of physical address space, and I'd guess the cause of that would be its not being licensed for more than that. By similar reasoning, it wouldn't surprise me if most editions of Vista have the same limitation. I guess that's what you get for using evilware.

    36. Re:Should lead to possibly great advertisements by RAMMS+EIN · · Score: 2, Insightful

      A couple of things that have changed, from the top of my head:

        - Those old machines had an OS dedicated to support exactly the hardware that was shipped. OTOH, Linux distros are usually generic, and detect hardware on boot.

        - There's a huge difference between a BASIC interpreter and a full-fledged multi-user OS with networking, GUI, etc.

        - PC hardware spends a lot of time during boot before actually handing control to the software. Server hardware is often a lot worse.

        - The code involved in booting those old machines was probably written by Real Programmers, who knew the ins and outs of the hardware they were programming for. It's probably horrible to maintain, but ridiculously fast. By contrast, most of the code involved in booting your Linux distro is written in a variety of languages, by a whole lot of people, few of whom are Real Programmers, and it's probably optimized for genericity and maintainability, rather than efficiency.

      Having said all that, you _can_ boot Linux ridiculously fast. I used to have a 486 where the boot process basically consisted of (1) POST (2) Load GRUB (3) Load kernel (4) Run init (5) Run login. Pretty much a normal boot process. What was special about it is that the kernel had all required modules compiled in, and nothing else. init (IIRC) only spawned a single tty and ran login. And both init and login were BusyBox statically linked against dietlibc. From GRUB to login prompt took less than 5 seconds, IIRC. You could further improve on this by foregoing the BIOS in favor of something like coreboot.

      --
      Please correct me if I got my facts wrong.
    37. Re:Should lead to possibly great advertisements by ppanon · · Score: 3, Funny

      Don't blame me. I voted for kudos.

      --
      Laissez lire, et laissez danser; ces deux amusements ne feront jamais de mal au monde. - Voltaire
    38. Re:Should lead to possibly great advertisements by sofar · · Score: 2, Insightful

      we already boot in seconds. the totaly size of the data read from disk at boot is UNDER 100mb total on our 5-second boot systems.

      you don't provide a solution to speeding things up, only an alternative that works in limited cases. reinventing hibernate at best.

  2. Does it matter? by suso · · Score: 3, Insightful

    I see a lot of comments on the LWN article of people talking about starting services after the user sees the desktop as cheating. However, I ask, does this really all matter. I'm not sure how everyone else uses their computer but I only need to boot my Linux machine about once every 30-60 days. I don't need to dual boot like I did back in say 2002 and comparitively, the amount of time it takes for Linux and X to start up are practically irrelivent. I can imagine laptop users may feel much differently about this, but I thought that was the point of being able to suspend/hibernate.

    One thing that worries me is that a focus on ensuring a quick boot at the expense of a potentially less stable system is not a good thing. Fortunately however quick booting is not something that Linux requires, its something that distributions can decide to do or not, which is one of the strengths of the open source/Linux way.

    1. Re:Does it matter? by Anonymous Coward · · Score: 4, Informative

      Yes.

    2. Re:Does it matter? by pwnies · · Score: 3, Funny

      I'm not sure how everyone else uses their computer but I only need to boot my Linux machine about once every 30-60 days.

      Some people like to power down their computers to stop them from wasting energy at night.
      How they sleep without the sweet, sweet sound of fans running though leaves me dumbstruck.

    3. Re:Does it matter? by kailoran · · Score: 2, Informative

      Perhaps surprisingly, for some people suspend/hibernation actually works on linux so you can boot rarely while not keeping the machine on 24/7.


      I'm one of the less lucky ones that only have half of hibernation working, the "resume" part fails.

    4. Re:Does it matter? by arth1 · · Score: 4, Insightful

      Being able to boot in NN seconds isn't so impressive when you look at the incompatibilities it creates.

      On my networks, the servers connect to the DHCP server and get not only an IP back, but also the name of NIS servers, who in turn returns (among other things) autofs maps which are used to mount the home directories as well as providing login authentication. The xdm login window returns a list of currently available X servers.
      In other words, there are reasons why things run in the order they run, and any deviation will cause things to stop working.

      Improving things are fine, but not when it's at the expense of current and well-known functionality.

    5. Re:Does it matter? by morgan_greywolf · · Score: 2, Informative

      I see a lot of comments on the LWN article of people talking about starting services after the user sees the desktop as cheating.

      Funny, but that's exactly how XP and Vista achieve their 'fast' boot times. XP doesn't actually boot much faster than 2000, once you realize that the services are all still loading in the background.

      But, yes, it does matter, laptop or not. Most desktop users don't leave their machines on 24x7. Just because you and I do doesn't, at all, mean that is typical usage.

    6. Re:Does it matter? by not+already+in+use · · Score: 5, Funny

      How ironic, with all the Vista bashing that tends to go on in threads like these. Vista boots relatively quickly, and hasn't been powered down for me for weeks since suspend/wake works perfectly.

      But at least someone, somewhere can boot linux in 5 seconds.

      --
      Similes are like metaphors
    7. Re:Does it matter? by chromatic · · Score: 3, Insightful

      On my networks...

      ... you can't take advantage of all of these improvements. Why penalize everyone who doesn't use NIS and autofs?

    8. Re:Does it matter? by tepples · · Score: 4, Insightful

      On my networks, the servers connect to the DHCP server and get not only an IP back, but also the name of NIS servers, who in turn returns (among other things) autofs maps which are used to mount the home directories as well as providing login authentication.

      What you describe is similar to what Windows calls "domain authentication". Not every computer logs on to a domain, especially in the home or home office environment where a fast boot is paramount.

      The xdm login window returns a list of currently available X servers.

      Then have it refresh the list whenever a network interface comes up.

    9. Re:Does it matter? by sofar · · Score: 3, Insightful

      so you are saying that you would rather stare at a hung boot in text mode instead of having the possibility of working in offline mode in X?

      that does not make sense at all :)

      for network-client setups like you describe, we should still start X immediately and if the network fails or is slow, at least provide some interaction with the system (work offline, nudge network with login attempt etc).

    10. Re:Does it matter? by gollito · · Score: 3, Insightful

      How ironic, with all the Vista bashing that tends to go on in threads like these. Vista boots relatively quickly, and hasn't been powered down for me for weeks since suspend/wake works perfectly. But at least someone, somewhere can boot linux in 5 seconds.

      Agreed. The only time I reboot my laptop is after updates/new software install. IMO the power management in Vista is the best I've seen.

    11. Re:Does it matter? by elmartinos · · Score: 3, Informative

      Linux has always tried to be an excellent choice for a very broad range of uses. Just because you do not need fast boots does not nobody else does.

    12. Re:Does it matter? by jonbryce · · Score: 2, Insightful

      If you ever end up with an uptime of more than 5 weeks in Vista, you should worry. It means you haven't installed the latest patches.

  3. Another one word answer. by suso · · Score: 2

    Why?

  4. Re:Yeah but... by AKAImBatman · · Score: 4, Interesting

    ROM was a wonderful thing. Simply flip the switch and the software is already loaded into memory. There was about a second or two of initialization (on a ~1MHz 8-bit processor!) and you were ready to go. It's still possible to create such fast boot times using ROM. Especially with re-flashable ROM. These sorts of boot times are seen in systems like Game Consoles.

    Unfortunately, desktop OSes are so complex that using re-flashable ROM adds a great deal of complexity and cost to the design. Thus you aren't likely to see any systems keep their OS in Flash. Compounding the problem is that modern OSes are rarely designed to boot from a ROM configuration and would require substantial changes to boot properly.

  5. TFA by mcgrew · · Score: 4, Interesting

    And no cheating. "Done booting means CPU and disk idle," Arjan said. No fair putting up the desktop while still starting services behind the scenes. (An audience member pointed out that Microsoft does this.) The "done booting" time did not include bringing up the network, but did include starting NetworkManager.

    It seems to me that the five seconds could concievably be brought down to virtually zero with cheating! My work PC slows down so much sometimes from antivirus, inventory controls, etc that it takes longer than that to add a record or open a table in an Access database. With a keyboard buffer you could stick a fake desktop and login in, and have the real desktop and login take over before the user finished typing in his password.

    1. Re:TFA by Dan667 · · Score: 2, Funny

      Your problem may be using Access as a database. Ouch.

    2. Re:TFA by Shikaku · · Score: 4, Interesting

      Yes, please. More common users would benefit from this greatly. I would love a prompt for user and password while it is booting, because most users do not leave their computer all day, especially laptop and handheld/UMPC users.

      With desktop computers, I really think that the time it takes to boot into Ubuntu, THEN going into a Gnome prompt, THEN loading the services and desktop is a silly idea.

    3. Re:TFA by Johnno74 · · Score: 2, Funny

      Access is a steaming turd that should be taken out back for a bullet in the head.

      I cannot express in words how much I hate access. I work/develop with microsoft tech all day, and I don't mind most of it, but access is a big bowl of shit.

      calling it a "spreadsheet used as a database" offends me. spreadsheets aren't that bad.

      IMHO, microsoft makes some pretty good stuff. Parts of vista are pretty good, .Net is very good, SQL Server is very good.
      Unfortunately for them their reputation is then tarnished by completely shit products like windows 9x, access and others I don't want to think about right now.

      I've got a mate who works mainly with oracle. He needed to do something quickly and access didn't cut the mustard so I said try sql server.

      It took me a long time to get him out of the mindset that sql server was just a bigger brother to access.

      Anyway, I go on, but maybe microsoft wouldn't it so hard to be taken seriously in some places if they stopped bringing out shite like access.

  6. On an old Pentium III laptop... by mikael · · Score: 5, Funny

    My stepfather still has an old Pentium III laptop with Windows 95 running on it. Booting the laptop to read an E-mail takes around 20 minutes. His advice to anyone who wants to use it, "switch on the PC, do something else like have a bath, do the lawn, read the newspaper, or have a coffee, and the PC will be ready to use before you know it".

    --
    Vintage computer adverts: http://www.vintageadbrowser.com/computers-and-software-ads
    1. Re:On an old Pentium III laptop... by baka_toroi · · Score: 2, Insightful

      Man, WTF? I used to use Windows 95 on a 486 with 16 MB and it didn't take nearly as much as that. It should be blazing fast on a Pentium III.

    2. Re:On an old Pentium III laptop... by BUL2294 · · Score: 2, Informative

      I call bullshit--unless he's doing some serious work for spyware companies and sending e-mails peddling "Vla*g-ra" -and/or- has a serious hard drive or memory problem. Let's see, Win95 required a 386DX with 4MB RAM--although that setup was painfully slow. Win95 recommended a 486 with 8MB RAM. So, unless you are running a lot of startup apps, Win95 (including Win95B) should boot with 8MB RAM and have a WIN386.SWP of 0 bytes. So, even if he has a PIII/450 with 64MB RAM (even then most laptops came with 128MB RAM), you've got a PC that's easily 50x more powerful than Win95's minimum requirements and 20x more powerful than the recommended requirements...

      Do him a favor... Install Win95B, Win98, or W2K.

      --
      Windows 3.1x calc: 3.11 - 3.10 = 0.00
  7. In case Oreilly goes down again... by pwnies · · Score: 4, Informative
    ...here's the text from the oreilly article:

    O'Reilly News recently interviewed Arjan van de Ven about his efforts to improve Linux performance and reduce power consumption. Arjan works for Intel in the Open Source Technology Center. This interview is approximately 30 minutes.

    One of the projects you're probably most known for in the past couple of years is the PowerTOP utility, which I found very fascinating. Looking at some of the gains you've made over the past 18 months, it seems like Linux-based devices are saving a lot more power than they used to. What do you consider the big successes in the past year and a half?

    To be honest we fixed effectively the entire Linux desktop space. It's not--PowerTOP is more--it's not just what we fixed with PowerTOP is not individual pieces. We fixed everything. For me that was a success.

    Is that everything in terms of not just desktop but servers as well?

    Yeah; we fixed not just Evolution. We fixed Firefox; the thing with Firefox was that it wasn't one thing that was broken. Everything had problems and we had to fix all of it. So for me the success was how quickly everything got fixed; it was just amazing.

    In this context you consider fixed--everything is no longer broken in the same way or--?

    Everything is no longer keeping the CPU out of idle basically.

    Do you have a reference machine? I guess I'm asking what's your benchmark for this, a particular software configuration stack or particular type of machine, or are you willing to say it's pretty much every Linux based machine out there?

    I'm looking at several machines--my own laptop but to be honest, what runs on my own laptop is what I care about most. At least that's where I got more battery life, this is where I see the changes. I tend to run a quite rich environment on my laptop but I also look at service. We look at all kinds of machines and we see the same trend everywhere in that all the various pieces of it--never polling or keeping the CPU up. They all got fixed.

    In fixing this, is there a component of education, for example, saying "Instead of doing a busy wait on a select loop or continually polling you should set a kernel timer and wait for that to call you"?

    That's part of it but the biggest thing is that you had no visibility. Just two days ago at IDF I spoke with a developer of the GNOME desktop and he said, yeah; when I saw it happen I fixed it in 10 minutes, but you don't know it's there until you see it from PowerTOP. Adding the visibility turns out to be enough for people to start fixing it. They know how to fix--how to not poll most of the time.

    You can't fix something you can't measure.

    If you don't see that it happens you don't know it happens and you can't fix it.

    Are you getting the same sort of results from other projects you run into?

    GNOME was there but it's almost everybody goes oh yeah; we should have not done that; either they fix it themselves or some--a lot of people give them the fix and in general it's like oh yeah; we shouldn't have done that. Unless you see what's happening you don't know what to fix, so the biggest thing that PowerTOP did was add visibility. We can see under the hood what's going on and then we can fix it. And quite often the fix is very simple.

    It sounds then, maybe I should be able to say that just about everybody is happy to see this. Is that the case?

    Yes; people--all the developers I've worked with--and that's quite a few--they all go oh yeah. Thank you for the fix; we should have no problems in the first place. We didn't know this; it's fixed now. In the beginning I did most of the fixing when PowerTOP was very new and now days the people do it themselves. The developers learn

  8. Let's head some comments off by Sits · · Score: 4, Interesting

    This is effectively related to an earlier Slashdot story about the changes Mandriva are making to speed up boot on their distro

    In an attempt to head off the inevitable here's a link straight to the existing
    Interesting but how useful, really? thread (Yes! No! I have a Mac! I use suspend! I use hibernate! Suspend is broken for me! Hibernate is broken for me! Hibernate takes too long with 500Mbytes! Why do Linux people always say change your habits? Etc.)

    What I really want to know is what can be done about usb-storage and pciehp (PCI Express hotplug). I have an EeePC 900 using a kernel with Arjan's fastboot patches and with USB entirely disabled and pciehp turned off the kernel mounts the root filesystem in just over one second. With USB on and pciehp in use it's over 5 seconds....

    Finally here's a link to Arjan's slides from the presentation about 5 second boot in PowerPoint format and a YouTube video of the 5 second boot on an EeePC 901.

    1. Re:Let's head some comments off by sofar · · Score: 4, Informative

      We've sent a patch to Greg KH making USB initialization go in parallel which reduces usb initialization from [N * 0.1] seconds (where N is the number of usb ports in your system to [0.1]. This patch is currently in linux-next afaik.

      I'm wondering why you would even have PCIe HP turned on on an asus 900 :)

  9. Good for "appliance boxes" by russotto · · Score: 4, Interesting

    I'd love for my MythTV box to boot faster. Since it's not silent (though the TV fans are louder, the TV isn't always on either), I leave it turned off, and the long boot time makes it less appliance-like.

  10. Re:Yeah but... by Anonymous Coward · · Score: 2, Insightful

    desktop OSes are so complex that using re-flashable ROM adds a great deal of complexity and cost to the design.

    Flash is almost dirt cheap. $10 buys you more Flash memory than most systems have RAM. Just save the state of a freshly booted OS in Flash and when the computer starts, load just what you need to access flash and handle page faults, then start as if you've already loaded everything into RAM and start copying from Flash to RAM. Whenever a page fault occurs, load that page from Flash next. This way you don't need to wait until everything is copied to RAM.

  11. Re:So is anyone making a distro around these ideas by Aggrajag · · Score: 2, Informative
    You should try one of the distros meant for older computers:

    TinyME (my favorite) which is based on PCLinuxOS which is based on Mandriva
    Vectorlinux based on Slackware

    Mepis based on Debian

    Or just sudo apt-get xubuntu-desktop

  12. Important details I'm not seeing by techno-vampire · · Score: 4, Interesting

    Note that nowhere in the article is there any mention of the processor, its speed or the number of cores. There's also not one word about how much RAM the machine has. With enough RAM, you can load your entire system into a RAMdisk and even if you don't have SSM access time becomes (effectively) zero. Also, of course, a 2Ghz quad core machine is going to boot faster than a 1 Ghz single core. I'm not saying they're cheating or anything, but these specs are something you need in order to evaluate what they've done, and they're not telling us.

    --
    Good, inexpensive web hosting
    1. Re:Important details I'm not seeing by sofar · · Score: 4, Informative

      The 5-second demo video is of an asus eee pc 901, however the same image boots on an acer aspire 1 also in exactly 5 seconds.

      These systems have 512mb of memory, a slow consumer-grade SSD (we used a 4gb partition) and a 1.6GHz atom processor (single core, HT enabled).

      this is a _slow_ system compared to any desktop-grade system currently on the shelves.

    2. Re:Important details I'm not seeing by sofar · · Score: 3, Informative

      and we used the 'stock' SSDs in these systems. from the bootcharts you can see that our SSDs top out at 25-30mb/sec throughput on read, far below what most regular hard discs or server-grade ssd's can do.

  13. Re:Boots in 5 seconds... by sofar · · Score: 4, Informative

    it's just a normal linux distro. for the demo we used an auto-login but you can have it start to a password screen as well, so it's just as secure as your base distro is....

  14. Huh? by Sits · · Score: 2, Informative

    I've administrated network authenticated openSUSE machines and they definitely benefited from booting faster (compared to older versions of openSUSE) - after all the sooner the kernel finishes the sooner you can start waiting for that DHCP lease...The key is that the moment someone says they want to run NIS/LDAP/NFS you just say "start everything that doesn't depend on the network while you wait for the network to come up". In your case NIS/NFS/autofs/xdm DO need the network so they have to wait until that DHCP lease is acquired. No functionality need be lost but the dependencies/order of certain events need to be maintained (this is what tools like Upstart are about).

    Strangely enough in one of the article's comments you'll find that Arjan isn't advocating a parallel boot:

    Parallel boot is the wrong thing; it ends up meaning that you're not really doing the critical path in sequential order; but let the system get distracted from that.

    Asynchronous boot (where you let the critical path go sequential, and non-critical pieces asynchronous) is the right answer; the article has a graph about this. And Asynchronous boot you can do just fine with SysVinit.... no magic about that.

    Ultimately I doubt people are advocating all of this work for your typical network workstation. For starters such systems don't tend to be using solid state disks with unattended login...

  15. Re:"Pretty Quick"? Drug of Choice? by DiegoBravo · · Score: 4, Informative

    There is no such thing as end-user-OS-boot-time. It depends a lot on device drivers and system background utilities. For example, some piece of hardware AND some release version of its driver maybe causing your trouble... especially if that hardware is removed and the driver probes a lot of time just to be sure. Same for the AV software doing weird things in order to "secure" the system *before* user interaction... At least in the hardware side, this apply for Linux too.

  16. Get out of my lawn! by snikulin · · Score: 4, Funny
    All modern OSes suck in boot time.
    CP/M was probably OK but my Zilog-based PC had floppies only so it sucked too.
    MS-DOS 3.0 was up and running in 1-2 seconds (assuming you had a hard drive and empty config.sys and autexec.bat).

    Then MS rewrote DOS in that punky and slow new language "C" and since then everything went down. The next thing you see is that HIGHMEM.SYS driver taking your precious memory out of 640KB for the promise of semi-useless XMS memory for overlays. Oh well...

    Now my kernel sits during boot on 4GB RAM looking for un-present USB devices and waiting for eth0 to figure out DHCP.

    I guess Bill Gates was right and 640KB is right amount for everybody so OS would not get confused with all those amounts of bits laying around.

    1. Re:Get out of my lawn! by snikulin · · Score: 2, Funny
      Commodore...Pfft!
      I had to wait for rusty IBM 2314 spin-up for 40 minutes, you insensitive clod! And it was a respectable Thermador fridge-sized thing, not your desktop thingy!

      And it had a separate fridge-size controller with many blinking lights!

      How many blinking lights your Commodore has? Eh? Eh?

  17. Kernel modesetting is slow arriving by Sits · · Score: 3, Informative

    Kernel modesetting is kinda here for Intel and ATI graphics cards (in Fedora) but it's still stabilizing.

    So the answer to your first question is: soon you will be able to set the final video mode in the kernel. As for your second question, doing it in X is not the best solution (as doing it in the kernel means less flickering when X starts, the ability to support graphical kernel panics and nicer virtual terminal switching).

  18. Re:If you really... by chromatic · · Score: 2, Insightful

    I've updated hundreds of Linux boxes without the need for a reboot.

    Linux runs many embedded devices; some of them may wish to boot quickly.

  19. Re:Yeah but... by DreadPiratePizz · · Score: 2, Insightful

    It's still possible to create such fast boot times using ROM. Especially with re-flashable ROM. These sorts of boot times are seen in systems like Game Consoles.

    Uhh, if I turn on my Mac Pro and my Xbox 360 at the same time, I'm up and running with OS X a few seconds before the 360 starts to load the game. I for one hope my computer DOESN'T have boot times like a console.

  20. Booting is overrated by Geheimagent · · Score: 3, Insightful

    I suspend or hibernate most of the time. I reboot my laptop only when the kernel gets a security fix. I don't care if that takes 40 seconds.

  21. Compilers Suck by logicnazi · · Score: 3, Interesting

    The real lesson from all this load time buisness is that our compilers still really really suck. I mean the truth is that when you boot your computer there is only a tiny bit of logic that really needs to go on because only a small amount of stuff changes between any two boots (and less between a boot and a power off).

    A truly well desgined system wouldn't care about arbitrary boundaries between this program and that one, it would hunt down optimization opportunities everywhere and automatically reduce boot up to an extremely lean and quick procedure without adopting the harms of merely loading an old image.

    I mean to take one example a substantial amount of time during start up is probably spent searching for and then parsing configuration files. So long as their is no cross cutting OS level JIT compiler that can deal with both system IO code and application code there isn't much we can do about this without massive investment of effort. However, in principle there is no reason that the system couldn't simply read the preparsed data from a cache and jump directly to the real substantive logic that needs to be done on boot (checking out network conditions, looking for changed hardware, dealing with changed configs)

    --

    If you liked this thought maybe you would find my blog nice too: