Want to read Slashdot from your mobile device? Point it at m.slashdot.org and keep reading!


Forgot your password?
Operating Systems Software Linux Hardware

In-Depth Look At LinuxBIOS 284

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."
This discussion has been archived. No new comments can be posted.

In-Depth Look At LinuxBIOS

Comments Filter:
  • Obligatory (Score:3, Funny)

    by slash-tard ( 689130 ) on Wednesday March 24, 2004 @08:30PM (#8662616)
    Does it run linux?
    • On the bright side (Score:4, Insightful)

      by Anonymous Coward on Wednesday March 24, 2004 @08:34PM (#8662656)
      This might actually result in a higher quality BIOS in the next few years
      • by Anonymous Coward
        And if I ran windows I might be able to appreciate it from the daily bounces...
      • All I do is set a few things in there when I build a box and forget it. My BIOS seems to work just fine on all the many hundreds of ASUS/Abit/Whatever boards I've touched.
        • I should add that I'm coming from a non-cluster non-big datacenter viewpoint here. For my needs, the standard BIOS's have more then enough quality for what they do.
          • by Anonymous Coward on Thursday March 25, 2004 @06:37AM (#8665674)
            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.
            • 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
          • by IdleTime ( 561841 ) on Thursday March 25, 2004 @10:25AM (#8666603) Journal
            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.
    • by Brian Dennehy ( 698379 ) on Wednesday March 24, 2004 @08:41PM (#8662716) Homepage
      Only in Soviet Russia. (Think about it.)
    • Imagine a Beowulf....

    • by neko9 ( 743554 )
      in this case "But Does It Run Windows?" would be more apropriate :-)
  • Already tried...? (Score:4, Interesting)

    by xeon4life ( 668430 ) <devinNO@SPAMdevintorres.com> on Wednesday March 24, 2004 @08:31PM (#8662621) Homepage Journal
    Didn't Microsoft want to do the same thing? Only Linux advocates started to become angry... -Xeon
    • by Lane.exe ( 672783 ) on Wednesday March 24, 2004 @08:34PM (#8662657) Homepage
      Yeah, but in this case, we'd have the source code and could see what was going on, modify it if we needed to, and because of this, it couldn't be used to lock other OS's out.

      • Re:Already tried...? (Score:3, Informative)

        by garcia ( 6573 ) *
        but the problem is that MS is currently the leader (and will likely remain to be). Their joining evil forces with Phoenix will cause all computers to be locked down.

        Windows is not going to run on LinuxBIOS and Linux isn't going to run on Phoenix/MS BIOS.

        While it's all well and good for the majority of us it's not good for the consumer.
        • Re:Already tried...? (Score:5, Informative)

          by sflory ( 2747 ) on Wednesday March 24, 2004 @09:02PM (#8662862)
          Actually Linuxbios already boots windows;-)
          http://www.linuxbios.org/news/index.ht ml#NT
          • that's not what I was talking about... I am talking about when DRM is entrenched in the OS and the BIOS.
            • They [microsoft.com] keep claiming that DRM will be optional, so booting Windows 2010 (or whatever) on Linux BIOS sounds like a great way to ensure that DRM will never darken my door. And if it won't boot from a non-DRM BIOS, then we have proof they've been lying all along.

              Personally, I'll never buy any DRM-based media (movies, music, cable TV, etc.), so I don't ever intend to have DRM-enabled hardware. So far, games are about the only reason I have to continue running Windows, and if the games of the future all require DR

              • Re:Already tried...? (Score:3, Interesting)

                by phliar ( 87116 )

                They keep claiming that DRM will be optional, ...

                Yeah, "optional." The way it (the thing they used to call Palladium, I don't remember what it's called now) works is: there's write-once storage in a crypto processor on the motherboard and as the machine boots each software component (BIOS, kernel, application) writes a crypto-secure signature to it. Applications can read this string of signatures. Visiting a bank web-site (or music shop or ticketmaster or...) your machine would be required to presen

      • by 7-Vodka ( 195504 ) on Wednesday March 24, 2004 @09:02PM (#8662865) Journal
        Come on! we all know that if Microsoft wrote the bios for your computer it would be:
        1. Dependant upon the OS, ie. windows
        2. Closed source. Non-Free Software.
        3. EULA'd up the ass-crack
        4. Bloated. At least a million lines of code. Getting worse with each compulsory release, a fact they would gloat about instead of hang their heads in shame
        5. Secure through obscurity; lots of exploits, fingers crossed no one ever sees the code *wink wink*
          'our code is secure' ; 'Oh wait you want us to show our competitors! Nooo it's a risk to national security'.
        6. Fairly expensive
        7. Followed bi-yearly by new versions which broke compatibility slightly, were fairly expensive to upgrade to, brought little new functionality
        8. Make use of cryptic, messy, secret, patent-encumbered file formats and interfaces.
        9. Hard to fit into multi-OS environment
        10. Prone to spitting out cryptic error messages as it bluescreened and hard locked
        11. Somewhat likely to phone home with private user information
        12. Fully Palladium(tm) compliant, locking the user out of every action not fully approved by corporate america regardless of the law.

        Why would we not want to be subjected to all these wonderful qualities without the wait to get into windows?
        "Get everything listed and MORE in less than 20 seconds!"

    • by Alsee ( 515537 ) on Wednesday March 24, 2004 @10:20PM (#8663455) Homepage
      Didn't Microsoft want to do the same thing?

      No, what Microsoft has ALREADY done, through pressure on Phoenix BIOS [slashdot.org] (submitted by yours truly) and on AMI BIOS [slashdot.org] (and probably every other BIOS maker), has far more sinister overtones.

      The purpose of the new Microsoft-enabled BIOSes is to enable a new kind of "trusted" software and files that ARE UNUSABLE if the owner of the machine alters any of the "protected" elements of his computer.

      Lets say you write some sort of upgrade for your computer, or you don't like something about how your computer runs and you want to change it (or someone else write such code and you want to install it). Code that changes the BIOS. What the new Trust system does is detect that you changed your computer and any "secure" software and data are unreadable. The music you downloaded will be unusable. The image processing software you had installed can no longer run. The spreadsheet you just bought can not install. Your favorite game can not connect to the server. The new "secure" e-mail Microsoft is advertizing will be unreadable.

      But here's the REALLY scary part. Another slashdot story reported Cisco Working to Block Viruses at the Router. [slashdot.org] What the story missed was the fact that these new Cisco routers are based on Trusted Computing. That don't actually do anything to block viruses. What they can do is use Trusted Computing to verify that you have specific software installed, such as approved anti-virus software and an approved firewall. The way they "fight viruses" is by refusing to permit you an internet connection unless it verifies you are compliant. Well, if you changed your BIOS at all, or if you changed anything else about your computer, then the Trust chip in your computer reports a "failed" response. The router cannot verify that the approved anti-virus software and/or firewall are installed. You are therefore DENIED an internet connection.

      The president's Cyber Security advisor gave a speech at an industry conference and he called on ISP's to install these routers and in effect to impose Trusted Computing compliance onto all of their customers as part of the terms of service for internet access.

      If you try to change or control your system in any way then none of the new software will run, none of the new files will be readable, and ultimately you may be denied internet access. In effect you would no longer own your computer.

      There is only one thing wrong with Trusted Computing - you are FORBIDDEN to know your own key that is secreted inside the Trust chip. When you don't know your own key then other people can turn your computer against you and lock you in or lock you out of anything. If you DID know this key you would be in full control of your computer.

      When it comes to Trusted Computing simply demand to know your key. If they refuse to let you know your own key then tell them to go to hell.

      • The president's Cyber Security advisor gave a speech at an industry conference and he called on ISP's to install these routers and in effect to impose Trusted Computing compliance onto all of their customers as part of the terms of service for internet access.

        Yes, and this will be the time when all of us geeks will dig out good ole Fidonet Software and start rebuilding our own infrastructure.

        But right now I have a valid contract with my provider, which does not require me to run some specific hardware an
        • Re:Already tried...? (Score:3, Interesting)

          by Alsee ( 515537 )
          start rebuilding our own infrastructure

          Sure, you'd be perfectly free to do so. However you would be locked out of the real internet. Your new "freenet" would not have access to any of the millions of existing websites. You would not have access to anyone on the real internet. You would not be able to run any of teh new software. You would not be able to use any of the new files. You would be locked out of everything. It would be you and two friends on a little LAN with access to nothing else.

          customers w
  • A bootloader? (Score:4, Interesting)

    by ObviousGuy ( 578567 ) <ObviousGuy@hotmail.com> on Wednesday March 24, 2004 @08:32PM (#8662641) Homepage Journal
    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?
    • Re:A bootloader? (Score:5, Informative)

      by ciroknight ( 601098 ) on Wednesday March 24, 2004 @08:37PM (#8662678)
      Not from how I understand it. This is actually saving a Kernel-Image onto the bios chip itself, therefore booting straight to the kernel from the chip, basically skipping the step of "BIOS tells HD to find MBR, then read the data from MBR to ram, execute MBR instruction". Or at least, that's how I understand it?
    • Re:A bootloader? (Score:5, Informative)

      by AxelTorvalds ( 544851 ) on Wednesday March 24, 2004 @09:30PM (#8663068)
      I have developed a commercial set-top box that used ideas from LinuxBIOS. It's kind of a bootloader, like there are on non-x86 machines.

      How it typically works is you develop a kernel with a small foot print. The LinuxBIOS guys are really sane about things, there is a few lines of assembly which is just about enough code to start running C code. After that the gist of it is C with some assembly macros. There isn't anything too complex, we're talking about outp mostly. There isn't anything too secret here, it's just that booting a PC is not documented really well. Some BIOS vendors have software that does runtime function with system managment interrupts. DRM will be something like that. Supposedly and there have been discussions about it on the LinuxBIOS list, Phoenix and company do some hardware error checking and such and that's why they are so slow but some of the LinuxBIOS folks think that they don't do that and that the code is so complex and has so much legacy that it does a bunch of extra crap that it doesn't need to.

      That code does enough to turn on memory, it may do some checking now, when I looked at it last there wasn't a ton of integrity checking code. Light up a few other components, like VGA. Then copy a kernel from flash in to memory (think of it as a slightly tweaked bzImage) At that point you can pretty much jump to the start of the kernel and execute it. The kernel doesn't use BIOS for most device IO so it knows how to spin up drives and light up the rest of the hardware.

      Now how we did it and understood the goal of LinuxBIOS to be was we had an initrd that the kernel from flash would load and execute. Said initrd would look at the drives, look at some other variables, authenticate the system, possibly do a fsck on the disks if needed and then locate a kernel on the disk. After locating that kernel it would use kexec, now called fastboot, and replace the kernel in memory. The idea was that we could upgrade kernels on disks without changing flash.

      It works very well and has been incredibly reliable. We can get in to kernel space in a few seconds. Subsequently, if it's a settop box type device, it could download a brain from cable or satellite. It could rebuild itself if needed. You could have diagnostic code in there for manufacturing, etc, whatever you want. Pretty much only limited by flash size and memory.

      I know that they now and do other things like boot windows and such, at which point LinuxBIOS is potentially a serious threat to Phoenix and company, the BIOS is an expensive piece of the computer.

      I've been toying around with some linuxbios type projects. Since disk space is so insanely cheap and disks are so big anymore, you could set aside a backup partition, easily do a really quick backup daily and then weekly do a backup of that to long term media from "BIOS land" regardless of the operating system. Or you could have something like snapshots of your system, maybe a clean install, a configured system, a backup, a different OS or something like that and then all from "BIOS Space" pick them at boot time and have it restore them. Something like that, I have always wanted backup support at the BIOS level.

  • by Anonymous Coward on Wednesday March 24, 2004 @08:33PM (#8662648)

    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

    • by abscondment ( 672321 ) on Wednesday March 24, 2004 @08:37PM (#8662683) Homepage
      if it increased boot time significantly, it could be of great benefit--think of a webhosting company that guarantees less than a certain number of minutes of downtime each year. shaving off seconds on each reboot could save them $$$.
      • if it increased boot time significantly, it could be of great benefit

        Hope you meant "decreased". Ontopic, one useful place I could see LinuxBIOS going would be custom embedded boards. Of course, they probably have that in a FAQ somewhere.

      • by Anonymous Coward
        >>if it increased boot time significantly...
        Microsoft could sue for prior art.

        What? You meant to write "decreased?" Nevermind. ;)
      • If you want to increase your boot time, simply purchase Windows, Office, and Norton, and then install a bunch of task-tray doohickies. Oh, and do this on an old Pentium-90 box.

        I guarantee you'll have increased boot times, measured in godawful long minutes.
    • by Anonymous Coward
      Well, the article says you can get it on MBs from Tyan.
    • 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
    • by EzInKy ( 115248 )
      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
  • Clustering (Score:5, Interesting)

    by Neo-Rio-101 ( 700494 ) on Wednesday March 24, 2004 @08:37PM (#8662680)
    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.
    • Re:Clustering (Score:5, Informative)

      by Hiro Antagonist ( 310179 ) on Wednesday March 24, 2004 @08:57PM (#8662837) Journal
      On top of that, it can make life easier for admins, because a LinuxBIOS could be configured to allow a serial console with full hardware control, just like a Sun box does.
      • Re:Clustering (Score:5, Insightful)

        by oob ( 131174 ) on Wednesday March 24, 2004 @10:23PM (#8663470)
        because a LinuxBIOS could be configured to allow a serial console with full hardware control, just like a Sun box does.

        Great point. This is functionality sorely missed in the vast majority of x86 systems for everyone that needs to run headless servers.

        The Remote Serial Console HOWTO [tldp.org] is a superb document, but following it only provides you with a system administrable via serial console once the bootloader (LILO, Grub) has been initialised. This means that everything before the bootloader is not accessible via serial console.

        Having to install a video card and attach a monitor and keyboard to box in order to modify BIOS settings is major pain in the arse.
    • I run six large clusters, only one of them was benchmarked and is on the top500 (under 200) but all are relatively the same size and processing power. We change a great many things from build to build. Kernel tweaks, updates, etc. This is for optimizing the system to the code that we run. And although typically our clusters are on a physically separate network, the worst enemy is the one within, thus our machines tend to be patched for severe security holes.

      I've not looked much into LinuxBIOS as of yet asi
      • Re:Clustering (Score:5, Informative)

        by DeathPenguin ( 449875 ) * on Wednesday March 24, 2004 @11:29PM (#8663816)
        >>I mean does LinuxBIOS initialize hardware and then load my kernel for regular operations?

        It initializes the necessary hardware and then loads any "payload." The payload can be anything--A kernel image if you have enough space on your flash part, a bootloader [te.to] to boot from over a network or local disk, etc.

        Currently the Lightning cluster (Ranked at #6 @ top500.org) uses LinuxBIOS to load a bootloader (Etherboot or FILO, I forget which) which then loads a kernel and BProc [sourceforge.net]. No spinning hard disk, no CD-ROM, just an added solid state flash device on the IDE bus containing a bproc-patched kernel with a driver for the interconnect and bpslave. The rest of the operating system for slave nodes, which is only a few kilobytes, is pulled down over the network (Not necessarily ethernet) and loaded into RAM.

        >> How are kernel updates done if it is the latter.

        Since all the hardware is same for a cluster like Lightning, a kernel update can be done pretty easily with the bpcp (BProc copy) command if you have a new kernel sitting on the master node. I haven't used it in a while, but I think the command goes something like: bpcp vmlinuz 0-N:/boot/vmlinuz, where N is the last node. The syntax is very similar to RSH/SSH, but you can specify as many nodes as you want so you don't need any shell scripts to count up for you. I guess you might also need to tell bpsh to mount a boot partition, depending on how you have it set up.

        If you have your kernel in the BIOS, then you have to rebuild and reflash. With the magic of BProc, you don't even need to put the BIOS flashing utility (See their flash_and_burn utility) on the slave node. Just run bpsh 0-N flash_rom newbios.rom. LinuxBIOS even provides fallback functionality so if something goes horribly wrong during this process or the new image doesn't work it can automatically load an old image that does work.

        These are just a few of many possible configurations, of course. There are no strict guidelines as to how a LinuxBIOS system must be used. It's extremely flexable, which is one of its main appeals.
    • Re:Clustering (Score:4, Interesting)

      by Steffan ( 126616 ) on Wednesday March 24, 2004 @09:15PM (#8662967)
      • "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."

      You can do this now. I have multiple machines booting over the network, none of which have any local storage whatsoever. Just use a PXE based bootloader, or a motherboard with a BIOS you can flash and you can boot the kernel over the net and NFS-mount root.

      It's great for tying a media box to a raid array without having all those pesky hard drives near your TV.

      • you have 'multiple' machines, LANL has thousands. you try netbooting a 1024-node cluster and tell me how your nfs and tftp servers fare...

        or try doing that in an embedded part of an airplane which needs to guarantee that in the event of an error it will come back to initial 'safe' state in a certain amount of ( 1) seconds (well, sometimes it just keeps rebooting in the 'safe' state but that happens even without linuxbios to help it).

        remember, linuxbios solves much more, and general, problems than having a
  • Come on! (Score:2, Insightful)

    by Anonymous Coward
    Really, the LinuxBIOS is as unnecessary as the Phoenix email reading BIOS. In modern computing, all you need is for the BIOS to initialize a few things, then pass of control to the OS. Who cares about all that other crap that your OS ignores anyway?
    • Did you RTFA? LinuxBIOS is a BIOS, nothing more, nothing less. They're not trying to put a whole OS on the flash chip, just enough to boot a real OS. In fact, the BIOS is practically designed to be as non-interactive and minimalistic as possible since Linux does in fact take care of much of its own configuration. As Linus commented in setup.S, "We don't need no steenking BIOS anyway (except for the initial loading :-)."

      LinuxBIOS does that initial loading.
  • Grub (Score:5, Interesting)

    by Trashman ( 3003 ) on Wednesday March 24, 2004 @08:45PM (#8662750)
    aside from grub being "just a boot loader", Wouldn't it make sense if grub was somehow moved into the bios?
    • Re:Grub (Score:5, Interesting)

      by ciroknight ( 601098 ) on Wednesday March 24, 2004 @08:50PM (#8662792)
      Fuck grub, this is moving the whole kernel into flash-ram. This is to save the step of having to connect to the hard drive until when it's actually needed to run software, which can be done WHILE the system is booting the kernel, instead of before-hand. And as we know, in the computer world, multitasking is a good way of speeding up things.

      • Well this isn't really moving THE kernel into flash, it's moving A kernel into flash. The LinuxBIOS kernel 'skips' the fluff that the typical BIOS handles, inits what it has to, and then it executes a 'real' kernel from a disk or network location.

        If things move to LinuxBIOS you won't be flashing every time a new kernel is released, you'll be installing kernels normally, and instead of GRUB the LinuxBIOS will handle 'bootloading'.

        moving THE kernel into flash isn't practical, my kernels are typically about
  • Certainly sounds like this is something to look into, support sounds rather good and expanding at a nice pace. If it works very well with things like overclocking too, it could really hit mainstream hardware enthusiasts and more rapid growth.

    Fifty supported motherboards are in the source tree, but we have found that many motherboards are so similar that a LinuxBIOS for one motherboard can work on another. Companies build code for one motherboard, run it on another motherboard and do not always get around

  • by ZuperDee ( 161571 ) <<zuperdee> <at> <yahoo.com>> on Wednesday March 24, 2004 @08:46PM (#8662762) Homepage Journal
    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.
    • Try http://www.opencores.org/ they have many open source hardware projects that you could program an FPGA with.
    • 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!!

      Not that surprising really . . . I think that instead of open source "market" one might say open standard.

      IBM's PC was an open standard and that's a large part of the reason wh

    • Of course IBM didn't "release a machine based on open specifications and parts with a straight face". At first they fought tooth and nail to keep control over the PC market and keep clone makers out of it. It was first AFTER the clones were already available, thanks to massive amounts of reverse engineering, that IBM started seeing the light. Remember the PS/2? IBM's attempt to regain control of the PC market by shutting competitors out. Unfortunately for IBM, customers preferred choice.
  • Woops! (Score:4, Funny)

    by Sarojin ( 446404 ) on Wednesday March 24, 2004 @08:49PM (#8662785)
    I just installed Windows and it overwrote my BIOS!
  • by www.sorehands.com ( 142825 ) on Wednesday March 24, 2004 @08:55PM (#8662821) Homepage
    Are we looking for a bios to run straight to unix or a bios to load an operating system? Should we have a windows bios too?

    If we start pushing linux bios, would we be pushing linux as Microsloth pushes Windows?

    • The minute Microsoft pushes their crap into a bios chip is the minute I move to Apple computers. Mac's are better anyways [/flameoff]

      LinuxBIOS really isn't for everyone. It's not as hardware agnostic as a typical harddrive based bootloader is, simply because a bios chip has a tiny amount of eeprom (256k). While this is suffiecient for an optimized system (cluster node, web server, invariant hardware, etc), it's really not good for a home user who'd love to throw his/her new radeon in and not have to in
    • It's a BIOS to load an operating system. They've booted Linux, FreeBSD, Plan9, and even Windows 2000 [linuxbios.org].

      The trick is finding a bootloader that doesn't depend on legacy BIOS services [te.to].
  • by whoever57 ( 658626 ) on Wednesday March 24, 2004 @08:56PM (#8662831) Journal
    If so, this is very valuable to data centers:

    instead of hauling a monitor over to a machine that won't boot, they could remotely connect via a Portserver or similar. Much easier!

  • by Anonymous Coward on Wednesday March 24, 2004 @08:57PM (#8662834)
    I read the paper. Can't say I fully understand it all, but seems like this BIOS could lead to a form of personal computer that would be easily expandable as to adding processors. It was designed for clusters, yes,? Well... why not an upgradeable box that had slots that entire additional CPUs and & etc. built onto small cards would fit in? Just like adding more RAM when you need it/want it? Just was reading here the other day about the new nanoboards. Seems like a natural somehow...

  • by BeBoxer ( 14448 ) on Wednesday March 24, 2004 @08:57PM (#8662835)
    Finally, an admission that the hardware vendors claim of secret interfaces is often just BS:

    One of the most common phrases we heard from chip vendors in the first few years was "we'll never tell you that." "That" being CPU information, chipset information, motherboard information or any combination of the three. The designs for these three systems constitute highly guarded secrets. It seems amazing, even now, that vendors are able to let us build a GPLed BIOS that by its nature exposes some of these secrets.

    How was it possible for us to get this type of information? Simple, businesses are not charities. If there is no business case for releasing this information to us, they do not do it. If, however, there is a business case, then it happens?sometimes with astonishing speed.

    Read that last paragraph again. The hardware vendors basically say "that's a secret" whether it really is or not. Unless you pay them, or show them that they are losing money, they won't even bother deciding if it's really something that has to be kept secret.
  • by leandrod ( 17766 ) <l@dut[ ].org ['ras' in gap]> on Wednesday March 24, 2004 @09:00PM (#8662852) Homepage Journal

    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.

    • by spacefrog ( 313816 ) on Wednesday March 24, 2004 @11:08PM (#8663663)
      Actually in many cases, that works without even having to flash the card with the appropriate mac image, even in cases where the card was never designed to work in a mac, or even has a flashable firmware.

      A lot of PCI cards that do not have any firmware, work just fine on a ppc/linux setup to begin with, even when the cards do not have any support in MacOS or OSX.

      I have a realtek ethernet card and a generic AMD usb card in my oldworld 603e machine already.

      In addition, a lot of cards that do have firmware will work as long as you do not care about the device being available from boot. I have an older matrox card and an adaptac 2940UW in my machine.

      Both work just fine as long as I don't need them until the linux kernel takes over. With proper kernel parameters, the matrox card is even my console, I just don't see anything until the kernel is booting. Ditto, I boot and load kernel from a 250MB narrow-scsi drive on the machines onboard scsi. My root partition is on an UW drive on the adaptec card.

      Took a little bit of doing, but this 'grossly obsolete' machine is running just great after adding some 'somewhat obsolete' parts. With 256MB, a fast drive, and a card with decent X performance (the 10-year-old matrox)... It performs a heck of a lot better than it's 180Mhz would make you guess.
  • by 0x0d0a ( 568518 ) on Wednesday March 24, 2004 @09:04PM (#8662882) Journal
    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?
  • by chris_sawtell ( 10326 ) * on Wednesday March 24, 2004 @09:04PM (#8662883) Journal
    Real men load the boot loader using 16 switches and a press-button.
  • Handy tips... (Score:5, Informative)

    by GoRK ( 10018 ) on Wednesday March 24, 2004 @09:13PM (#8662938) Homepage Journal
    I was recently doing some research to get started working with LinuxBIOS. The first thing I have done is to order a BIOS Savior [ioss.com.tw].. This is a little gadget that runs about 15 bucks. It puts a switch on the outside of your case allowing you to switch to an alternate BIOS. With it, you can happily screw up your LinuxBIOS image all you want and still be able to boot your computer from the original BIOS.

    Some motherboards have a dual BIOS or similar arrangement; however, there is not always a foolproof way to switch to your backup if the primary BIOS is hosed..

    Keep these things in mind if you want to start playing with LinuxBIOS
    • The first thing I have done is to order a BIOS Savior..

      Their hardware seems to be prone to shorting out, just look at how the text on their web page text keeps blinking on and off.
  • How, exactly, do the measure boot time? From power button to desktop? Power button to where Linux actually starts loading/initializing?
    • Re:Boot Time... (Score:3, Informative)

      For the clusters (which is what they were talking about) it's from powering on the first machine, to having every machine connected and registered with the Master, and able to start accepting code chunks to process.

      At least, that's how I'd measure it.

  • linux bios faq (Score:2, Informative)

    by Anonymous Coward
    here. [linuxbios.org]
  • OpenFirmware (Score:5, Interesting)

    by Quok ( 168201 ) on Wednesday March 24, 2004 @09:28PM (#8663049)
    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.
  • by jerel ( 112066 ) on Wednesday March 24, 2004 @10:09PM (#8663368)
    In my admittedly cursory review of the main LinuxBIOS site (here [linuxbios.org]) 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.
  • by rice_burners_suck ( 243660 ) on Wednesday March 24, 2004 @10:13PM (#8663407)
    I have an idea relating to LinuxBIOS that stems from a job I work sometimes involving industrial machines and their archaic control systems. Some of these computers require a technician to turn them on because of a complex procedure that must be carried out, including the typing in, by hand, of the first few assembly instructions to be executed, which tell the computer to read some software from some weird ROM, which then tells the computer to load the "real" operating software from something over RS-232. For this reason (among others), these machines are never turned off, except in a power outtage, which is a nightmare for machine shop owners. And it could all have been avoided by designing the computer a little differently, placing the OS itself in the ROM, and making the computer load it automatically on powerup.

    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.)

    • by MyFourthAccount ( 719363 ) on Thursday March 25, 2004 @07:34AM (#8665815)
      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.

      You can do that today. Get a CompactFlash to IDE adapter and a CompactFlash device of the size of your choice. You probably think that's slower than putting it in the same Flash as the BIOS. Well, it's not. The BIOS Flash sits on most motherboards on the ISA bus, which is notoriously slow.

      Remember, the BIOS is nothing more than a Flash device. And because it sits on a relatively slow interface, it really is not a great place to store large amounts of data.

      BIOS itself should be a relatively powerful microprocessor.

      You misunderstand what the BIOS is. The BIOS is just a chunk of code, nothing more. It's not a microprocessor. The microprocessor is whatever Intel, AMD, Via etc. chip you have on the board. That's what executes the BIOS.

      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

      Again, this is something you can do today. You have to configure the Linux kernel to do that. Before modules people would do this a lot more often, but one of the downsides of Linux going 'big' is that most people don't know/understand how to strip their kernel from stuff they don't need, while on the other hand, features such as Plug and Play detection etc have increased the boot time dramatically.

      then you "freeze" it a la VMWare, put it in the BIOS Flash,

      Remember that Flash write speed is very slow compared to a harddrive, no matter what bus it sits on. Even CompactFlash is much slower than even a slow harddrive. Imagine storing a snapshot on a fully loaded system with 1GB or RAM. That's a lot of stuff to write to anything.

      Anyways, I know where you are coming from, but with all due respect, you don't really have the background to come up with a realistic system design.

      Believe me, BIOS & OS coders _do_ come up with ideas like this all the time and I think that alternatives to the old (obsolete) BIOS will come up more and more. (hint: I am a BIOS coder that might be working on a skunkworks project ;-)).

      In the meantime, if you want a fast boot, do the following:
      - use LinuxBIOS
      - put your kernel on CompactFlash. CompactFlash is available almost immediately vs. the 3-5 sec spin-up time of a normal HDD.
      - configure your kernel properly and link all drivers you need statically instead of using modules (as much as you can).
      - As soon as the HDD is ready, you can mount your main filesystem on that.
  • How is this different from eCos [redhat.com] and/or Redboot [redhat.com]?

    I think I'm just a little unclear on the differences among bios/kernel loaders/boot loaders. I know that the linux kernel doesn't really use the BIOS (for the most part) when it discovers devices. As such, the BIOS is a moot point. How does this compare to embedded systems like Arm/XScale boards?

    Can anyone clarify this for me/us?
  • by Anonymous Coward on Thursday March 25, 2004 @02:54AM (#8665025)
    Just an FYI to slashdot readers, but linux-bios is not the first, best, or only GPL'd firmware. u-boot is vastly superior and taking over the embedded market quickly. It's being used by at least a dozen of the fortune 50. It provides support for several architectures already (arm,ppc,m68k,i386,etc). It's very flexable and small.

    More information at the u-boot [sourceforge.net] homepage. The u-boot README [sourceforge.net] file lists all the architectures, supported platformas and options.

    Credit goes to Wolfgang Denk, the father of the project.

    Best wishes,
    A firmware engineer

I program, therefore I am.