Posted
by
Hemos
on Monday February 28, 2005 @09:04AM
from the fighting-the-good-fight dept.

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

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.

One function of OSS is to ensure that the freedom available to programmers now is never diminished.

Can the microcode can be used in a malevolent manner that exercises corporate control at the expense of the invidual? Companies have already threatened to do this with the BIOS (eg. DRM and such). Graphics firmware probably will never threaten the control over the general-purpose computing like the CPU bios can, but if it does, we can implement an OSS version at that point.

Free Software is not Open Source. Do I want an Open Source system? Hell no! I want an entirely Free system from software down to the hardware! I use GNU/Linux because I support the idea of Free Software, not because it doesn't cost me money to use. In fact, it does cost me to not use non-Free software; some of it isn't as usable as the proprietary counterpart and may require me to work on the code itself to make it do what I need.

But I have the freedom to modify the code if I want to. I'd like this with my firmware too. OpenBIOS is promising for the firmware replacement. The Open Graphics Card project is progressing and will finally give me a decent graphics card that is well supported and documented (I have a Radeon 9100; it is the last ATi card I will purchase since they to have gone down the path of not even providing specs to the DRI developers...so no more Matrox, ATi, nVidia,...).

The graphics card thing is a really good example of why we should demand Free Hardware. Unless you give up your Freedom and use proprietary drivers, you no longer can use a modern graphics card and get 3d acceleration under X. Printers are another good example; look at how many printers have no Ghostscript backend because the manufacturers refuse to provide specifications for their proprietary protocols. Specs are nice but open hardware documentation would be nicer since we could then e.g. reprogram the printer's firmware to support PostScript (or if it is too slow for that, something like PPA that we have decent drivers for).

The Neuros [neurosaudio.com] has had its firmware [sf.net] and even full hardware specs [neurosaudio.com] released! Neuros Audio isn't going out of business; not even close to it. The hardware schematics release may not be immediately useful but the firmware release is; things are progressive with FLAC support and soon MPC, things that never would have happened if the firmware had remain non-free software. Look at Rockbox [rockbox.org] too. The Rockbox firmware is far superior to the stock firmware.

Free Software needs to run on a system that is Free down to its lowest level. We live in a world now where everyone is trying to kill us with things like hardware-based Digital Restrictions Management. We must demand at the very least Free firmware for the hardware and good enough hardware interface specs to actually do something with the firmware (stuff like e.g. the Verilog for the ASIC doesn't matter so much when you have that, but it would be nice to have).

And who exactly, when they've spent years working on a project on nothing more than blood sweat and tears and not a few Mountain Dews, is going to allow a company to come in, fork their code, write their own extensions, and keep them locked up ad infinitum?

The answer is no one. No one who does open source for fun, for the purity aspect will want to do this (Although I imagine there are a few masochists out there who don't understand dual licensing). Companies who want to do open source will do something

The GPL version of open source is not going to work, especially if you want an entire system from thousands of different vendors to be 100% open source. It's hard enough to get industry-wide standards adopted WITHOUT requiring everyone to give their products away for free.

The only thing that will work is to either reinvent the wheel from scratch, in your own country, under communism, and hope you'll succeed where no one else has. (China seems to be making progress).

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.

Come up with an open source license that doesn't take away control of finished products from companies who haven't yet had a chance to earn a profit from their work

AFAIK most open source projects are (or at least started as) the work of people, not corporations.

The GPL doesn't work, it requires immediate release of source that can be used by competitors or would-be customers, and eliminates the profit motive.

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.

I would STILL buy hardware -- in fact I require that any hardwareI 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 illustratedhow protected mode works. But Intel does NOT supply Windows, BSD, Linuxetc with the processor chip.

Does the GPL hurt at all under these rules? Perhaps a company is afraidthat simply having access to the register specs is going to allowa competitor to build a compatible chip and sell it for less money.

Figure 6 months to tape out, test, write documentation, market -- andthink 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 worththe purchase price.

Also, patents on chip algo implementations can be obtained (I evenhave some, so it 'aint that difficult!)

Perhaps you want me to believe that Intel can compete whilst openinga 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 theopen driver solution costs WAY more.

For example, I use the DLink 800+ Ethernet to Wireless Bridge, rather thana closed-source 802.11b solution. Cost? $20 vs. $100. Benefit? The opensolution will work with any platform (PC, SPARC, Windows, Solaris, BSD,...). Yup, DLink is now $80 ahead (at least on me).

Oh, and the software within the 800 isn't even `GPL'! Its simply a bridgefrom 802.11b standard and Ethernet standard.

As to software - low level OS and driver and commodity software mustbe open source. Specific applications may be distributed in a more rigidmanner (although I STILL prefer source distribution, not knowing if thevendor is going out of business, or what her plans are -- escrow wouldwork as well).

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.

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

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.

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.

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 d

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.

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

If this code is all purely internal, and you're not distributing it outside the company, then you can do essentially whatever you want. The GPL only really covers distribution in that respect. It does have some words about modification of GPL'd code, but nothing there requires you to release or distribute your modifications to other people.

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

The problem is that we are using the end product as if it were a limited resource. It is not, we use special laws like copyright to limit it by force.The real limited resource here are programmers.With the right business model you can get paid for programming regardless which license the end result is released under.

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.

BSD doesn't guarantee buy-in... management could simply take your code and release it under a non-free license. They might say 'thank you' if you are lucky.

With GPL code you can guarantee buy in: they need to license it from you (asuming you are the sole copyright holder) under a different license than the GPL and you can dictate the payment terms.

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.

Okay, it obvious from the quote above that you either:

1) Are a Troll2) Are a Shill3) Don't understand the GPL

