Forgot your password?
typodupeerror
Linux Software

Booting Linux In Three Seconds 165

Posted by timothy
from the performance-anxiety dept.
cramhead writes: "Some very cool technology that motherboard manufacturers should consider adopting. Using Linux to boot a system allows flexibility and speed. Thought the world deserved a look at [the LinuxBIOS homepage]" This project sounds similar to the OpenBios project which has mentioned before on Slashdot, but a lot has happened since then, and even since CmdrTaco last posted about LinuxBIOS. The news page indeed reveals that (with certain motherboards), adventurous flashers-of-RAM can have Linux up in three seconds, and they promise improvements even on that. They also note that LinuxBIOS is working with an Alpha DS10 and with an Athlon / SiS730S combination. (This may also remind you of the etherboot project).
This discussion has been archived. No new comments can be posted.

Booting Linux In Three Seconds

Comments Filter:
  • by sigma (53086) on Saturday March 03, 2001 @07:33PM (#386707)
    It takes about 10 seconds for my palm to boot, with about 20 programs and hacks installed. But you're probably thinking about the near instantaneous wake up when you press the power button, because the power button is more accurately a sleep button. The article above is about a cold boot, so if you'd like to compare apples to apples, press the reset button on your palm and see how long it takes to get to the main menu.
  • Very true, and with all their influence, why has microsoft not influenced mb manufacturers to produce a bios that will load windows faster?

    It's probably due to all the dos code that still remained at the core of win9x, but with that gone is this something we may see in the future?

    Clearly you couldn't put windows itself in the bios, but all the chipset drivers could be there. The bios could set up protected mode and load a large file into ram.

    Or is everyone so in love with supporting legacy code that this will never happen? (even considering the amount of code that'll have to be rewritten to take advantage of 64-bit processors?)

  • I think this function also requires a patch to the "shutdown" utility. You set the system to hibernate by running shutdown with the "-z" flag.
  • The Macintosh Classic booted from a ROM image if the command-option-X-O keys were held down. Being as it was ROM-based and all, it was fairly limited--I believe a variant of System 6 was included at a time when System 7 was becoming quite popular.

    --ian
  • No, BeOS doesn't do that. It does a full boot every time.

    However, EROS [eros-os.org] works just like you've described.
  • Power conservation

    Embedded applications

    Laptops

    And there are undoubtedly more.

  • by LuxuryYacht (229372) on Saturday March 03, 2001 @11:19PM (#386713) Homepage
    Very fast boot times isn't the only great feature of LinuxBIOS. LinuxBIOS can boot Linux and other OS's like Be or QNX, though it's not for Dos or Windows since they rely heavily on the legacy BIOS for certain features of operation that LinuxBIOS doesn't bother with. LinuxBIOS has a very stripped down linux kernel that just sets up some basic features of a PC better than many OEM BIOSes (memory, cache, super I/O) and then jumps to loading whatever kernel you wish to take the system from there.
  • If we were to calculate the mean cycles to failure for the average home PC, multiply that by the average time it would be switched off for (8-10 hrs min?) and figure out the cost of power being saved, I think we would arrive at a figure which would pay for a new PC at that failure point. (Same with lightbulbs, leaving them on to prevent their burning out is penny wise and pound foolish.)

    Plus, with Linux in particular, if you're running it as your desktop OS and don't need to leave it on as a server, it is helpful to reboot occasionally so that when you reboot unwillingly you won't be swamped by all the stuff you should have put in the boot scripts and etc, but put off until later, "Oh I'll just insmod that for now...".

    Uptime is a means, not and end.

  • I've heard BeOS has an implementation of a feature that's been around for a relatively long time. It dumps all of the system's memory to the disk on shutdown, and then just reads it when you boot up again.

    I don't know much about what has or has not done- low level OS stuff hasn't really been an interest of mine, but I do know the way fork() works in GNU/Linux. With fork() in this environment, you don't actually do a copy of the entire data segment of the program, you just reference it and make copies of each bit as it's needed. Would it not be possible to do this upon booting of a BeOS system? ( and of course any other operating system that implements the system memory dump feature)

    It seems to me that you'd only have to boot the very core features and just load the rest off the memory dump on the drive as you need them, as opposed to reading the whole thing on startup.

    I've seen a few posts to this story that seem like they assume a computer with more memory would take longer to boot up with the RAM-image system. This way wouldn't. However, it would give you more sluggish performance. It might make other things feasible, like 'undoing' your system back to a certain state (although you'd have to consider data persistance because you couldn't undo changes that have already been written to storage devices)

    Just some food for thought.

  • I figure turning the computer off is the worst thing you can do to it.

    I agree.

    I've had to turn off my computer for a few days twice in the last few months. Both times it got so angry with me that when I started the computer (in Linux, of course), it crashed just before giving a login prompt!

    I suspect that some of my tweaked hardware doesn't like running cold (referring to temperature). When it's gotten through the fsck on the second boot (I've got several gigs to check), it always works perfectly...
  • I have a Sun Microsystems Sparcsation 10 that was manufactured in 1992 - 1993.

    In the PROM (BIOS), I have a basic unix OS, can boot from CDROM, boot from the network, boot from a tape drive, compile, IO to a serial port, and do a host of other things.

    That was like nine years ago. If there is no demand on the consumer level for these things, you will not see it no matter how long you wait. Start harassing the PC BIOS manufactures to get off of their asses and start programming per your demands.
  • Like they aren't planning to do that with Windows XP? Once they release that turkey, I bet you real money that alternative OS's will hit the mainstream big time...
  • I would still be waiting about 8 seconds, because, it takes longer than 3 seconds for my monitor to warm up.
  • The Linux boot sequence and startup was designed for multiuser, timeshared machines. I don't think it's appropriate for the current Linux desktop use.

    I've gotten even old, slow machines to boot very quickly (under 10 seconds after LILO prompt) by compiling a non-module kernel and replacing the /etc/rc.d/... stuff with a single /etc/rc script. Of course, none of the standard admin tools know what to do with that sort of thing.

    I think rethinking and redoing everything from the time the Linux kernel loads to the time the user gets a prompt or login screen could both simplify administration and speed up booting without sacrificing flexibility.

  • RAID-0 LinuxBIOS!!! Whoohoo, boot Linux in 1.5 seconds with even more functionality!? ; )

    LinuxBIOS would be super cool to boot firewall/gateways with no disks at all!

  • ram access is faster than hd access.

    True. But most computers I've seen take a good bit even before they access the hard drive. Checking ram, scanning PCI bus, etc...
  • I was thinking about the Reiser Situation too.

    but I think an electronic solution would be a lot faster than any mechanical Harddrive (even SSCI)

    Combine Reiser FS and a special Boot Chip, and I think you'd have a real winner!
  • This is a great idea, even if most people won't need to use it. I've been waiting for Microsoft to start forcing PC manufacturers to use "trusted" Windows-boot-only BIOSes, and if (when!) it happens, there'll be a way out.
  • you forget that most people turn their computers off at night. It saves power and is simply practical if you're not running any servers. While the bootup time isn't horrible on linux, it's certainly noticeable. I would gladly welcome a setup that booted quickly and shut down quickly.
  • If someone made a consumer device just to play mp3s you could bet it would not run a multi user unix os. All you need is some eproms and the dsp decoder chip and some media to read from.

  • Why is it so important to start a computer so quickly? I leave my computer on all day, and most people leave them on for at least hours at a strech. While superbooting might be a nice goal to work towards technically, I can't see how it's actually that useful.
  • You know what else I would love to see in linux? Kernel hot-patching ala Solaris. That'd be SWEET. Anyone know of any projects around trying to do that right now?

    Justin Dubs
  • There are enough variations in hardware configs that I wonder how much of it needs to be handled in the bios, and how much can be set aside until you start loading drivers?

    A good bit is handled in the LinuxBIOS. The first thing that has to be set up is the memory controller and the DIMMs! Then copy the Disk on Chip access code to RAM, copy out the LinuxBIOS proper, and jump to it. That has to happen in the first 512 bytes since that's all that's available at powerup from a Disk on Chip. Then the bridges must be turned on. Some chipsets have a watchdog timer that must be turned off to avoid a hard reset. For debugging, it's good to get the legacy bus and serial ports up as well. Finally, turn on the various built in devices like ethernet and IDE, basically anything that is normally configured in the CMOS.

    After all of that, gunzip the kernel into place, set up a page with the kernel commandline and such and jump to it. The system will look more or less normal at that point except that the IDE driver expects that the drive has had time to spin up and init (it hasn't). A couple of small patches take care of that. In the 2.4 kernel, there's a framebuffer driver that knows how to turn on the built-in video in the SiS 630 chipset. In 2.2, you get no video.

    It's interesting to study the code. You'll gain a huge appreciation of how complex things have gotten since the days of tweaking registers in the Apple or Commodore 64, or the old PC,XT, and AT for that matter.

    It will be interesting to see how it handles the various chipsets. Each one has it's own odd quirks, and it's not unusual for hardware bugs to be hidden behind some BIOS magic work-arounds (In some cases, the BIOS just keeps resetting the chip until it decides to come up). Many vendors jealously guard their register level specs for whatever reason, especially video cards.

    Fortunatly, SiS has been very helpful and open about it's specs.

  • That's what demand paging is for. Any modern operating system with virtual memory should be able to do that.

    That works quite well for user space, but in-kernel stuff is another story. You'd at least need the memory management, syscall handling, interrupt handlers, and the block device drivers safely in memory. By that point, you might as well pull in the rest on startup and avoid the hairball and performance hit. Userspace is demand paged anyway, so no problems there.

  • idiot, that's just a pointer to your own computer. it doesn't take much skill to access your own filez.
  • The problem, as I see it, is that this BIOS can *ONLY* boot Linux, since you flash the kernel image into the boot ROM. This would mean you couldn't dual boot (even different versions of Linux) without reflashing your BIOS every time.

    With two kernel monte, the kernel in the ROM can directly boot another kernel loaded from disk or network (even serial for that matter).

    It definatly won't boot Windows. I like to think of that as a feature :-). It is nice to get rid of the last bit of proprietary software.

  • Hibernation is normally done by the bios, so you have no control over its process whatsoever. The bios just writes your entire RAM to your harddisk (normally to a special partitition), stores some system status data, and powers off.

    By the way, I prefer suspend over hibernation. Suspend is virtually immediate, while hibernation takes somewhat longer than normal booting. Also, you save 200MB of HDspace (I have 192meg ram).

    ----
  • It depends on the efficiency of the devices. A lightbulb isn't designed to radiate infrared energy, its designed to radiate energy in the visible light spectrum.
    This isn't really accurate. It does matter that a BTU of electric energy is more expensive than, say, natural gas. However, this wasn't your objection.

    Creating heat is the one place where efficiency doesn't matter much at all. Second law of thermodynamics -- energy is neither created nor destroyed. The energy in light ultimately ends up as heat -- the light rays bounce off of surfaces, each time becoming dimmer and slightly heating the surfaces.

    There might be a certain inefficiency to this -- maybe the surfaces aren't what needs to be heated, and while some of the heat of the walls goes to the air, some goes through the wall and outside. But I doubt that really matters much.

    If you are burning fuel, efficiency does matter. You have to burn the fuel completely, and you want to lose as little heat as possible through exaust. But for electricity it's not really an issue -- all those efficiency issues have been taken care of at the power plant, and the electical energy is pretty much guaranteed to become heat in the end.

  • I've been thinking why they don't create a faster way to boot a computer for a long time. rzbx
  • Sorry to reply to myself, but I did some looking around. There's a "suspend to disk" patch (which requires patching the kernel and sysvinit, but not shutdown). Look here [sch.bme.hu] for more info on that. This is the same "swsusp" program mentioned previously.
  • by warpeightbot (19472) on Sunday March 04, 2001 @12:01AM (#386737) Homepage
    What would be really cool is a way to upgrade your kernel without rebooting, like QNX...
    Ask and ye shall receive...

    http://www.scyld.com/products/beowulf/software/mon te.html [scyld.com]

    It's called Two Kernel Monte. It's a module that loads a new kernel into memory, does a little do-si-do dance to get it where it needs to be in the mode it needs to be in, then simply jumps to it. (Yes, you need to do

    umount -a;mount -o ro,remount /

    before doing this, since it doesn't do any of that...) No, it's not an in situ change, since all your processes die, but for systems with multiple SCSI or RAID cards, it can mean the difference in a few seconds for reboot and a few long minutes....

    On a side note, make sure and grab my link; the one on Google is wrong (until they fix it), and it took me a while to find the right thing...

    --
    Never assume TFM is right.

  • Hear hear. I remember my old Tandy 1000s. I had an HX and an RL/HD20. They were pretty sweet for the time.

    You'd turn one of them on, it would wait a second, you'd hear a beep, then a second later you'd see the PhoenixBIOS (IIRC) banner and you'd be dropped to an A: or C: prompt. :)

    Then you'd load DeskMate (or BASIC or whatever) and be off!

  • by tbo (35008) on Saturday March 03, 2001 @07:10PM (#386739) Journal
    This would be useful for Windows, considering how often you need to reboot.

    Why would you need it for Linux, though? I mean, who reboots more than once every major kernel upgrade? What would be really cool is a way to upgrade your kernel without rebooting, like QNX...
  • It seems to me that you'd only have to boot the very core features and just load the rest off the memory dump on the drive as you need them, as opposed to reading the whole thing on startup.

    That's what demand paging is for. Any modern operating system with virtual memory should be able to do that.

  • Perhaps look up 'ulimit' sometimes.. if you don't allow child processes to consume unlimited resources then they will simply run out of 'allowed' resources themselves long before it becmoes a problem for anything/anyone else..
  • by hattig (47930) on Sunday March 04, 2001 @04:15PM (#386742) Journal
    I agree wholeheartedly, and I would put you up to +5 if I could.

    If anyone out there who has any say in next generation BIOSes that are not intended to boot windows or other OSs that requires primary and extended partitions, then please implement this.

    I would a system with unlimited partitions, no legacy hard drive rubbish etc. Instead of mounting / on sd1s3a1 etc, why not mount / on "root", mount /var on "var", mount /usr on "usr" etc, just like the Amiga ("Work", "Workbench", "System 3.0" etc. The same goes for removable media - the Amiga has "CD0", "Zip0", "DF0", "DF1", etc for various types of removable media. Instead of mounting a floppy as /mnt/floppy from /dev/fda or whatever, mount a floppy as /mnt/floppy from "fd0" or "floppy", or "zip" or "playdisk" or "dvd" or whatever.

    Add naming to disks themselves. Then when you do cd /mnt/backup, the system will ask you to insert the disk named "backup", which could be in any drive. The OS would autoload the disk when inserted, see that the disks name was "backup", and everything would continue fine.

    Computers have gone a long way backwards since the elegant solutions that existed and died in the past with the likes of the Amiga, etc. This can mostly be blamed directly on Microsoft and Unix systems where usability was put last on the list of priorities. Now it is important, there are a whole load of nasty hacks to get around the crufty old PC system that just doesn't work nicely. The sooner it dies, the better.

  • e.g. how long does it take to boot a palm pilot?

    basically, to paraphrase:
    ram access is faster than hd access.

    © 2001 Anusmouth_Cowherd.
  • The effect of something like this could be anticipated with an analogy:

    Remember, before you had broadband how you would wait for a lengthy list of this-to-do to accumulate before you dialed up and went online? I'm sure that this is ancient history to all of us, but think about what broadband did. No dialup at all, (or nearly instantaneous dialup). Instantaneous access. It caused a metamorphasis in the way that we use the net. Our entire perception of how we should use it, and our useage patterns themselves changed drastically. It became integrated into our lives instead of being an auxilary component that we hooked into every now and then.

    This near-instant boot time, if popularized, could both spell new growth for linux and computers in general. It would integrate them into people's (ie the general populace's) lives in a way never really achieved before. It would be very cool. ;-)

    Just a thought.

    FYI: I'm using a 31.2 connection right now. It's the best I can get in my area.

    O'Toole's Commentary on Murphy's Law:

  • Core memory.
    Magnetic cores with interlaced wires. Bulky, slow, and expensive. If you laugh about 640k "being enough", think about 64k byte mainframes.
  • Actually on my laptop Windows ME boots faster than it comes out of hibernation.

    On my old laptop I could use 'apm --suspend' and leave it like that for days, so far this new Toshiba 2805-S201 isn't coming back from a suspend in Linux (let me know if you see anything about it).

  • This will rock when it finally goes live. I remember reading the older /. article about a Linux bios (using VIA chipset I believe?) and the problem that they encountered was the system booted to fast for the drives to come online.

    It would be nice though to have all my newer computers boot as fast as my 286.

    Its wierd really, my 286 will boot into DOS faster than any of my newer computers will boot Linux, Windows, or BSD. What the hell is that?

    (Yes yes, I know its all about hardware detection loading daemons, etc etc etc. It still feels like a throwback when a 286 and an IBM PS/2 boot faster than anything else modern.)
  • That may be, but check out LOBOS (linux boots linux) which takes care of that problem. Also work is being done on a general elf image booter withing the project as well.
  • by ksheff (2406) on Saturday March 03, 2001 @07:45PM (#386749) Homepage

    Go to their site and read some of the pages. This started at Los Alamos _for_ their Beowulf clusters exactly for that reason.

  • You mean like empeg [empeg.com]?

  • Like the article which you've obviously not read, says: it boots MUCH faster. I think that's useful for regular Linux users. It's really useful if you want to make a diskless box that doesn't need a network to boot from, but that's maybe a bit less interesting for regular users.

  • If you could replace the BIOS with Linux, then I guess you could accurately say that it would be possible to run windows and linux simultaneously (without emulation)
  • by ksheff (2406) on Saturday March 03, 2001 @07:55PM (#386753) Homepage

    This would be useful in building internet/compute appliances with standard PC motherboards. People have come to expect a device to be on instantly when they hit the power button. How successful do you think a modern TV would be if it took 20-30 seconds before the user could do anything? In their case, they wanted to have the ability to add a compute node to their Beowulf cluster, turn it on, and have it ready for work in a few seconds.

  • On a decent system with a faster IDE controller (not the 16MBps system your mate is using) then I am sure that the IDE flash ROM transfer rate would be even faster, maybe even 100MBps. That would be great for the tasks that only need that. I could fit a minimal FreeBSD + exim configuration on one of those for a mailserver that would boot up in seconds rather that minutes. Sure, the logs and data for the system would be on a hard drive still, but anyway.

    How much do these IDE solid state disks cost anyway (the small ones, not the fast ones). Imagine fitting a kernal, sshd, bash and a fully configured apache on one for instant web server availability. I know that the win2k microsoft.com website runs of large solid state disks for near instant reboots.

  • by rminnich (322407) on Sunday March 04, 2001 @05:20PM (#386755)
    Speaking as the person who started linuxbios and runs the project from here at LANL, I thought I would mention a few things.

    3 second boot. Trust me, it's nice. And no matter how fast you make your boot, mine will probably always be faster, since you'll always be stuck with that crazy BIOS doing all that unnecessary work so that DOS will run.

    3 second boot: it's nice but it's not our primary reason for doing this. We need to replace the BIOS
    because of its many stupidities:
    - zeroing memory on boot, so you can never REALLY know what happened when your machine crashed
    - Those 'no keyboard, hit F1 to continue' messages on nodes that have no keyboard. Think this is only happening on old machines? Guess again! It happens even now on a rack of Compaq DL360 machines we just bought. Every once in a while, they ignore the 'no keyboard' bios setting. Imagine trying to deal with this if you had 256 nodes with no display. No fun.
    - Current BIOSes allow no good way to boot without disk, floppy, or CDROM. I'm well aware of PXE, but the many defects of that standard make it only partially useful.
    - BIOSes are getting worse. Intel's next-generation BIOS, the EFI, will require that you have a FAT-32 formatted partition somewhere, and as part of the boot process you will have to run CHKDSK. Nice, Huh? If you have a strong stomach download the 400-page standard, read it, and then wonder why this is better than just loading Linux from flash ... oh, and of course, EFI only works on one architecture; LinuxBIOS already works on two, and PowerPC is on the horizon.

    Our main use of LinuxBIOS is for clusters. That said, I have a LinuxBIOS machine as my desktop and it is really nice. When you're doing kernel work you tend to reboot now and then, and LinuxBIOS takes the pain away.

    Even cooler: we have an 8 MB Millenium Disk On Chip on one of our clusters. Ollie Lho and David Woodhouse worked out how to make the last 7MB into a root partition. We put the Scyld root file system onto that partition, so that the nodes boot up right into the Scyld cluster environment. Voila, silicon cluster nodes. Life is much easier.

    See http://www.linuxlabs.com/linuxbios for a ompany that will be selling these as cluster nodes. Also see http://www.lnxi.com for another use of LinuxBIOS. For other systems that boot Linux from flash, you can check out synergy, CSPI, and API.

    For an embedded use, booting in 3 seconds is pretty helpful. Do you really want to wait 15-30 seconds for your stereo to come up? I've talked to a few companies that want to use this for set-top boxes, and one that is probably going to use it for a CD player.

    For a really interesting embedded use, check out http://www.cachier.com

    OpenBoot: Yes, if you don't mind writing all your own protocol stacks, drivers, etc., etc., all of which Linux will do better, then go for it. But we've found here that Linux makes a beautiful bootstrap. We currently only boot Linux from Linux, but both Plan 9 and OpenBSD are in the works. Linux is a good bootstrap.

    I've only scratched the surface here for reasons and uses of LinuxBIOS. I hope this helps a bit.
  • True - maybe. But if they're on the bleeding edge of profit, using Linux vs. Windows or developing your own is an easy start.

    As for the multi-user - does it really matter what is on there. I suppose they could always start it with init 1 and not worry about that.

    Besides...I'm not making a consumer device, I'm making something for me, and Linux I understand...eproms and dsp's - I know what they are! :)
  • My PC is noisy. I can't sleep if I leave it on overnight.
  • The PROM is not UNIX based, rather it is Forth.

    And, yes it is very handy. I prefer the Sun PROM console to BIOSes anyday, it's so much more powerful.
  • by UnknownSoldier (67820) on Sunday March 04, 2001 @07:21PM (#386759)
    For the record, I run Win2k, Linux, and BeOS.

    BeOS boots in literally 3 seconds. Linux 2.4 about 10, and Win2k in about 45 (stupid long @$$ boot time)

    Why do you need a new BIOS just to boot Linux faster??
  • If your partition system reserves the beginning of the disk for a boot loader, then only the boot loader and OS care what the partition scheme is. You don't even have to use partitions at all on a disk that you're not booting from:

    mke2fs /dev/hdb

    Linux already has support for other OS's partition schemes (BSD, Macintosh, Solaris Sparc/i86, Unixware). Adding another would probably be a lot easier then most of the other work people happily do. LILO wouldn't care what the partion system is if you installed it at the beginning of the device (boot=/dev/hda). Grub could probably be patched to understand the new scheme just as easily as Linux could.

    The only downside is that you couldn't dual-boot any OS that didn't understand the new partition scheme. That's probably why noone has done it yet.
  • Have you ever worked on a machine with 2 or more scsi controllers, and 512 MB+ of RAM? This is being worked on in relation to their beowulf cluster; believe me, it takes the nodes in our cluster at least 2 minutes to complete a RAM check and a basic bus scan (which is done a 2nd time when the SCSI module is loaded). And they are planning on upgrading the boxes to a GIG apiece.. argh.

    (Oh, and moderators: YES, beowulf clusters are on topic in this article :) )
  • by Mekanix (127309) on Sunday March 04, 2001 @03:03AM (#386762)
    ... how about replacing this really stupid, crappy and annoying partition-scheme that seems to cripple the x86-architecture?

    Primary, extended... etc. ... what *is* that?

    I *really* miss the way Amiga did it. Partition your drive as you see fit. Use *naming* instead of numbering of partitions. Remove, add, split, join partition without affecting the other partitions and needs to reconfigur (eg. hda9 suddenly become hda8 or hda10 or something).

    Just my 2 cents....

  • think bigger, imagine BSOD:s during BIOS loading!
  • by Odinson (4523) on Sunday March 04, 2001 @03:18AM (#386764) Homepage Journal
    I've noticed the absence of discussion of the HDCC threat.

    If such a thing went through, having a open source bios image to flash might be the only thing that saves us from Dumb/Prejudical/Just-Plain-Evil(TM) HD access restictions.

    EX: The BIOS refuses see LILO in the boot sector...

    Trivial now, Vital Later.

  • Nobody seemd to mention that LinuxBios could be a big plus on embedded systems and internet appliances.

    We can't just think about geeks who keep their computers on all the time, but other folks who might be switching them on and off several times a day, and for different system designs where fast bootup is a big plus. Things that people may not think of as a "computer," like Tivo, etc.

    Also, being able to boot to a more flexible maintennance state, including network, and a bash prompt, even if the hard disk fails.

    Use your imagination!
  • Gotta start somewhere, its usually some random thing that we discover how to do first, then we take a step back look at it... think, man thats cool, but what if it could _________ and then we make that work. That's how most technology has gotten to where it is now anyway. So think of this as step 1, a working prototype, showing us a window of things to come.
  • Well, living in a flat with a most bizarre electrical circuit (we hired an electrician to just tell us, how it was set up, and he looked, laughed, shook his head and said "no way") sometimes means "rebooting" (does anyone have a cheap UPS or three for sale? I'm a student). Also, the AC outlet in the Danish trains flicker, if the train brakes or accelerate too hard. Not good on an old laptop with no more battery (yes, I know fsck takes some time after that).
    Am I wrong, or does Linux not depend on the bios detection for hardware (it could be only HDD geometry, that's where I read it)?
    But in the end, yes, you could deem it useless, but never underestimate the argument "because we can, damn it" :-)
  • But why use hibernate - that still has to read all the memory off the disk - since it's done in the BIOS it's OS independant - while I could use it my 3 yr old DELL/redhat/KDE system just suspends - virtual instant-on - batterys last days in suspend state (but it lives in the dock anyway when I don't use it) - only time I ever truely hibernate it is when I'm oing on a plane
  • by FFFish (7567) on Saturday March 03, 2001 @08:03PM (#386769) Homepage
    I figure turning the computer off is the worst thing you can do to it.

    When does a lightbulb burn out?

    When you turn it on, of course. They seldom burn out when they're up to, ah, speed.

    Same thing with electronic gear. That first millisecond of power-on is a bit of a strain on everything, and the first few minutes of getting everything up to running temperatures is another stressor.

    Might as well leave the poor thing running...

    [he says, thinking that perhaps his ACPI thingamagummy is probably actually powering off the drives (they spin down, fer sure) and putting the CPU into a heavy-duty sleep cycle... and the monitor power-saving feep probably lets it all cool down a heckuva lot, too...)


    --
  • While this is a cool idea, I think I'd rather have an OpenBoot implementation. That would take a nice chunk out of the suckiness of peecees. Unfortunately it also requires duplicating a good portion of the work that has already been done in linux - ie writing drivers for the various bootable devices, since unlike in a real OBP system they will not have their own fcode drivers and must be emulated. Still, the knowledge they are building for this could later be used for something like that. Basically instead of booting linux, they would bring up an ok prompt. Alternately, I suppose, one could simply write a userland OBP emulator and run that as init. Then much of the work could be eliminated. Why OBP? It's a nice environment, and a familiar one for many people.
  • ulimit DOES NOT FSCKIN' WORKS for Netscape and X.
    I don't know why, but at least with the 2.2 kernel trying to 'ulimit' or /etc/limits the memory size of an user was disregarded by X and netscape.
    The time and process limit work ... but that's no use for an netscape gone beserk with malloc().

    :(

    --
  • API Networks (http://www.api-networks.com/products/cs20.shtml) has built this same capibility for their dual 833 Alpha CS20 1 U server. Which includes a flash managment/failsafe/diagnostics firmware (that fits in under 200k) called "Alpha Diagnostics Environment" or ADE for short. So for example if you say burn a bad kernel you can still just start your system and enter ADE and flash in a new one. You can also write to flash from Linux. Makes firmware upgrades and kernel changes alot more convenient. Average boot time on a box that doesnt have to do a VGA bios init is under 10 secs. From power on to login prompt.
    Peter
    --
    www.alphalinux.org
  • Yeah, there a a few non-volatile memory technologies on the horizon. I think FRAM (ferro-electric RAM) is a bit more advanced than MRAM - it's been shipping for a while.

    I guess you could to the same no-boot thing on a regular PC by having the shutdown code just write the memory image to disk, and read it back in when you restart (i.e turn the power back on). Of course with todays common memory sizes of 128-256M and up, it'd still take a few seconds with a fast disk to read it back in.

    Nowadays I just leave my PC on all the time anyway.
  • What would be really cool is a way to upgrade your kernel without rebooting, like QNX...
    Ask and ye shall receive...

    http://www.scyld.com/products/beowulf/software/mon te.html [scyld.com]

    It's called Two Kernel Monte. It's a module that loads a new kernel into memory, does a little do-si-do dance to get it where it needs to be in the mode it needs to be in, then simply jumps to it.

    Two Kernel Monte is a cool trick, but it's not really "upgrading your kernel without rebooting" -- it's "rebooting without BIOS reinitialization". It's a Linux equivalent to the LOADLIN program under DOS, allowing Linux to load and run a new OS, handing over control of the entire machine.

    This is a good and useful trick, but it's a far cry from upgrading the kernel without rebooting. Since the old OS is entirely defunct and the new one has to initialize itself from scratch, this remains a reboot, albeit a faster one...
  • by ocie (6659) on Saturday March 03, 2001 @09:18PM (#386790) Homepage
    That may be true, but I found that in my apartment, leaving the computer on 24/7 accounts for a full 1/3 of my power usage. No reason to waste that power.
  • I can't sleep without my computer on. the noise is so comforting. once, during a power outage, I just tossed and turned, without falling asleep due to the lack of noise. perhaps running a fairly noise machine in my room since high school and having 2 servers in my living room, and sitting in front of a computer at work has made me so used to the noise that the lack of it just drives me batty
    ---
  • It depends on the efficiency of the devices. A lightbulb isn't designed to radiate infrared energy, its designed to radiate energy in the visible light spectrum. Yes, infrared energy is radiated, but thats waste energy (which could be put to use).

    A furnace is designed to be most efficient at radiating infrared energy. Other wavelengths are emitted but again they're just waste.

    If you really believe that the amount of energy used by leaving on a lightbulb (or computer, or blender etc) continuously is offset by the furnace being operated on a lower duty cycle you're wrong. Just as wrong as if you insisted you don't need lights in the winter since the furnace is on and emitting visible light radiation.

    If this ever becomes untrue I'll fully expect to live in an EZ-bake house.

  • by Jeffrey Baker (6191) on Saturday March 03, 2001 @09:30PM (#386797)
    Linux doesn't need to hibernate if the machine's BIOS supports it. My vaio ran Slackware Linux for almost a year and I used the hibernate feature all the time. I simply invoked the key combo for suspend-to-disk and all was well.

    Beyond that, there is a patch for the 2.2 kernel called "swsusp" IIRC. It allows the kernel to suspend itself to disk by flushing all its buffers and writing process memory out to the swap file. When the machine reboots, the kernel recognizes a special signature on the swap file and reinitializes from where it was suspended. Last I checked, this hadn't been ported to 2.4 yet.

  • Rebooting upon kernel upgrade is ... HOW often?

    If you've been tracking the ac releases [0], and compile for more than one machine (and yes, sleep occasionally, heh) you'll realize that it's been an almost constant process of recompiling lately. 2.4.2-ac11 is out, and possibly later revisions by the time you read this. (Alan has been prolific of late.)

    I can't begin to think of the number of reboots I've done in the past week, once you start counting testing various combinations of kernel options and their interactions.

    As for kernel upgrades without rebooting, no thank you.

    I've been bitten by boot-time errors recently, things that would not have been discovered until the next power failure mysteriously caused hangs. At least this way there is a chance of catching the error within a reasonable proximity of the time the cause was created. There is more to good system administration than some penis-waving, "my uptime is bigger than yours," mentality seen on some IRC channels and web sites.

    If you care about your system's reliability, you'll test its boot sequence every so often, even if inadvertantly. (If all you care about is penis-waving, please take your immaturity somewhere that it won't harm my systems until you grow up.)


    [0] because 2.4.x doesn't support your 2.0.x- and 2.2.x-supported hardware


  • Hmm, use a cool-running CPU like a 206 MHz StrongARM and you don't even need a fan. Maybe the whole thing could fit in something the size of a paperback book.

  • . . . why the plastic liner inside you microwave shrivelled, your house burned up after a gas explosion, but was put out by the flooding washing machine . . .


    :)


    hawk

  • by mindstrm (20013)
    Built-in hardware hibernation works fine on my vaio z505le too. If I recall, it uses the fat32 partition at the beginning of the disk to store state information. you only have to make sure this partition is the appropritae size.
  • It doesn't have to be that way.
    In the same way that you can go into Linux from DOS (loadlin), is it possible to change operating systems without a full reboot.

    Remember, the BIOS itself can be considered to be "an operating system", it's just a rather rudimentary one. Mine has "applications" such as Hard Disk tools, and is "preemptive" as when I'm on the basic BIOS settings screen the real time clock on screen is updates whilst I'm editing other fields.

    The 'unusual' thing (for an OS) needed for this OS flipping to work is that the bootstrap OS must be willing to _give up_ its control. This must be done with great care. Remember, the kernel is there in order to keep control in a traditional scenario. However all you really need to do in the general case is to request a GDT code segment with Ring 0 permission, get yourself full I/O port permission, and a new segment the the IVT (interrupt vector table) then disable interrupts, change Interrupt table, and jump to your new code, and reenable interrupts again.

    Voila!

    FatPhil
    --
  • by istartedi (132515) on Saturday March 03, 2001 @08:27PM (#386812) Journal

    It sounds like you're coming from a server mentality, where uptime is a big concern. Most home users treat their computers like their TVs.

    Todays computers are, with regards to starting, where the old black-n-white vacuum tube Philco TVs were. They took a while to warm up.

    At some point in the future, people will reminisce over how computers used to take a minute to "boot up". Actually, as computing has progressed, boot times have been an on and off problem (no pun intended). The old 8-bit home machines loaded the OS from ROM and booted up virtually in an instant. In an ironic twist, the introduction of inexpensive hard drives for home PCs probably caused a big step backwards in terms of boot up time. It became cheaper to just load the OS from the HD. At some point, we'll figure out a way to have our cake and eat it too. I'm thinking that cheap, fast solid-state hard drives would be a great thing.

    By then, computers will be so established that nobody will talk about operating systems anymore. What OS you run will matter as much as the details of the circuits in your TV. They will all perform about the same, and everybody will know how to build them so that they run with approximately the same reliability. That kind of puts the whole "free vs. proprietary" software debate in perspective. Given time, it simply won't matter because all technology tends to march slowly towards commoditization anyway.

  • I love the fast boot from hibernation, especially when battery time is already less than a transcontinental flight.

    You must not have much memory in your laptop <grin>. Mine has 512MB of RAM and it takes W2K much longer to read/write that half gig that it does just to boot normally. Think about it, it's common for drives to deliver 3-4 MB per second of throughput. Divide 512 by that and you get 2-3 minute boot times. Not fast.

    Oh, and yes I do need that much RAM.

  • I've got my old Mac 512K (1985) in the closet these days... pull it out every now and then to show off boot times. My MacWrite/MacPaint floppy (which also has a System Folder on it) boots to fully functional Finder (the Mac desktop) in about 7 seconds after the power switch is flicked on. Not too shabby.
  • Certainly this is cool, and I'm sure it would be very useful for some embedded applications.

    However, most serious linux users would gain much more time by switching to reiserfs, or any other journalling filesystem, instead of waiting for ext2 to take an interminable amount of time to fsck its drives, and possibly lose data...

    I know. Ask anyone who, say, had a SCSI card go bad on them.
  • Why not build an Open Firmware clone? There are free Forth systems readily available, the extensions necessary for OF are not excessive. Doing a byte-code compiler using the OF specs would be interesting, but not particularly difficult (starting with a normal Forth environment).

    I don't see any reason at all it couldn't work. The real issues are more based on need. Arguably, the same result can be had for a fraction of the effort by just booting a stripped kernel and running the Forth environment (or any other boot environment) instead of init. With 7 Meg of flash available and using busybox for many of the basic functions, there's a lot of potential there.

    Of course, there is definatly hack value to be had in going directly from the LinuxBIOS loader into FORTH.

  • by silent_poop (320948) on Saturday March 03, 2001 @07:18PM (#386826)
    ...WinBIOS? "Boot in 3 hours!"

    --
  • Sorry, but you're wrong.
    Have you heard of the Dell Digital Audio reciever? It actually runs Linux. It does a little more than just play MP3s, though. It reads files from the network. A pretty cool thing.
  • Might be cool to see a special boot PROM on a network card. Fool the computer into booting off a chip, but make it think it's booting off another computer on the network.

    Might be a tough hack, but it sure would be cool
  • by becker (190314) on Sunday March 04, 2001 @08:08AM (#386831)
    Check out the 27Bz-7 Scyld Beowulf CD distributed at the NYC LinuxWorld show. You'll see how Wake-On-LAN is now moving into the cluster control and node scheduling tools.

    If a compute node takes two minutes to boot, you can't risk it being powered off when you need it. If it only takes a few seconds for a compute node to rejoin the cluster you can freely power down idle nodes. If you look at the average utilization for medium sized clusters, you'll see that this could save a lot of power.

    Scyld Beowulf [scyld.com]

  • Sure it's cool but:
    - most of the time involved with booting goes into starting operating services. My kernel takes about 1/2 seconds to get to the part where it starts doing stuff with modules and inetd, those live on my HD.
    - it seems to be linux exclusively
    - should you be booting that often?

    I think all this is a start of what might be a good solution to an existing problem: the current BIOS is slow, does stuff that could be considered redundant and does so in a suboptimal way.

    I would like to see sing a bit speedier, however my PC spends only 5 seconds or so in the BIOS. If this project can save me about 2 seconds (which is what they claim), that sure is great but I still have to sit through the rest of the booting process. Can't we speed that up? I would love to see a hibernate function as in W2k appear in linux for instance.
  • The 'unusual' thing (for an OS) needed for this OS flipping to work is that the bootstrap OS must be willing to _give up_ its control. This must be done with great care. Remember, the kernel is there in order to keep control in a traditional scenario. However all you really need to do in the general case is to request a GDT code segment with Ring 0 permission, get yourself full I/O port permission, and a new segment the the IVT (interrupt vector table) then disable interrupts, change Interrupt table, and jump to your new code, and reenable interrupts again.

    That's more or less exactly what happens in Linux with two kernel monte. The module does all of that itself without any cooperation from the rest of the kernel.


  • I forget which old Mac is was, but you could boot from a system image in ROM with the right kind of Vulcan nerve pinch.
  • I want it to work like my CD and DVD player - turn it on, and a few seconds later it is ready to go.

    I set up a PC/104 with Linux, it booted (from its Solid State disc) in about 10-15 seconds.

    Check out the PC/104 website [pc104.org].
  • Isn't MRAM (Magnetic RAM) supposed to do away with the booting procedure? From what I understand, you turn off the computer and whatever's in memory stays there, as it is magnetically. Which would (I assume), reduce the booting time to damn near nothing. Can anyone verify this?
  • This looks fascinating. To fully appreciate it, I would proabably need to read lots of stuff with incredibly tiny print. I can feel the headache coming on now ;-)

    Seriously, I wonder how this would handle all of the various chip sets out there. There are enough variations in hardware configs that I wonder how much of it needs to be handled in the bios, and how much can be set aside until you start loading drivers?

  • But I want it now!


    --
  • by Speare (84249) on Saturday March 03, 2001 @07:25PM (#386853) Homepage Journal

    Maybe I've been out of the Linux distro comparison charts, but do any of the Linux kernels or distributions have hibernate support?

    (Hibernate: all power goes off, and the hard drive's boot sector is set to load memory and processor state directly from a memory mapped chunk of the disk, avoiding all the individual component loading time.)

    My laptop's now a few months old, and I have never truly rebooted it: every day I just open the lid and up pops Windows 2000, right where I left it. It's never bluescreened(*). I use a 11Mbps wireless LAN to read in bed. I love the fast boot from hibernation, especially when battery time is already less than a transcontinental flight.

    (*) It's the drivers that'll kill Windows 95/98/NT/2K. The system isn't well-written to deal with shitty third parties like ATI, but a laptop's setup is pretty simple and doesn't depend on flaky bizarre upgrades of drivers all the time. Months of uptime (minus hibernate at night and driving), no bluescreen.

  • by ultrapenguin (2643) on Saturday March 03, 2001 @07:25PM (#386854)
    I have a old ppro200 server which uses MrBios, and it takes approximately 0.5 seconds to go through post and start booting. Linux kernel takes another few seconds. This is not much of an improvement. Most BIOS's that come with new computers these days are too slow and show a lot of crap during post, which can't be disabled. Check out www.mrbios.com [mrbios.com], they make replacement bioses for a lot of different motherboards, and they usually have a lot more options to tune for a particular chipset, etc
  • by sjames (1099) on Sunday March 04, 2001 @09:38AM (#386857) Homepage

    I have been working on getting LinuxBIOS ready for sale in commercial systems. The three second boot is interesting, but really isn't a major attraction for servers. The real advantages are reliability, full configurability over serial console, diskless operation, built in rescue disk, and an OpenFirmware like capability.

    A Flash chip is much more reliable and convieniant than a boot floppy. It is possable to use a flash boot image remotely over a serial console even if the root filesystem on the HD is damaged to the point of being unmountable. The kernel in the Flash just has to mount a rescue root fs in the chip (using the nftl driver in the MTD patch).

    In normal operation, the LinuxBIOS kernel will boot up, and either mount the boot partition or load the final kernel image from a boot server. Then it used the two kernel monte module (kmonte) to boot into the final running kernel. Should that step fail, the rescue image can page the sysadmin for help.

    For diskless operation, the final kernel loads from the server and mounts it's root via NFS. GFS over fibre channel is also a possability.

    Currently, I have a prototype Scyld cluster where the slave nodes boot from LinuxBIOS. The slave nodes are not capable of video. I also have prototype with a 2.4 kernel that comes up with a fb_console.

    <PLUG nature="shameless">Go to http://www.linuxlabs.com/linuxbios.html [linuxlabs.com] for FAQ on our 1U server and Scyld cluster systems using LinuxBIOS. They will be ready for sale in a few days.</PLUG>

  • I've got around 256MB for my Windows 2000 box, and hibernate comes up about twice as fast as a normal boot.

    It depends, too, if you change the hardware configuration while the machine is hibernating. I'm under the understanding that Windows 2000 resolves all hardware issues (like a removed PCMCIA card or DVD-ROM drive) while it's coming out of hibernation, which adds a few seconds.

  • LinuxBIOS is much more than just a fast way to get through the boot process. Much work has been put into supporting the 8meg Disk-on-Chip flash technology. You can have a nice Linux router that uncompresses the kernel and minimal filesystem into ramdisk. Bingo, linux router with no moving parts other than fans.

    SiS has been very helpful with information without pounding on the NDAs. The 630 and 730 are very well supported chipsets and would make very nice platforms for things like a MP3 player for my car. I was thinking about one that had two or three CD readers as the only fragile storage medium.
  • shouldn't that be "WinBIOS, boots every 3 hours, whether you want it or not" :-)
  • by Sabalon (1684) on Saturday March 03, 2001 @07:33PM (#386871)
    Why would you need it for Linux, though? I mean, who reboots more than once every major kernel upgrade?

    I've been wanting to make a few projects based around linux, such as home mp3 player, car mp3 player, xxxxxx mp3 player - get the idea :)

    These components would not always be on. The only thing that has kept me from doing it, other than laziness, is the fact that I don't wanna wait forever to start using the device. I want it to work like my CD and DVD player - turn it on, and a few seconds later it is ready to go.

We are Microsoft. Unix is irrelevant. Openness is futile. Prepare to be assimilated.

Working...