In-Depth Look At LinuxBIOS
DrSkwid writes "With PhoenixBIOS reading your email because of such inordinate boot up times for Windows and other OSs, it was remarked in #plan9 about our 5s boot times using LinuxBIOS. My friend f2f pasted an article from Linux Journal which looks at the basic structure of LinuxBIOS, the origins of LinuxBIOS and how it evolved to its current state. It also covers the platforms supported and the lessons they have learned about trying to marry a GPL project to some of the lowest-level, most heavily guarded secrets that vendors possess."
Didn't Microsoft want to do the same thing? Only Linux advocates started to become angry... -Xeon
Real programmers can write assembly code in any language. -- Larry Wall
Initializes the CPU, initializes the bus, initializes the hardware, dumps to OS.
Isn't that a bootloader? Is it special because it is burned into the ROM?
I have been pwned because my
The reason why Things like LinuxBIOS are important is because having a PC boot with the Linux kernel is not only a cool trick, but it saves people who build clusters a heck of a lot of money on Hard Drives and CD-ROM drives, when a cluster node only really needs a mainboard, CPU, and RAM.
Maybe with faster, bootable USB on motherboards in future, and cheaper flash RAM, flashing the BIOS to run Linux will seem a little less necessary.
Maybe there's some other use for Linux in the BIOS, but someone will have to teach me as to what that is.
READY.
PRINT ""+-0
aside from grub being "just a boot loader", Wouldn't it make sense if grub was somehow moved into the bios?
Do not read this
I think it is really amazing how many people here on Slashdot are just so eager to post comments that they obviously don't even bother to read the actual article.
If some of you people had read the article, for example, you'd notice some important points being made, such as, "From what we can see, the two factors in our success were competition and the creation of a market. Competition gave us a wide variety of choices as to motherboard, chipset and CPU. Once there was a reasonable market, vendors were concerned about being left out."
I don't know about any of you, but I think the creation of an open source "market" is EXACTLY what has enabled the success of open source products like Linux in the first place.
It was also what enabled the success of the Wintel architecture, if you think about it. At the time the original IBM PC was released, it was virtually a foreign idea to IBM--many people at the time were asking the question, "how on EARTH could IBM possibly release a machine based on open specifications and parts with a straight face?" Let us not forget that at the time, IBM desperately needed to get ANY kind of microcomputer on the market ASAP, for fear that Apple and others might get firmly entrenched. Once that thinking took hold, IBM practically had no choice but to hope and pray that their Big Name would keep them at the forefront. As we know, companies like Compaq came along and proved them wrong, and the rest is history.
The point is, I wonder why things like chipsets are still so closely guarded secrets. Can you people imagine what the world would be like if Intel had made the x86 CPUs with a proprietary, closely-guarded SECRET ISA, that you could only program for if you signed an NDA? If Intel had done that, Linux probably wouldn't even exist!!
I sometimes have this feeling Microsoft would do ANYTHING to go back in history and try to get all the laws of our country re-written and the market changed so this kind of all-secret world I speak of could exist.
In the end, the markets for products, be it open OR closed, occur because someone created that market. I think it is high time someone created an "open source" chipset, myself. But that's just me. If you people want all things to be open, stop talking about it and complaining about closed-source, proprietary things, and DO SOMETHING about it.
What I'd like to know is if it would be possible to overwrite a, say, Apple Power Macintosh beige OldWorld G3 with LinuxBIOS or OpenBIOS and thus get to use x86 SCSI and VGA adapters.
Leandro Guimarães Faria Corcete DUTRA
DA, DBA, SysAdmin, Data Modeller
GNU Project, Debian GNU/Lin
If this Bios gives us a fighting chance against DRM and the DRM chips in the IBM laptops, great.
5 second boot times will be the icing on the cake.
Where can I purchase a board preloaded with and known to work with LinuxBIOS? Does it cost significantly more than one running Award or one of the other conventional BIOSes?
May we never see th
in which case without being installed by a manufacturer no-one is going to even contemplate wiping their "working" bios for an unknown 3rd party of no significant benefit to them
I'm not sure the current license fee for a bios... but this would be of some great benifit to the lowest bid type computer makers like e-machines. I could also see someone re-branding other motherboards purchaced in bulk, like we see with PC chips motherboards, and saving money using a free-bios. Not like I haven't seen pirated bios's before... this way it would be legit.
There is no sanctuary. There is no sanctuary. SHUT UP! There is no shut up. There is no shut up.
I read this article a couple months ago when my issue of Linux Journal arrived. I had a couple questions about it then, guess this is a good time to ask them. :)
As I see it, half the point of LinuxBIOS is to provide a fast, open-sourced BIOS for x86 machines. It gets extra cool points for being Linux.
But I have to ask, why not just use OpenFirmware? Or at least, give LinuxBIOS some of the features of OpenFirmware. As far as I know, there is no such thing as OpenFirmware for the x86. It's got lots of neat benefits, like booting your machine off of another one on your network, or debugging a non-bootable machine remotely. Serial console, anyone? It has other benefits as well, that I can't remember; my brain is shot for the week.
For those of you that haven't heard of OpenFirmware, it's basically the "BIOS" on Macs.
In my admittedly cursory review of the main LinuxBIOS site (here) and of the article I was unable to find anything about using it to boot other operating systems besides Linux. Can I buy a compatible mobo, put the LinuxBIOS on it, and then run Windows? I'm still running dual-boot for now and would need this.
Some days it's just not worth chewing through the restraints.
I see this exactly the way I see modern operating systems boot up. The BIOS goes to some place and reads 512 bytes. Those bytes load up a "real" bootloader. That bootloader loads up some darn thing, which loads up the kernel, which loads up a bunch of device drivers and other software, and after a minute of grinding the disk, you have a system waiting for input. Why all this fuss?
My idea, then, is that instead of having an operating system kernel on your hard drive, it and its bootloader should reside in a really friggen powerful BIOS chip. By powerful I mean that there should be a LOT of flash space and the BIOS itself should be a relatively powerful microprocessor. The software is started immediately upon the powerup of the computer. The BIOS Flash then looks like the root partition; it is mounted just like the hard drives and other devices are. All device drivers are present in the kernel, anyway, and since the BIOS is designed for the computer (by the factory) or configured (by a hacker who puts together his own system), there is nothing to detect or load. Furthermore, all software that starts at startup has a complete image "frozen" in the BIOS Flash, and is copied directly into RAM during the initial stages of startup. Therefore, if you have X, and an entire desktop environment, the entire computer goes from OFF to running X and your desktop software, and whatever else you want for that matter, in almost no time at all. Your monitor would probably take longer to warm up then it would take for your desktop to be ready for input.
This sounds a lot like un-suspending a computer that is in suspend mode, and yes, in effect, it's just like that. You have your system running the way you want it to start up, then you "freeze" it a la VMWare, put it in the BIOS Flash, and when you turn on the computer, the BIOS copies the image directly into RAM, with perhaps a few routines here and there that initialize hardware upon powerup, or set a few values throughout RAM, like time-sensitive things and whatnot... No matter how fast MS makes their OS load, it'll never come close to this kind of performance.
Take it a step further, and each user could have almost an entire operating system setup, as if the computer has multiple personalities from the bootloader up. The BIOS has some routine that lets you log in, and accordingly, selects the image that will get loaded. In this respect, you could completely power down the computer, and come back a week later, turn it on, and immediately it will return to where it was.
This will probably be the case in 10 years or so. (Hey, in the 90's we went from the 386 SX to the Pentium 3. Who knows what the hell will happen by 2015 or so.)
Will this have any chance of being taken up by a motherboard manuafacturer by default or is this a aftermarket project ? in which case without being installed by a manufacturer no-one is going to even contemplate wiping their "working" bios for an unknown 3rd party of no significant benefit to them.
I was really surprised/disappointed to see that Gigabyte motherboards weren't being actively tested. You would think their DualBios would be perfect for a project like this because you would have a rescue image right on the board.
If it is for a lack of testers, I've got two 7V*** boxes at home and might be willing to give it a go. If it is because they are not cooperating, guess it will be Tyan boards when I replace them.
Time is what keeps everything from happening all at once.
Damn, that looks a lot like my Rolm (I know, it's a PBX but it is also a computer, and yes, it's my personal property)
"From what we can see, the two factors in our success were competition and the creation of a market. Competition gave us a wide variety of choices as to motherboard, chipset and CPU. Once there was a reasonable market, vendors were concerned about being left out."
Initially my reaction was, "Yeah, the market existed, and they found a cheap way to exploit it, since you're doing all the work for them." But that was my pessimistic side. After careful consideration, I prefer to take the optimistic approach on this one. I prefer to think of it as them working for us. The fact that they put all the little stuff together for me, saves me a lot of time in my garage with breadboards and soldering irons. Now we can have more control than just what processor, cards, and OS go into our systems. And the more input we have into how our computers run, the better we can improve computing, innovate, and come up with knew ways of handling problems.
I would like to see some of people involved with this group get onto standards committees since now, it seems, they have a voice. I'd like to see more open source type input into some of tomorrow's technology. Maybe someday we can stop having kludge after kludge shoved down our throats... Wouldn't the world be a better place then?
Fast non-volatile RAM has been "well under way and within reach in the next several years" for decades... But even then you would sometimes want to reboot to reinitialize everything from scratch, for instance after a full OS upgrade.
They may not be low quality but there are several reasons why tradtional BIOS's suck. For a start there is the huge amount of legacy 16bit, real-mode x86 code that just isn't used by modern operating systems but is supported because of things like Windows ME. If you're running Linux or Windows NT on your computer, you just do not need it. Then there are the traditional limitations in x86 BIOS's. You can't run an x86 machine headless and access the BIOS setup, for example. With LinuxBIOS they enable the network interfaces and allow you to perform setup via. a telnet session, exactly as you would with more expensive server kit. Last but not least there are bugs in some BIOS, and some of them can be pretty bad. LinuxBIOS offers you the ability to patch or workaround those bugs yourself, instead of having to wait for the vendor to fix them for you.
Both U-Boot and LinuxBIOS have large chunks written in C. I like C myself and am not willing to participate in a C vs. Assembly Language debate. However, You can not miss this in the article: "We realized early on that assembly code could not be the future of LinuxBIOS. OpenBIOS was a lot of assembly code, with a difficult-to-master build structure"
The real point is, even with maximum optimization in the compiled (or assembled) code, you still need to allow "magic" timeout numbers to wait for boot media to spin up. The only way to really optimize boot times is to have Flash ROM/embedded operating systems.
Have you Meta Moderated t
Well, I have a Dell P4 2.4Ghz PC and the CPU is capable of hypertreading but it is disabled by default and Dell will not make a BIOS (I guess Intel told them NO) that enables HT on that CPU. If LinuxBios would, I'd switch from the bad Dell BIOS to Linux BIOS in a heartbeat.
If you mod me down, I *will* introduce you to my sister!
Yes, I do agree with many of your points. Being able to configure the bios via telnet or even a serial link would be very helpful in any data center or even a few servers in a closet.
The feature set of LinuxBIOS is really neat and it would be great if these features were universal.
As far as the actuall "quality" of existing BIOS's, I think they are pretty good. Sure, there's been bugs, but usually minor and almost always fixed asap. The major motherboard manufacturers make most of their money on these things and they tend to be on top of things like that, even well past the "normal" lifetime of PC hardware.
This is not to say that it's not very nice to be able to hack your own bios with LinuxBIOS in case there's a bug, but this only suits a small percentage of the admins out there that are able to do such a thing.
Like all OSS projects, I appreciate them quite a bit and I hope LinuxBIOS gains more vendor support. It would be really cool if it started replacing the standard BIOS on systems alltogether, especially with this DRM crap heading our way.
- It's not the Macs I hate. It's Digg users. -
You've never seen the actual code for your typical BIOS, have you? Believe me, it isn't pretty.