When you write the software (as you stated above) you retain copyright to the software - then you are still the copyright holder. Thus even if you license it under the GPL you can turn around and license the same thing under the BSD, X, Mozilla, your own custom license, and anything else you so choose - YOU ARE THE STILL COPYRIGHT HOLDER.

Thus when you take somebody else's hard work that they have put under the GPL - then you have to abide by their terms. However, that does not stop you from approaching them asking for a closed source license or "commercial" to their code. The reason they can do that is because THEY RETAIN COPYRIGHT TO THEIR CODE.

Sorry to use caps/bold, but I really don't think the previous poster could understand these concepts without it. They have only be discussed several hundred times and still people seem to shift their keyboards into overdrive before their brains get out of neutral.

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

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

I am proud to call Stallman a fellow American.
Left leanings and all, through his push for the
freedom of ideas and cooperation, he exemplifies
the patriotic ideals of our founding fathers.
Richard Stallman is the Thomas Jefferson of
the computer age.

"I think Europeans stereotype Americans and their views too narrowly. It makes America easier to understand for them maybe."

Yes, OR maybe that's an easy excuse to downplay any critique on Amerikans and the USA from us europeans.

For sure, there is a danger in using clichés and stereotypes, but it is also true, that those clichés *DO* hold a lot of water. Actually, I can't say I know of any well-established cliché about the nature of a people, that didn't had some truth in it. And that includ

I'm not saying the implementations of communism were perfect, far from it. What I claimed and continue to claim is that Americans tend to have the mantra "communism=bad" internalized to such a degree that it is impossible to even discuss it rationally. What's worse, most Americans have a deep-rooted hatred for a political and economical system without even having the faintest idea of what it is all about. I've worked with Americans before, and a very interesting question to ask is "What exactly do you hate

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

Wrong Wrong Wrong. If you write software, you can use it for whatever you want. You can relicense it. You can throw it in public domain. You can perform ritualistic burnings with it. Even if it is licensed under the GPL, if the copyright lies with you or your company.

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.

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.

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.

As for the 'just for the sake of it' part:Imagine buying a new harddisk and finding that your bios doesn't support such large drives..What are you going to do? Beg the vendor of your closed source bios to make an update for a board they consider obsolete?If the bios was open you could add support yourself. (Or alternativly pay one of those starving developers to make the changes for you)

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.

BIOS updates right now basically say that if they burn your house down it sucks to be you. In fact *all* software says this. How would this be different and why would anyone view it as anything other than another piece of software?

