Slashdot Mirror


Stallman Calls For Action on Free BIOS

Dolda2000 writes "Seeking to achieve 100% software freedom, RMS is now calling for action for a free BIOS. From the article: "The most uncooperative company is Intel, which has started a sham 'open source' BIOS project. The software consists of all the unimportant parts of of a BIOS, minus the hard parts. It won't run, and doesn't bring us any closer to a BIOS that does. It is just a distraction. By contrast, AMD cooperates pretty well." For reference, there are currently two projects for a free BIOS that I know of: LinuxBIOS and OpenBIOS."

15 of 487 comments (clear)

  1. Does Anyone KNow by millahtime · · Score: 3, Interesting

    Does Anyone know what Intel gets out of not opening it up? Are there any IP issues?

  2. Flashing up is hard to do by IO+ERROR · · Score: 3, Interesting
    Okay, RMS is right; we need some action here. I run Linux exclusively on a piece of $#!+^H^H^H^H^H Dell hardware, and when they put out a BIOS update, getting it actually flashed involves the following misadventure:
    1. Unzip the self-extracting archive.
    2. Find the disk image included therein, and burn it to CD-RW as an ElTorito bootable CD. (With nothing in the data track.)
    3. Boot from CD and flash BIOS.
    4. Erase CD-RW.
    5. Don't Profit!
    I'd love to have an alternative to the BIOS which is open source, or free software, or both. That way I can finally claim to have a computer completely free of closed, proprietary software. And maybe have a chance of configuring the hardware a little better as well. Dell's BIOS is painfully short on options.
    --
    How am I supposed to fit a pithy, relevant quote into 120 characters?
  3. Eat your own dog food.... by Gopal.V · · Score: 5, Interesting
    What ever you say about RMS - he does eat his own dog food. I heard about the pains the FreeBIOS team had in converting RMS's personal laptop to FreeBIOS sometime back. But all that said, I am NOT going to flash this thing onto my boxes. This is what I'll do -

    You can help our campaign by buying AMD CPU chips and not buying Intel, and by publishing statements about what you're doing. Likewise, buy motherboards that support free BIOS.

    According to the FreeBIOS website, Acer , Via and SiS support it . And it will probably see a LOT of Bochs in testing too. So I might opt for an Acer laptopt finally (it's cheap too)
  4. Innovation by Mork29 · · Score: 4, Interesting

    I think that an open BIOS could really change things. The bios is something that hasn't seen true development or innovation since it's inception. Many products have been used by the masses, and not improved, untill FOSS was there to take it's job, and then they got on the ball, and they started competing with each other. This benefits everybody in the end. Besides, anybody who has ever done any OS or bootstrapping development, knows that there are way to many peculiar BIOSs out there, that have to be planned for. They load your code at different locations, they set the registers to different values, and your left wasting those first 512 bytes, just cleaning up what the bios did.

  5. The problem is, "what do you mean by BIOS?" by wowbagger · · Score: 5, Interesting

    The problem with a statement like "We need a Free BIOS" is exactly what you mean by "BIOS".

    There are two extremes to the schools of thought on this.

    The first is the minimalist: The BIOS is just enough code to put the machine into a state where it can load the real OS, and once the real OS is loaded the BIOS is no longer relevant. At a minimum this code would just set up the basics of the machine, and then load some section of the hard disk into memory and jump to it.

    The second is the maximalist: The BIOS should provide abstract access to all hardware so that the OS does not have to have drivers. The BIOS would provide routines for the disk controller, video, human interface systems (mouse/keyboard/etc.), memory control, system control, you name it. The OS would never get its hands dirty accessing real hardware.

    Both of these approaches have problems. The Minimalist approach means the OS has to support all hardware - which is the lament those of us who don't run Microsoft operating systems will sometimes have. If your OS does not know about your shiny new FooCard then you are out of luck. In the ideal Maximalist case, the BIOS would supply routines to access all the functions of the FooCard and your OS would Just Work no matter what.

    However, the problem with the ideal Maximalist approach is that desiging a BIOS API that will work with all operating systems is HARD . Your BIOS has to have a means of calling back into the OS (since real, non-trivial drivers need to have things like semaphores, queues, interrupt handlers, rescheduling points, etc.), but then you have to insure that all operating systems supply all those APIs with the same semantics.

    Now, ask yourself, if you designed a BIOS callback API around the Windows semantics (drivers cannot block, drivers must schedule a deferred procedure call if they cannot complete, drivers cannot cause a page fault to swap) how different it would be from a Unix-y style callback (drivers can block, drivers can pagefault from swap, drivers run til they are done).

    The current thoughts are "The OS knows best what to do, let the OS have the drivers".

    Now, in the context of a Free driver, you have to decide where between the Minimalist and the Maximalist you want to draw the line. Do you want to force the OS to have the code to set up the memory handlers and PCI bridges, for example? If the OS can handle reprogramming the PCI bridges it sure makes PCI hotplugging a great deal easier!

    If you look at the LinuxBIOS approach, it is more of a maximalist approach targeting the Linux kernel. This is great if you run Linux, but what if you want to run *BSD, or Windows, or CP/M-86?

    It would be possible, barely, to do like my old Multia did - provide BOTH a Windows friendly BIOS and a *nix friendly BIOS, and a means to switch between them. But now you've just doubled (actually more than doubled) the work for a system manufacturer - he has to write a BIOS for Windows, a BIOS for Linux, an BIOS for NetBSD....

    "Just publish the specs, and we will write the driver!"

    Again, publishing all the specs is hard - there's always that little "Oh yeah, we found that if the temp is less than 5C you have to wait an additional 50uS for this part to respond to a query - it's not intended behavior but it is observed behavior, Charlie found that out."

    And even if you can completely document all the specs, there is still the little issue of "How do I, the end user, get the BIOS for *my* OS flashed onto this board?" - if you think the manufacturers are going to flash boards with seventeen different BIOSes depending upon the customers whims... I have some oceanfront property in Goddard, KS to sell you.

    Then there is the issue of add-in cards - how do you integrate any BIOS they may have on them into the BIOS on your motherboard?

    Now, I know somebody will point out OpenFirmware - the idea that the cards provide drivers in a bytecoded language targeting an API

  6. Why rewrite a free version of the same horror? by forgoil · · Score: 4, Interesting

    Isn't it really time for some improvements in the bios area? Most OSes today don't use much of what is there, and the BIOS only function is to set up a number of parameters most non-overclockers/non-nerds could care less about.

    What about making something more useful than what is there now? Something that could have more features, such as replacing grub all together? (as in be able to boot any of your OSes on any any kind of bootable hardware) Maybe even have it run *gasp* in 32/64-bit mode and leave all the old horrors of x86 BIOSes behind, and maybe even make it possible to tailer it to other kinds of hardware (not x86).

    If they want people to support this, they really need to add some value to the whole thing, as many do care less about holier-than-thou hippiness.

  7. Open Hardware by tbcpp · · Score: 3, Interesting

    This is a good starting place. "I have a dream" that someday we can have open hardware as well as software (aka www.opencores.org).

    --
    Man is the lowest-cost, 150-pound, nonlinear, all-purpose computer system which can be mass-produced by unskilled labor.
  8. It's called free market by Anonymous Coward · · Score: 3, Interesting

    If you had read the article by Stallman you'd have found out that Stallmann is specifically asking people that agree with him on the need for a free bios to boycott Intel and tell them about the reason for boycotting them.

    So what Stallman is trying to do is build a market force that will persuade Intel that it is in its best interest to create a free bios or at least to not stand in the way of creating one.

    Hope this answers your question.

  9. Re:It makes sense by gwalcharian · · Score: 3, Interesting

    Why does it make sense?

    I am very much for Open Source, but for me "Open Source" includes BSD style licensed projects, but not GPL. Not trying to be flame bait, but I think GPL is damaging the Open Source movement. I say this because as a commercial developer I know plenty of managers who won't let me use Open Source on their projects because they think all Open Source has a viral license such as GPL.

    "Software should be free..everything should be free, including the BIOS". Nice concept, but reality is we live in what's called a zero-sum game. We as humanity have a finite amount of resources, which means that if I'm going to expend resources by writing software I need to get something in return, in order to provide for my family.

    BSD style licenses allow me to get recognition (not much I haven't written a lot of Open Source) and allow me to re-use that software in my commercial projects, which benefits me and Open Source as it allows me to get buy-in from management.

    GPL licenses do not. Essentialy I write GPL software and I cannot use it in any commercial projects.

    I love the concept of free software, and I think we are on a downward slide to having to pay a micro-payment for each web page you view, but call a spade a spade: IMHO, GPL is not designed to increase free software but to get rid of commercial software. As someone who's method of feeding my newborn baby is writing software you'll have to drag me kicking and screaming to work on any GPL'd code.

    More of a rant than I intended but I'll leave it as is, and see open a forum this is.

    Btw, I may very well be wrong as I have a limited viewpoint: A commercial developer, supporting a family, who has stayed away from GPL and even LGPL projects as code I write generally has to be re-usable in my commercial projects.

  10. Re:It makes sense by gwalcharian · · Score: 3, Interesting
    First of all, thank you...

    Your welcome, and thank you for that sentiment.

    Second, please don't conflate "commercial" and "proprietary";

    Very good point, 'commercial' and 'proprietary' are very different animals, and I intended 'proprietary'. One such group I believe is JBoss, who IMHO put out an awesome product, and in fact one of the more commercially used FOSS (Free Open Source Software) products.

    For the rest, both you and another commenter seem to be talking about dual licensing. Admittedly I do not know much about that. Can you explain how the following scenario would work?

    I work for company xyz making product abc. Abc uses some new proprietary algorithms (the 'a' of abc), and per management the source code for the implementation of these algs MUST remain undisclosed to keep competitive advantage. The 'b' and 'c' of 'abc' are known problems, and there's some great GPL's solutions usable off the shelf. So our final product is 'a' (properietary license for binaries only), 'b' (GPL) 'c' (GPL, and glue code (could possibly be GPL).

    Can management remain happy by keeping their baby to themselves, or would GPL require that the source to 'a' be made available?

    The above assumes someone else wrote 'b' and 'c'. How would the scenario change if I wrote 'b' and 'c'? Would it then be possible to keep management happy, and if so what would the licensing structure be?

    Thanks for the help btw. I really don't know much about licensing legal terms, but this is important for me, now more than ever as I used to just do what I love (i.e. code :), but am now taking on more of a managemen role to get more money and more freedom in what I code.

  11. Intel's Extensible Firmware Interface by Ushakov · · Score: 3, Interesting

    Intel is actually trying to get rid of BIOS (that is controlled by PHOENIX), pushing its own "Extensible Firmware Interface" (http://www.intel.com/technology/efi/), which seems to be something like OpenFirmware reinvented.

    The license on the download page looks like a standard 2 clause BSD license.

  12. Re:It makes sense by BlueWonder · · Score: 3, Interesting
    Not trying to be flame bait, but I think GPL is damaging the Open Source movement.

    I would hope so. The GPL was created as the license for the Free Software movement, by the same people who founded the movement. The much younger Open Source movement, on the other hand, was hostile towards the Free Software movement from the beginning: as you might remember, RMS was deliberately not invited to the meeting which was later considered the founding meeting of the Open Source movement. As a supporter of the Free Software philosophy, I have no sympathy for the Open Source movement.

    BSD style licenses [...] allow me to re-use that software in my commercial projects [...]. GPL licenses do not. Essentialy I write GPL software and I cannot use it in any commercial projects.

    This is of course FUD. The license applies to the licensee, not the copyright holder. The copyright holder can use the same code in commercial free, non-commercial free, commercial proprietary and non-commercial proprietary software at the same time.

    IMHO, GPL is not designed to increase free software but to get rid of commercial software.

    The GPL is designed to increase the amount of Free Software, so that proprietary software becomes obsolete.

    As someone who's method of feeding my newborn baby is writing software you'll have to drag me kicking and screaming to work on any GPL'd code.

    As someone whose method of feeding my family is writing commercial Free Software, you'll have to drag me kicking and screaming to work on any BSD-licensed code. :-)

    Seriously, you appear to work for a proprietary software company, i.e. your employer's business model endangers my ability to feed my family as much as my employer's business model endangers your ability to feed your family. That's just how our economy works. My employer wouldn't release anything under the BSD license precisely because he doesn't want to give your employer the ability to use our code without giving anything back.

  13. How to flash motherboard BIOS under Linux? by zero0w · · Score: 3, Interesting

    Before we start to discuss on creating a FreeBIOS, I would like to ask, how do you flash your motherboard BIOS in a GNU/Linux Operating system?

    Do we have a UniFlash counterpart in GNU/Linux?
    (Btw, UniFlash is a DOS utility.)

    Because AFAIK, I still have to boot a DOS floppy in order to have my motherboard BIOS flashed; or rely on tricks like creating a Bootable USB flashdrive wilth DOS on it.

  14. Why have a BIOS API? Why even have a BIOS? by Skapare · · Score: 4, Interesting

    The early BIOS was there to provide basic I/O support ... hence the name. but not all machines in the day had such a thing. This really came about from the fact that microprocessors were also being utilized in embedded applications involving firmware. So it was natural to think of having a firmware do common parts, like low level hardware support. But big computers, such as IBM mainframes, had no such thing. And they didn't need it. And a PC doesn't need it, either ... especially an I/O API part.

    What is really needed to get an operating system started? Really, just a boot loader. The first computer I used was a PDP-8 minicomputer. It had a front panel where you could set switches to define data and address, and store the results into core memory. There was a boot loader program we would manually toggle into core memory when we needed to (core memory, BTW, retained its contents when powered off). That boot loader would then read the paper tape reader and load the operating system. But there was no I/O support from the boot loader. There was no firmware. The OS being loaded was self contained.

    The next computer I worked on was an IBM mainframe (several of them, actually). Early models (360 series), did what was call IPL (initial program load) by triggering a single CPU instruction to perform a single channel I/O operation to read from a specified device (selected numerically by dials on the front panel). The first read operation loaded in just enough additional instructions to start more read operations to bring in enough of a boot loader to load the entire OS image. Then it branched to the OS and things took off. Again, there was no firmware I/O support other than these machines did have separate "I/O channel processors". The OS had to do whatever it would do on it's own.

    Fast forward to the emergence of BSD and Linux on PC. The BIOS is used to load the boot loader which loads the OS. The boot loaders generally do use the BIOS API, but in theory, they should not have to. The OS (32 bit and 64 bit versions now) don't need, and generally can't use, the BIOS API.

    So I say, get rid of it. Let's not have an I/O API in the BIOS anymore. Then let's quit calling it a BIOS (because it won't be that anymore).

    That leaves 2 functions which what we now call a BIOS does already, which we still need to do. One is to configure the hardware. This is one of the hard parts because it has to be tailored to the chipset and maybe even CPU involved. The other is to load the operating system.

    The hardware configuration could be handled in a different way. By adding on a 2nd smaller (maybe 16-bit) CPU, it can run a firmware program separate from the OS (the host CPU) that not only configures the hardware, but can also constantly monitor it while the OS is running. It could even be networked for those 10,000 machine server farms.

    This same extra CPU could also do the boot loading. But it wouldn't need to do much device I/O. It should have the ability to read a few basic devices (serial port, USB, Firewire, floppy, CDROM, ethernet, and IDE/SATA hard drives) sequentially from a specified starting point and load blocks into RAM or into flash memory (or flash to RAM). Put it in a loop and it can do this with megabytes of OS images directly (this serving as the full boot loader). Flash memory of 4MB to 16MB would be plenty (for now).

    I doubt we'll ever get a totally non-proprietary machine. But at least by having no more OS to firmware interfacing, we can eliminate some of the issues. And the extra control processor (something the later IBM mainframes already have many of anyway) will enhance the hardware support as well.

    --
    now we need to go OSS in diesel cars
  15. Re:You can't eliminate companies by John+Whitley · · Score: 4, Interesting

    You have a few incorrect assumptions in there.

    First, you seem to assume that there should be a license monoculture. While that eases the learning curve, it isn't necessarily realistic. Each of GPL and BSD licenses has its place today. The GPL works very well for projects that need to establish a "community space" for sharing work. It has been especially successful, IMO, in projects where many parties can come together to distribute the effort of "infrastructure" -- code that would otherwise be a cost-center for everyone involved. The Linux kernel itself is a great example of this. BSD is highly appropriate for projects that prioritize the utility of the work to all parties over the community sharing ethos. It proven to be especially relevant to reference implementations of standards, where acceptance and deployment of the standard itself is more important than any code that merely implements it.

    Second, you ignore dual (or N-way) licensing. For example, the folks that released FFTW (Fastest Fourier Transform in the West) at MIT did so with the blessing of the university because they could dual license. Researchers and those willing to contribute back to the work as a community effort reaped the benefits, while commercial entities with different licensing needs could pay as usual.

    The Zesiger License is an interesting compromise, but I'm unclear as to how it would work in practice. The GPL and BSD licenses have "social" properties that have proved very valuable to certain projects. Zesiger may simply be another point in a continuum, useful to some, less so to others. Also, it'd be nice if Zesiger or a variant had an escrow clause to help avoid "lost" code, e.g. because the company failed, creator had no backups and a hard drive crash one month before the release deadline, etc. Maybe extend SourceForge with "SourceVault" -- pages with little timers on 'em. 8-)

    As some have pointed out, we need business models that will support all the kinds of works that developers produce and users require. Licenses themselves create community rules that support or inhibit certain kinds of interaction, and thus certain ways of users obtaining support and developers earning a living. While it'd be great to have a "silver bullet" license that found that mythical perfect balance, I'm not yet convinced that goal is practical or even possible.