Get Speed-Booting with an Open BIOS 235
An anonymous reader writes to mention that IBM Developer Works has a quick look at some of the different projects that are working on replacing proprietary BIOS systems with streamlined code that can load a Linux kernel much faster. Most of the existing BIOS systems tend to have a lot of legacy support built in for various things, and projects like LinuxBIOS and OpenBIOS are working to trim the fat.
Flash drives (Score:5, Interesting)
Re:Flash drives (Score:4, Interesting)
Re: (Score:2, Insightful)
Re: (Score:2)
Re: (Score:3, Informative)
Re:Flash drives (Score:4, Insightful)
The Atari ST, on the other hand, had the whole OS in ROM, except for the very first models. Even STs weren't instant-on though, because the bootloader would waste at least half a minute looking for a disk to boot from - it was actually faster to have a GEM disk with custom settings in the drive when turning the power on than booting from ROM only.
Re: (Score:2, Informative)
Re: (Score:2)
My A2000 had Kickstart in ROM requiring only the AmigaDOS disks. I upgraded those from 1.3 to 2.0.
The reason was that the ROM portion (Kickstart) was in flux when the A1000 came out, and they knew that they would need to update it several times, and didn't want to deal with swapping ROMS all the time. The original A1000 was hardly polished.
None of the Amigas
Re: (Score:2)
Pah. First thing I did when I got 1MB, then 1.5MB of memory(!) was follow the instructions in the manual to make a "Recoverable RAM Drive" (RAD:) that was bootable. :)
Re: (Score:3, Interesting)
Its predecessor the Atari 800 was instant on. Pop in the basic cartridge, turn the power on and ther you were. In Basic land. At least the Amiga had C.
And cool graphics.
I was shocked to find there were people (Mike Meyer, how can I remember this stuff and still not remember where I put my glasses?) that didn't give a rats ass about the grpahics but just wanted to code C on a CPU with a linear address space ("segments are for worms").
Matt Dillon (Of FreeBSD and Dargonfly BSD fame) ported Bash to the
Re: (Score:3, Interesting)
If you just wanted a shell and bypassed your startup sequence it was faster still. Even with the full blown GUI, it was still much quicker then it's PC counterparts.
Now, an Amiga with a flash drive, that's a sight to see. My A1200, which once had a 44 pin IDE-Flash adapter booted all
Re: (Score:2)
The A1000 loaded kickstart from disk, and used 256Kb of it's 512KB of ram to store it. Later machines (except the A3000) had kickstart in rom. Kickstart includes most crucial parts of the OS, but you still needed a floppy or some other media to boot from. Although workbench was in rom, you needed the "loadwb" command which was disk based. Although the A4000T had the workbench.library on the hard drive.
My amiga would take about 6 seconds to boot, that includes drive spin up/
Re: (Score:3, Insightful)
Re:Flash drives (Score:4, Interesting)
Re:Flash drives (Score:4, Interesting)
Incidentally, did the 1451 drive have as fast a CPU as the Commodore 64? I know the 1451-II's CPU was actually faster, and you could actually offload CPU processing to it across the serial interface, and some games even did this.
Re:Flash drives (Score:4, Funny)
My spectrum was awesome, and by dint of the fact that I couldn't afford a C64 (or even a Vic 20), I opted for the '48k ZX spectrum beats your computer any day' line of reasoning, and affected temporary blindness when anyone started showing off sprites.
Ah yes, the hours of tapping away on a rubber keyboard. Hungry Horace, oh how many evenings you ate.
I took it out of storage and showed my son last year. He looked at it in a puzzled fashion and asked where the dvd drive was.
Crying is not manly, so I just mumbled and put it away again..
Re: (Score:2)
The mechanics were fine. Back in the day I shelled out a good bit of money to buy a plug-in ROM upgrade that sped up floppy access by ~8X. The bad performance was a software problem, probably made worse by the overdesigned floppy drive that could execute more bloated software than the job required.
Re:Flash drives (Score:5, Informative)
I always wanted to have the same capability for my notebook. Sigh...
Re: (Score:3, Insightful)
My CD player used to boot instantly... but just try to boot an HD-DVD or BluRay player....
Re: (Score:3, Informative)
1. Three Ethernet controllers.
2. VGA contoller.
3. Two RS-232 controllers.
4. Flash drive.
5. PCI bus.
6. WiFi card.
And it starts booting Linux kernel in less than a second after power on.
I don't see why my notebook should take about 8 seconds JUST TO START BOOTING THE KERNEL.
Current HD players are too brain-damaged, so it's not a good comparison.
Re:Flash drives (Score:4, Insightful)
Re: (Score:2)
Really? I remember waiting a very long time.
One of the major advantages of Fastload (TM) was that it by-passed the god-awful slow memory test on power up.
I suppose "instant" is a matter of perspective.
-- Should you believe authority without question?
...not holding breath (Score:2)
I hope these folks are successful and can lend some advice to device manufacturers as well!
Re: (Score:3, Interesting)
Re: (Score:3, Interesting)
I have 4GB of RAM (2x2GB) with Windows x64, and expect to have 8GB within the year. I've tried the hibernate or whatever its called. Its not really faster. The time time to save and load that 4GB file is non-trivial. In theory its nice when you've got a lot of open stuff on the go, but then I don't trust it enough not to save all my work properly anyway.
Overall, I don't think its that great, and I particular
Re: (Score:2)
OK let me rephrase: what do you want 4GB of RAM for anyway, if you don't have a RAID 0+1 array of Seagate Barracudas to make disk writes quick?
I use my (desktop) computer with S3 suspend. 5 seconds later and it's on again (it takes more time for my monitor to wake up). There's only one problem though: sometimes, the Bluetooth dongle takes a longer nap and I have to wait about 30 seconds to have my keyboard back.
Re: (Score:2)
My memory usage when running my usual set of apps (excluding vmware) is around 2.5GB to 3.0GB. My comment about upgrading to 8GB was based largely on my use of VMWare; and the fact that I run various linuxes, along with XP Pro and Vista x32 as guest OSes (not all at once, but usually more than one); and that uses gobs of RAM.
OK let me rephrase: what do you want 4GB of RAM for anyway, if you don't have a RAID 0+1 array of Seagate Barracudas to make disk writes quick?
I
Re: (Score:2)
Not sure what HE wants it for, but I use it for running multiple virtual machines. Also, the extra ram is nice for disk cache - especially if you are compiling.
Re: (Score:2)
I agree though, hibernation is often more of a pain than it's worth.
Re: (Score:2)
It suspends to ram, but also writes out the memory to disk as if it was hibernating. So if you lose power while in sleep mode, the machine comes back online properly (it just takes longer).
Re: (Score:2)
I figure if i'm running so many apps that i'm using 8gb of ram, then loading memory from disk will actually be quicker than loading all those apps manually.
Also, at least with software suspend it can compress the image and it resumes fairly quickly, because it swaps the core kernel back in and swaps all the apps back in later (chances are you wont be actively using every app your r
Re: (Score:3, Interesting)
Re: (Score:2)
Re: (Score:2)
Instant-on computers (Score:2)
All those procedures performed in BIOS today are often unnecessary unless you run a legacy operating system like DOS that actually uses the BIOS. Linux as an example only uses BIOS for a limited amount of tasks while it does most of the hardware management in the kernel without much need for BIOS to be around.
Re: (Score:2, Interesting)
16 KB OK.....(5 sec).....32 KB OK.....(5 sec).....48 KB OK.....(5 sec).....64 KB OK.....(5 sec).....
I seem to remember it taking 1 minute to go thru the memory test.
Re: (Score:3, Informative)
Re: (Score:2)
Probe for more hardware
Test more memory (although the memory is faster)
Support booting from more types of hardware
Test more processors/cores
And some things (like the wait time for hard drives to spin up) hasnt decreased..
Re: (Score:3, Insightful)
What about Abstraction? (Score:5, Insightful)
In theory, yes. (Score:5, Insightful)
So the more advanced operating systems probe the devices themselves to see what capabilities are available.
We've arrived at the point where we need to choose between updating the BIOS's on the motherboards every time a new capability is added (and all previous motherboards)
It's easier to update the OS than the BIOS.
Re: (Score:2)
Re:What about Abstraction? (Score:5, Interesting)
Purely anectdotal, but I see a LOT of Linux boxen that are very old running not so old Linux kernels.
This means, over a period of time, you have a greater chance of creating a NEW Linux only legacy support issue with newer kernels running on old machines.
This should not stop progress, but it is something that should be recognized up front.
Re: (Score:2, Interesting)
IIRC, I bought the processor and motherboard in May 1999, probably around the same time I finally registered my /. account.
Re: (Score:2)
Re: (Score:2)
See, I've got a Linux machine. I've got 2 Macs. I've got 3 Windows machines (the one on my desktop, the laptop I use to play movies on my TV, and the laptop that I actually use as a portabl), and a hacked X-box - yeah, I'm a geek.
That Windows desktop machine? It's gonna run Windows. FOREVER, until I throw that bad boy in the trash it's gonna be a Windows machine because I have other OS's on other machines. And no, I don't really care if whoever pulls it out of the
Re: (Score:2)
That's somewhat beside the point though - barring a system INTENTIONALLY preventing other OS's from running, I'm sure running something else would be trivial. Mac's don't have a BIOS, and t
Re:What about Abstraction? (Score:4, Informative)
The BIOS is essentially a set of low-level device drivers for the motherboard and basic peripherals (keyboard, display). Overclockers don't care about it, as long as it works.
The "CMOS Setup", or more appropriately System Setup, is an interface to configure the motherboard's features. The fancier ones offer many tweaking options, some even have a minimal Linux OS like the Asus P5K3 Deluxe (extremely handy for pre-boot stuff - or web/media browsing). Overclockers love big feature-rich control panel on their board as they allow them to tweak their system to further heights, and offer added functionality like built-in flashing (from a USB key or hard drive) and "smart" overclocking which is like the opposite of Intel Speedstep
Re:What about Abstraction? (Score:5, Insightful)
Re: (Score:3, Insightful)
Why ? Does any OS actually use BIOS for anything except booting anymore ? AFAIR even most DOS programs bypassed BIOS screen routines (which is why redirection didn't work so well on DOS) and talked to the
Re: (Score:3, Interesting)
It does not matter if I run Linux, or Windows they both start with crap running in the background. A normal user has no clue what is running. Why not when you install the OS you just ask "Do you want a Firewall? Do you want a Server? Do you want to update your system time over the inter
Re: (Score:2)
It is still wise (at least in theory) to allow the BIOS to handle some low level hardware issues behind the abstraction barrier, at least until the OS specifically overrides a certain function for direct control (assuming that it is logical to allow such a low level override). The abstraction layer allows both the OS and the BIOS to vary independently without causing changes in each other and that is a good thing. Suppose, for example, that your
Re: (Score:3, Interesting)
Depends on Priorities (Score:2)
Re: (Score:3, Informative)
These guys are simply taking advantage of the fact that the BIOS is an unusably bad abstraction. Linux doesn't make BIOS calls, nor does Windows (since before Windows 2000). If you're booting Linux and XP,
Re: (Score:2)
Deck chairs on the Titanic (Score:5, Insightful)
If you want to speed up the boot sequence, take a look at cutting the number of attached devices down to the bare minimum. Don't start any services during init. Do as little as possible to get the system to its usable state and you'll have minimized the boot time. Unfortunately, technology just doesn't work that way. System requirements (of both a hardware and a software nature) will require that you perform extra initialization at boot time, so any possible gains are already offset by the increased load.
Getting off of x86 may be one way to optimize the boot process, but how many of us really have the wherewithal to make an architecture jump from x86?
Re: (Score:3, Insightful)
Probably more like 30 seconds.
Re: (Score:2)
Re: (Score:2)
Re: (Score:3)
Re:Deck chairs on the Titanic (Score:5, Interesting)
What really bugs me is how much of the startup config is done serially. A lot of startup tasks take time, and step N+1 has to wait until step N is finished whether or not it depends on that step. It seems to me that it would be worth the trouble to mechanize startup so that each step is isolated from all the others and knows which previous step it's dependent on and waits for only that step, while everything else cruises ahead in parallel. It'd be a big change from the way things are done now but it'd be worth it. Having my system stop dead for 60 seconds on every boot just because one of the NICs is unplugged (so DHCP isn't answering) is really annoying. Same deal with Apache choking on virtual domains
Also, Linux isn't the entire universe, and some of us really do use those legacy BIOS features. Backwards compatibility is the *only* reason the PC architecture has survived, so deciding to toss that to the wind now is just stupid. The cost is minimal (it's not like the code is going to change once it's written) and if whipping up a few tables and setting a couple of INT vectors is honestly adding dozens of seconds to the boot time, well that's just programmer incompetence, it's not the architecture's fault. The rest of the older BIOS code doesn't do anything if you don't call it, so this just sounds like an excuse to be lazy.
Re: (Score:2)
Re: (Score:2)
Because the standard way to send mail on an unix box is to send it through a 'sendmail' program, which is provided by Sendmail (or Exim or Postfix)
Re: (Score:2)
Re:Deck chairs on the Titanic (Score:5, Informative)
We're working on it... [ubuntu.com]
Re: (Score:2)
hell while you're at it, why not start paying attention to whether or not an ethernet cable is even plugged in in the first place?
windows has been able to re-start DHCP automatically if you unplug and plug back in a cable for years and years now, why can't linux?
easily my biggest pet peeve.
Re: (Score:2, Informative)
Also, ifplugd is extremely simple to install and requires extremely minimal configuration. I used this in college for a number of years without issue before all this fancy new stuff.
Re: (Score:2)
There is work being done on this already. I can't remember specific links right now (googling turns up some interesting [linux.com] links [csiro.au]), but I remember I first heard about it on Planet Debian [debian.org], an RSS feed collector for Debian developer's blogs; I've found some very inter
Re: (Score:2)
Re: (Score:2)
So, if you want your RAID to work it's BIOS extension needs to be called. The fact that you replace the BIOS with something else isn't going to change that requirement one little bit. Now you might be able to work around this if you didn't boot from the RAID and did not acc
Re: (Score:2)
Um, anyone running Debian [debian.org]. I recently changed (painlessly) from x86 to x86-64 (AMD64), but I'd be just as happy if the hardware were cheap and easily available to go to Sparc, Alpha, PPC or ARM.
Re: (Score:2)
Re: (Score:2)
The majority of boot time is spent initializing drivers and bringing the system to a usable state. The 3 seconds it takes for the BIOS to init the disk, locate the MBR, load the bootloader, and jump to it is negligible compared to the tedious hardware scanning and initialization done by the OS itself when it is finally loaded by the bootloader.
Hmmm... You must not have heard of ACPI. Every PC I've used that supports it takes more than 5 seconds to start loading grub, and some take a lot longer because of the timeouts for entering the BIOS configuration utility.
If you want to speed up the boot sequence, take a look at cutting the number of attached devices down to the bare minimum. Don't start any services during init. Do as little as possible to get the system to its usable state and you'll have minimized the boot time. Unfortunately, technology just doesn't work that way. System requirements (of both a hardware and a software nature) will require that you perform extra initialization at boot time, so any possible gains are already offset by the increased load.
We already have bootchart. It works, and can be used to configure a system that spends less time loading services than in the bios-controlled hardware probing.
The neat thing about stuff like LinuxBIOS and flash-based booting is that your system can theoretically send out a DHCP request be
Why not EFI? (Score:3, Insightful)
It does what you want and has been in desktop computers (Macs) for over a year now.
Re: (Score:2)
Re: (Score:3, Insightful)
To top it all off, to even begin development on stuff like Tianocore you need to agree to draconian licensing terms such as: "You acknowledge and agree that You will not, directly or indirec
Re: (Score:2)
In fact, until the damned OS boots, fast doesn't really go with Itanium. After the boot, yeah, sure.
Re:Why not EFI? (Score:4, Insightful)
EFI is also pretty broken. It tries to look better than BIOS, but really it isn't. Think of ACPI (Intel brain damage, as Linus Torvalds calls it) which looked good and looked like we'd get some standard interfaces.........and we didn't because hardware was too complex, it had quirks and everybody ended up doing variations on a different theme. EFI is the same, because of course, everybody's intellectual property has to be protected. I mean, we can't just have manufacturers downloading, installing and contributing to a standard Linux or OpenBIOS, because that would be too easy, it would make things work far too well and everyone would have wonderful boot times
EFI is also an awful lot more complex than BIOS, which adds to the list of things to go wrong in terms of different implementations. At least the BIOS we have today is a boot loader - and it doesn't really pretend to be anything else (hell, you'd be crazy to try anything else with it!). Now think about how many BIOS updates we have for various boards today to fix lots of broken things, and then extrapolate that out........... It's not a pretty picture.
Re: (Score:2)
Re: (Score:3, Informative)
I choose freedom.
I wouldn't touch this! (Score:5, Insightful)
I'm admittedly not terribly bleeding-edge when it comes to hardware or electronics, but mucking with my bios is a no no.
Re: (Score:2)
Re: (Score:3, Informative)
Fortunately, you don't need exact matching hardware to recover from a botched BIOS update if you have a socketed BIOS chip. The flash memory your BIOS is stored on can be easily removed, placed in someone else's computer with a compatible socket (It can be a whole different architecture, even), and reprogrammed with the vendor's BIOS using Linux+Windows compatible utilities such as Flashrom ( http://lin [linuxbios.org]
Re: (Score:2)
Re: (Score:3, Informative)
No it can't.
First, it's been several years since I saw a motherboard with a socketed Flash chip, and even then, it was only the dirt cheap OEM boards from the likes of Dell/HP/etc, while the retail boards used a socket.
It's actually pretty easy to buy a replacement Flash chip, or salvage one from a dead system, and do a little hot-swap trick to Flash it with your current BIOS image for back-up/recovery purpose
Disk-on-Chip Linux (Score:5, Interesting)
Re: (Score:2)
Re: (Score:3, Informative)
Yeah, but who would do such a thing? http://www.phoronix.com/scan.php?page=article&item=870&num=1 [phoronix.com]
Not needed. (Score:3, Interesting)
Benefits from experience (Score:5, Informative)
Open source and documentation (Score:2)
Of course, the exact meanings of these codes vary from one BIOS to another, and only some vendors document them. Luckily, the open source vendors are very good about documenting them.
Wow!! - Who are these open source people who are "very good about documenting" beep codes?? Any chance of deploying them to all the other open source projects out there?? - they could sure do with the help!
Open BIOS is Mission Critical. (Score:5, Insightful)
The mobo manufacturers will love the price versus commercial tpm and thereby limiting tpm deployment.
That's why getting involved with these projects in particular is essential to everyone who understands the importance of computing Freedom and overall innovation.
To save time: (Score:5, Funny)
Flash Hibernate (Score:3, Interesting)
That would give instant-on that's great for mobiles, but also good for desktops. Why is that so hard? Isn't hibernating to flash with a little update a lot easier than rewriting the BIOS?
why the PC is so slow to boot (Score:5, Interesting)
One major reason a PC is so slow to boot is the totally free-wheeling nature of attached devices. There's actually too much liberty to do bad things in device hardware. In some cases, probes to see if a certain specific device is present can cause some other device to go into a locked up state. PCs also have the complication that interrupts don't really identify the device in the same terms as how you access the device. This means we have to do things like timed waits in device probes. Ideally we should be able to discover all the devices in a computer within a millisecond for as many as 100 devices.
We need a whole new system level (as opposed to CPU level) architecture. We need to have a uniform device address range for all devices, and a uniform set of basic commands for all devices. Then all devices in the same class (storage devices are one class, network interfaces is another class, etc) to have a common set of commands to operate the normally expected functions of that device class.
And we really don't need a BIOS, or at least not much of one. A simple switch that lets us select between 2 flash areas to load at reset or power on would handle almost all cases. And even that's not necessary if we choose to run a stripped down boot selector program from flash that lets us select other flash areas to load. That combined with a hardware based "JTAG over USB" protocol to store new flash images when no present ones work (maybe when an on-mainboard or rear-access switch enables it) would provide any needed recovery capability.
And why can't we have gigabytes of flash? I bought a 2GB SD card the other day for $20. Can't they put that on the mainboard? An SD slot would not only provide for a lot of capacity (way more than what you get on a CDROM), but also a means to stop writing, and a means to swap out bad flash or reload it in another computer.
I have been working on a description document for a new architecture. It's not ready, yet, or I would post it here. But I'll try to speed it up.
Yeah - but why do this check every friggin' time? (Score:3, Insightful)
We're running machines that are clocked in the GHz, yet bootup is still no faster than an ancient 80386 at 25MHz - despite Linux BIOS demonstrations that wer
Re:why the PC is so slow to boot (Score:4, Insightful)
That depends on the hardware. If you have to deal with legacy ISA devices, yes. Anything in the last 5 years or so doesn't have an ISA bus. The PCI bus has a defined way for devices to identify themselves and what I/O addresses and interrupts they need. USB similarly has a defined way to determine what's on the bus. Since the BIOS itself controls things like on-motherboard serial ports, it already knows which ones it's turning on and where they go. So basic initialization should be relatively quick and easy.
Frankly the only things the BIOS should need to do with modern OSes is to reset the hardware and provide the basic I/O interface to the disks, screen and keyboard that any boot loader's going to need (so the boot loader doesn't need drivers for video, USB vs. keyboard-port keyboards, etc.).
Alternatively, the BIOS should initialize all hardware, assign all interrupts etc., and the OS should simply take what the BIOS gave it. But IMO having the BIOS do only the minimum required and leaving the bulk of the work up to the OS gives more flexibility and resilience in the face of hardware changes or failures.
Re: (Score:3, Interesting)
The cost of the hardware needed to support an SD card slot (fully, in hardware-only, before POST) would be more than the cost of a lot of ($40) low-end motherboards.
Directly wiring a Flash chip to the memory space is MUCH cheaper, and what's more, the most basic socket for the Flash/CMOS has all the same advantag
Speed booting??? (Score:5, Funny)
Thanks, I'm here all week. Try the veal.