I have to agree with you entirely. (It's an easy way to increase the RMA rate. It would be possible to do some cool failsafe stuff, but that would increase the complexity of the system a great deal.) The only thing that I see that is missing from most motherboards BIOSes is excellent serial console support. Some motherboards do have it, but others are quite lacking..

While there are neat devices out there that will connect to the video card and keyboard and conver it, such as the Real Weasel [realweasel.com], i'd rather

A free (as in freedom) BIOS does not mandate that the motherboard manufacturer allows it's customers to tinker with it and still retain their warranty. But those who are willing to take the risk have the option, that's what freedom is all about.

Take the Linksys WRT54G, it's Linux-based. Linksys gains from using the well tested Linux core, and the customers gain by having the option to hack it at will. Check out http://openwrt.org/ [openwrt.org] for an example of the positive results.

Think of the BIOS as the ignition to your car. You can dismantle it if you wish, why should the PC's BIOS be any different?

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

Due to the low-level nature of a BIOS, they would expose lots of hardware details. It's the same reason why many hardware manufacturers are reluctant to release open source drivers (or to provide OSS community with hardware specs).

- it just isn't "quite" free. AFAIK, bothSUN Microsystems and Apple use OpenBIOS. Eachof these vendors, of course, use a differentimplimentation which is at least partiallydependent upon the hardware supported. In eachcase, it is possible to modify boot parametersin a (more or less) English readable format, atthe boot console level. At the core of OpenBIOS(OpenBOOT) is a Forth language bootstrap, whichby definition is extensible. (Various Forthgurus state that the entire Forth language canbe built from

99% of the time, the reason that people don't want to provide documentation for hardware is

A) because it doesn't existB) because if they release documentation, they might be compelled to support it, andC) because they may not be able to change and evolve the interface if they have to due to unyielding consumer expectation

There are huge amounts of secret cruft that Intel can hide, and sell development tools and licenses only to licensed motherboard developers for. That's a lot of money Intel wants to protect, and the motherboard vendors play the game the same way that employees refuse to discuss salaries because it is "unprofessional", even though it's usually an open secret.

Unfortunately, the LinuxBIOS project seems to be dead as open source: none of the source code can be downloaded anonymously from Sourceforge, the alleg

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.

For all the effort it would take them! All that have to do is release some documents. Even if they charged a small and fair fee to cover the costs of someone finding it and giving it a quick review before releasing it.

In short, if done correctly it would cost them nothing and give them a bit more credibility.

I don't know how much R&D Intel are investing in their BIOS but one possible benefit to them would be gaining extra manpower from other people interested in improving their BIOS and potentially a bigger testing base to test changes.

I don't really see what they have to lose though, they are mainly interested in selling chips and the BIOS is just something they have to provide in order for them to work.

I hear that this Intel company is competing with this AMD company. If they offer something that AMD doesn't, then they get customers (well, thos customers that want an open bios). Seriously though, you have to appeal to geeks. I get asked by non-geeks all of the time, what type of computer should I buy? Many of them know to ask, AMD or Intel? If I'm an OSS fan, and AMD has an open bios, and intel doesn't, I'm more likely to both recommend, and buy myself AMD products.

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.

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.

There: You've just underlined the need for an Open Source BIOS yourself. Why would any company consider the interests of its customers if there's no obvious, immediate profit in it? And if they wouldn't, why would you trust their proprietary, closed-source software?

What can it gain by winning over a bunch of geeks?

Because the Geeks are the ones who advise everybody else on what motherboard to buy.

That's exactly why a Free bios is necessary. I am typing this up in a Free Software browser (Konqueror) in a Free Software window manager (KDE), which run on top of a Free Software graphical manager (X), which runs on top of a Free Software system (Gnu), which runs on top of a Free Software kernel (Linux), which is booted by a Free Software boot loader (Grub). All of this Free Software runs on top of a non-free BIOS.

This raises the question - Am I really Free? When a Free Software BIOS exists, you can make a safe bet that I'll be using it.

