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."
It makes sense, to me anyways, to have an open bios. How can one claim to run a free system when their very boot process is hidden and secretive?
Sounds like bias in bios
http://www.sandstorming.com
I can't really imagine a free piece of software that will undoubtedly render some people's motherboards totally unusable.
Admittedly, not many people actually screw up their motherboards today because of company-supplied BIOS updates, but in my opinion the most likely reason for that is that most people don't update their motherboard's BIOS.
I think this is a necessary problem to solve for a host of reasons (the most pressing in my mind being removing "Trusted Computing Initiatives" or DRM) but I can't imagine who might be willing to distribute such a thing because of the liability concerns.
I'm a big tall mofo.
Does Anyone know what Intel gets out of not opening it up? Are there any IP issues?
Evolution or ID?
to create "free" BIOS help Intel? Would gain market share? Would it somehow end up with a new revenue stream that it cannot access with its current marketing and other strategies? What can it gain by winning over a bunch of geeks?
This is not flame bait. I am just trying to understand why corporations like Intel would cooperate.
All I can say is stop whining and move on.
BP http://www.card-central.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.
- Unzip the self-extracting archive.
- Find the disk image included therein, and burn it to CD-RW as an ElTorito bootable CD. (With nothing in the data track.)
- Boot from CD and flash BIOS.
- Erase CD-RW.
- 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?
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.
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.
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.
It might just be me being naïve, but would Intel really go to such lengths to create a "distraction"? I find it a bit paranoid to think they'd start a project with the sole intention of just slowing down the progress for an open sourced BIOS.
"Anybody who tells me I can't use a program because it's not open source, go suck on rms. I'm not interested. 99% of that I run tends to be open source, but that's _my_ choice, dammit." (Linus Torvalds, October 26, 2004)
This makes it even more critical that we get free software BIOSes, and soon!
How am I supposed to fit a pithy, relevant quote into 120 characters?
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
actually, Intel cooperates quite a bit, by maitaining their own network cards or providing 2 or 3 developers for the linux acpi subsystem:
diego@estel ~/kernel # grep -i @intel.com MAINTAINERS | wc -l
11
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.
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.
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.
RMS, seeking 100% freedom, calls for a free governement. He was quickly carried off to Guantánamo Bay, Cuba for what was called a "debriefing". Knowledgable sources have stated that he will be released "someday".
This is a greatly injust comment to the man who started the free software movement. Please note that RMS is the man behind gcc, the most important free piece of software in existance.
This has nothing to do with GNU Hurd, but instead with Free Software itself - to ensure that users aren't restricted by the software they use it is necessary to have Free versions of _ALL_ parts of the system, including the BIOS. If there is one single part of the system that is non-Free, then the entire system is comprimised.
Contrary to popular opinion, Stallman is the last person in the entire Free Software/Open Source movement that I would expect doing something due to an ego issue. Listen to his speeches, read his writings, hell, email the man himself and ask him if this is due to Hurd. He just wants to see people not chained by thier own technology.
Intel support sucks....
They might have some great people working on linux but the company in general just doesn't care.
It took intel a full year before they had even half decent support for their wireless chipset despite promisses that they would support it when promoting it.
They refuse to release proper specs on their video chipsets in order to let X use the proper panel size on a laptop.
Jeroen
Secure messaging: http://quickmsg.vreeken.net/
Everyone should support and increase the compatibility of OpenBIOS!
OpenFirmware is the best BIOS standard ever, the joy of being able to code
from the command line and have non-interrupt-hijacking calls to the firmware,
a rudimentary HAL etc. is absolutely 100% cool.
It won't improve your Windows experience but who the hell cares about that?
It already has the support of Apple, Sun, SGI and IBM, comes in 32 and 64bit
versions in the standard, has a framebuffer, text console that redirects to
serial, video etc. automatically, blah blah blah.. Intel won't support it
because they like EFI.
But forget Intel too
Everyone should move to PowerPC, but then call me biased..
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.
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.
Agreed wholeheartedly. I've been around the man a few times, and the image most people have in thier minds about him is way off.
His problem is that he's not the most social creature around, so he tends to come off poorly due to his social ineptitude. Take his speech about free documentation at the O'Reilly conference. While it is very nice (and appreciated) that they're releasing awesome manuals, it's not free for all to use. This threatens Free Documentation -- Since there's these non-free manuals that rock (bought a few of 'em myself), people will be less inclinded to write good Free (speech) documentation, which the movement is in dire need of.
RMS was 1010% correct. However, he told it at the worst possible moment in the most outright manner possible, so he came off as a jerk.
Listen to his words. Watch his actions. But try to ignore how he presents the former. He just doesn't know people all that well.
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.
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
How does something that directly contradicts reality get modded insightful ?
The current scarecrow to throw at your enemies is terrorism, not communism. Please follow your times.
Also, if you meant that shared ownership implies communism, it logically follows that any company with more than one shareholder is communistic.
AFAIK most open source projects are (or at least started as) the work of people, not corporations.
Um, isn't this exactly what the company releasing its code would want ? That anyone who distributes products based on the code must release any enhancments to the code under GPL as well ?
You do realize that just because you, the original author and copyright holder, released version 1.0 under the GPL, doesn't mean you that you are under any obligation to release version 1.0.1 under any license - assuming, of course, that you own the copyrights to all the code in version 1.0.1 ? Licenses are used togrant rights, under certain terms, to people who don't have the copyright to whatever is being licensed.
Or were you bemoaning over companies inability to take GPL'd code, add some features, and sell the result as their own proprietary product ? If so, keep on lamenting; you won't get any sympathy from me.
Forget magic. Any technology distinguishable from divine power is insufficiently advanced.
Companies sell me hardware.
...). Yup, DLink is now $80 ahead (at least on me).
Not (commodity) driver software.
I would STILL buy hardware -- in fact I require that any hardware
I buy be supported by open systems. No support == no sale.
I really, truly, don't want the hardware vendor writing drivers.
(except as an example of how the hardware is EXPECTED to be used).
Take Intel as an example. Intel supplies some proto-code to illustrated
how protected mode works. But Intel does NOT supply Windows, BSD, Linux
etc with the processor chip.
Does the GPL hurt at all under these rules? Perhaps a company is afraid
that simply having access to the register specs is going to allow
a competitor to build a compatible chip and sell it for less money.
Figure 6 months to tape out, test, write documentation, market -- and
think about the cycle on existing chips! It won't make any difference,
unless the original chip is SO simple that it is trivial and not worth
the purchase price.
Also, patents on chip algo implementations can be obtained (I even
have some, so it 'aint that difficult!)
Perhaps you want me to believe that Intel can compete whilst opening
a register spec on the processor itself, while NVIDIA and ATI can't compete?
I'll even grant you that... but, personally, I only use open drivers.
(more secure, crashes can be dealt with, and have a future). Even if the
open driver solution costs WAY more.
For example, I use the DLink 800+ Ethernet to Wireless Bridge, rather than
a closed-source 802.11b solution. Cost? $20 vs. $100. Benefit? The open
solution will work with any platform (PC, SPARC, Windows, Solaris, BSD,
Oh, and the software within the 800 isn't even `GPL'! Its simply a bridge
from 802.11b standard and Ethernet standard.
As to software - low level OS and driver and commodity software must
be open source. Specific applications may be distributed in a more rigid
manner (although I STILL prefer source distribution, not knowing if the
vendor is going out of business, or what her plans are -- escrow would
work as well).
Ratboy
Just another "Cubible(sic) Joe" 2 17 3061
Offhand, I can think of three strong arguments for an OpenBIOS.
- Decreased obsolence: As others have noted, changes in BIOS requirements can be responded to given the BIOS source. BIOS maintenance is no longer at the whim of the hardware vendor. This could extend the useful life of hardware.
- Decreased HW lockout: As others have noted, the move toward "Trusted Computing" could easily take a sinister turn. An open BIOS would make it much harder for hardware vendors to lock out libre software.
- Increased OS compatibility: Many seem concerned about getting hardware compatibility right in an open BIOS. The flip side of this is that getting the BIOS to work with an open OS would become much easier. The premiere example is ACPI, where the BIOS often has bugs with corresponding Windows workarounds.
I think the goal of producing an open BIOS that works well on a number of machines is quite a difficult one. The rewards of achieving it, however, seem high.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.