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."
Sounds like bias in bios
http://www.sandstorming.com
An open-source BIOS is something I'd really appreciate having, especially with the big corporations moving towards their big 'Trusted Computing' platform. It's MY hardware and I'll runn whatever the hell I want on it, not what some mega-corporate conglomerate decides I should.
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)Quidquid latine dictum sit, altum videtur
The problem with a motherboard BIOS is that it's tailored to the motherboard. Could the open source fratenity actually produce a workable product across a large number of motherboards? Would they produce something that works properly on all of them, instead of having modules that have been got to a state where they're good enough for the hacker creating them, but not Joe average on the street.
To be honest, if it's just a BIOS clone, I won't be interested anyway - wake me up when someone recreates OpenFirmware for the PC.
LinuxBIOS is not a BIOS, it's a non-standard firmware interface.
This is pretty much OK for embedded use, but for anything where you need standard BIOS functionality, it's useless. Worse, the name "LinuxBIOS" implies that it is BIOS functionality, which causes people to try to use it in inappropriate situations.
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
www.eFax.com are spammers
Stop whining? RMS not only instilled in us the ideal of free software but also provided gobs of it and with excellent quality yet! Move on? You mean accept the situation. You mean define what _we_ desire in terms of other's interests? Especially if those interests can hurt us all? I say respect yourself more and value your freedom.
Do you think your processor should contain open microcode as well? Even if you install free software on your mainboard BIOS, what about the firmware on your drives and graphics card?
While a wholly open-source machine would be great, it won't be a reality until we have technology that breaks the electronics mass production bottleneck (perhaps nanoassemblers). In the mean time you just have to decide which companies you're prepared to trust.
free-software religion aside, there are serious practical considerations to having closed bios code.
Bios support is an ongoing issue. Newer CPUs, RAM modules, hard drives, video cards are always coming out, as are bugs. With a closed source bios, support is cut after a certain length of time, and it is tough luck if any bios limitations exist after then. Oftentimes they don't address all the issues even while they're still making updates.
How many people are stuck with a motherboard they can't put a hard drive into, or can't do this or that, or are being bitten by a bug because of the bios. This happens all the time.
Also, bios setup screens are consistantly poorly designed, excessively limited, and written in "somebody set us up the bios" Engrish.
First of all, thank you for any and all Free Software you have written, under any Free Software license, copyleft or not.
Second, please don't conflate "commercial" and "proprietary"; many people make a living selling development of Free Software and support for Free Software, and confusing those two terms makes it more difficult for those people, just as you have encountered difficulty from managers that fear Free Software due to copyleft. Please have some sympathy for those people, and ensure that your statements do not undermine their use of GPLed software to make a living.
Finally, note that if you write a piece of software, you hold the copyright on that software; you may release it under the GPL, and you may also use it in proprietary products. You are in no way restricted by the license on a piece of software wholly written by you. The GPL simply prevents others from taking your software and making it proprietary, and prevents you from taking other people's GPLed software proprietary.
I'm sorry, but you're making a wrong assumption: this is not a zero-sum game. A zsg would require a situation where every gain on your opponent's side is a loss for you. Software development doesn't work that way. If you "invest" in creating new software that's freely shared you increase the pie, so to speak. By allowing other people to use your work and not requiring them to re-invent the wheel there is a net gain for the community, including you, since you benefit from others. This is a principle that might be hard to understand for someone who accepts the tenets of capitalism as the only ones possible (I do not wish to insult you, but many Americans seem terribly narrow-minded and uninformed in that respect, having been tought from childhood that everything related to communism is "bad" without ever going into detail).
-- Language is a virus from outer space.
Using _someone elses_ GPL'ed code in a non-GPL distributed software project is not allowed. With the LGPL you may use _someone elses_ libraries in a non-GPL/LGPL distributed software project. In no way do they limit your right to use your own code in a non-GPL project. If you take _someone elses_ GPL'ed project and modify it, then you must also distribute the modifications. The GPL ensures the freedom of any modifications made by the non-copyrightholders of a project.
How often do we have to beat on this drum? The GPL doesn't take away your freedom to your own code: it gives others (limited) freedom to use it. If management doesn't get it, they shouldn't be herding programmers.
This sig is intentionally left blank
Re: the abc program - there is no compulsion for a user of GPLed software to distribute anything at all. You are allowed, for your own personal (or internal company) use, to glue proprietary and GPLed code together in any combination you see fit - the only restrictions are on distribution of the code.
However if you plan to distribute someone else's GPLed code to any third parties, then all the code in there would have to be GPLed and the source code would have to be made available.
If YOU wrote all of b and c, then things are easier. Just put your code out under multiple licenses. You can GPL b and c and put it on a website AND license the same code to your company under a proprietary license for use in 'abc' - some companies, like Trolltech, actually make a living by producing GPLed code, and selling proprietary software companies the right to make derivative works of the same software under non-GPLed terms.
Hope this helps.