(P.S. I'd suggest against using the term Open Source to describe software which is made to protect the rights of the users. There is a huge difference between Free Software and Open Source - Namely OS completely avoids any real mention of software Freedom. You won't find any mention of the four freedoms [gnu.org] on OSI's site [opensource.org]. Indeed, the only real mention of software freedom is where they call it ideological tub-thumping [opensource.org]. This is definitely a Free Software issue, not an Open Source issue.)

That's exactly why a Free bios is necessary. I am typing this up in a Free Software browser (Konqueror) in a Free Software window manager (KDE), which run on top of a Free Software graphical manager (X), which runs on top of a Free Software system (Gnu), which runs on top of a Free Software kernel (Linux), which is booted by a Free Software boot loader (Grub).

I bet you have an erection, too. I'm typing this in my commercial browser, on a commerical operating system, running on all-types-of-closed Apple

And that's your choice. All users should have the freedom to choose what they do to their machines, and the freedom to use non-free programs is one of those freedoms. However, I choose to exercise my ability to use Free Software exclusively.

Let me give an example. I bought some old IBM thinkpads, that I wanted to run from a PCMCIA Flash disk, without a harddisk, floppy or CD-drive.

The TP365XD boots fine from PCMCIA CFlash.

The TP770 BIOS does have a setting for booting from PCMCIA, but it does not boot from my PCMCIA CFlash cards. I do not know if it is a bug, if it only boots from some kinds of PCMCIA drives, and I cannot fix it.The BIOS has a lot of function

Personal response since you asked - For me the #1 reason I began to detest using non-Free software is because I don't like to feel like a damned criminal, and I don't like to feel like I'm getting screwed over. Let's say I buy WinXP. I go in the store, I pay for it with cash, and I walk out. When I get home and try to install I'm faced with a screwed up EULA which forces me to agree to terms that I find highly objectionable. I was not presented with this contract at the time of sale when I bought that software.

I don't like being screwed over. Yes, I do read all contracts I agree to. I'd suggest you do the same, you'd be horrified.

Then after I give permissions to that particular software company, I have to input a number to prove to the software that I actually bought it. And for this particular software I may need to call up the parent company and ask them "May I please have your permission to use this software that I legally bought?"

I don't like being treated like a criminal. I buy, I use, end of subject. I will not have to prove to anyone that I am law-abiding.

So I switched two years ago, and Free Software has given me countless personal freedoms that were unthinkable when I was using a non-free system. I no longer need to worry about legality when I want to heavily modify my system to my liking. I no longer feel as if I'm looking at a sealed black box whenever I want to learn something - the entire system is open to explore in any way I choose. The development of the programs I use are not dictated by any one entity, but instead by the users who have our needs in mind.

It sounds strange, but I think freely now. The technology I use is free for me to hack, rip apart, study, put together, package, Frankenstein into my own project, and so on. And through the freedom of knowledge given to me by free documentation, I have learned how to do just that.

Now when I think of using a non-Free system I am filled with contempt. Such a system would not be modifiable and explorable, but instead packaged together at the whim of someone else and kept from study. On top of this it's bound by an EULA which is morally deplorable and legally questionable. With the current copyright and patent laws, the actions of the largest software vendors, and the BSA breathing down everyone's necks... I refuse to use a non-Free system. I'd be giving up a hell of a lot more than I'm willing to part with.

(Note - please be kind, this is a deep subject and I tossed this together off the top of my head while trying to keep it short. This explanation is far from perfect.)

For the most part I agree with you. And then I poke my head up and look around... and I can't help but to feel passionate about this.

Software patent laws make it almost completely impossible to legally be a programmer nowadays. Copyright laws make it so that nothing returns to the public domain, making our common culture forever a property to be bought and sold. Companies lobby congress to create laws which allow them to enforce their copyrights at the cost of due process (DMCA). One entity in particular o

Except turning on and off the hardware, enabliing multiple CPU's, managing the interrupts, affecting reboot behavior, manipulating power-on or sleep or suspend behavior, turning down the CPU clock when things over-heat, reporting the temperature, reporting the CPU voltages, and everything else you need to know at the basic hardware levels.

Other than boot and (maybe) shutdown, sure. It used to for suspend/resume, but no longer thanks to ACPI.

enabliing multiple CPU's

Nope. SMP PCs (and most SMP computers??) boot on one CPU. OS is responsible for booting other CPUs. (though, this may depend on BIOS having properly described them, it also obviously requires a hardware facility to allow OS to kick a CPU into running.).

RMS calls this treacherous computing [gnu.org], and with good reason. The BIOS is where everything starts; if a manufacturer doesn't want you doing something with your computer, that is where they would put it.

"Treacherous computing" is a more appropriate name, because the plan is designed to make sure your computer will systematically disobey you. In fact, it is designed to stop your computer from functioning as a general-purpose computer. Every operation may require explicit permission.

This makes it even more critical that we get free software BIOSes, and soon!

How do I know that there isn't spyware code in my bios revealing information about me without my knowledge? How do I know that the lowest level components of my system will perform without any "Trusted Computing" quirks? If I for some reason need to modify my bios to gain a function (to make boot time clustering easier, for example), how could I do that with a non-Free BIOS? As a student, what if I wanted to study the code to my BIOS so I know how my computer _really_ works, on all levels?

Saying "The license to your BIOS doesn't matter as long as you can run stuff on it" is like saying "The fact that my car's engine is sealed in a lead black box doesn't matter as long as I can still drive." Yeah, on the surface it's true but when you think of the subject with any actual depth it just doesn't make sense.

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:

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.

Infact, newer versions of some dell bioses actually break X, atleast the latest bios for the inspiron 2600 laptops prevents X from starting up.Aside from that, why do they bother with floppy images? most of their machines dont come with floppy drives anymore anyway.. and a program you run from the os won't work too well if the old bios is causing your os to not boot.

You do know there are several alternatives for flashing a Dell, right? You can even push it remotely. They also have binaries for Linux on several of the systems I have flashed so you can just run it straight from the OS.

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 [sourceforge.net] in testing too. So I might opt for an Acer laptopt finally (it's cheap too)

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.

Amen to OpenFirmware. It rocks muchly; not only through being infinitely configurable (and allowing my FCode-containing devices to work on any OpenFirmware-containing computer), but through letting me boot from a plain text file on an E450 to play pong:-) IEEE1275 is where the future lies. Available for Sun & Mac, please do not chew your open firmware.

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.

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.

Not exactly. It's actually a BIOS. It replaces your PC BIOS. And last I checeked, it could boot and run Windows 2000, Linux and OpenBSD. It's not as standardized as other BIOSes, but it's still a well functioning BIOS.

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.

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.

I think you're reading too much into that statement. I don't think the idea is that Intel released their "open" bios in order to deliberately distract developers away from developing a truly free and working bios. It's just not what is needed. Intel released some useless crap in an effort to get the OSS guys to shut up, and it didn't work. It isn't really "such lengths", it's just some code that Intel doesn't find important.

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

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

The problem with the Maximalist approach as you define it is that you will need to update the firmware every time you install a new piece of hardware. I can't believe my firmware will support every sound card and TV tuner under the sun, for example.

I am not an engineer, but I would go with a Minimalist approach augmented with just enough smart to abstract access to the boot device. Which is, in itself, pretty big if you take into account booting from the network, USB/Firewire devices, etc. From there o

Now, I know somebody will point out OpenFirmware [...] This is nothing more than the Maximalist approach [...]

[The OpenFirmware drivers] are good enough to boot the system, and then get replaced by OS specific drivers [...]

You are thinking too black-and-white. Nothing is stopping you from using a hardware and OS independant approach like Open Firmware [fsf.org] and then instead of booting a kernel, bring up a device hardware abstraction layer that boots a kernel.
It hasn't been done yet (to my knowledge) but that shouldn't stop you right?;-)

Reading your text I think you have a few misconceptions on what Open Firmware [sun.com] is and which features it provides. I suggest reading this very insightful introduction [ibm.com].
If you are an embedded systems engineer, what do you think about alternate approaches like Tinyboot [tinyboot.com]?

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.

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

OpenFirmware is the best BIOS standard ever, the joy of being able to codefrom 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 64bitversions in the standard, has a framebuffer, text console that redirects toserial, video etc. automatically, blah blah blah.. Intel won't support itbecause they like EFI.

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/ [intel.com]), which seems to be something like OpenFirmware reinvented.

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

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.

We all know the whole 80x86 architecture is bodgey and suboptimal..... people only stick with it because that's what Windows runs on. Why don't we just go out of our way to create a brand new, streamlined design for a hardware platform, using something like Power G5 processors? {And you'll note the plural there.} Not just the BIOS, but the whole motherboard. We could start from scratch, make it totally legacy-free if we so desired; though it'd be stupid not to support USB, SATA and one of the graphics card busses. The entire spec could be open. We could probably even specify repair-friendly stuff like "All ICs to be socketed, all jumper points to be labelled, LED indicators required on foo and bar".

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.

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.

Yes, but he didn't write it. A long time back RMS wrote some text macros for a truly scary text editor - others then asked permission to create an editor written in C that operated in the same way - hence RMS "invented" emacs (his own description) but didn't actually write it - hence he's always descibed himself as the inventor and not the author or the maintainer.

This has nothing to do with GNU Hurd, but instead with Free Software itself [gnu.org] - 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 [mailto] and ask him if this is due to Hurd. He just wants to see people not chained by thier own technology.

No mod points to bump you so I'll just add that it is really annoying when people who have probobly never contributed a single line of code to any project anywhere in the world start bashing RMS for being a relic/fanatic/idealist.

RMS is not only the last person I would expect to put ego above cause, he is one of the few people in the world who truely understands what he started.

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.

In the days of CPM on Z80, it was not uncommon for the BIOS to be available as source code. In fact, Digital Research provided a skeleton BIOS so that developers could copy their example onto new hardware. Of course, a BIOS that was only 2 kilobytes was not a big deal, but it shows that the principle can work. And there's no "magic" involved.

"Trusted Computing" used to be called "Palladium", but it got so trashed and exposed as an excuse for Microsoft to prevent anyone else from being able to read their files, and even potentially from being able to boot non-Palladium signed operating systems, that they changed the name. Richard Stallman was one of the people who was really raising red flags about its management of core parts of your hardware and denying access to other, non-Microsoft controlled software.