Some blobs are more equal than others

Today, Steve (the principal of our school), a few students and I went to Balamand University in the north of Lebanon to listen to Richard Stallman speak on “Copyright vs. Community”.

It was a very…interesting…talk, though I don’t think I buy into all of Stallman’s conclusions. He basically said that copying music doesn’t hurt the artist because the artist has already been screwed over by the record industry. Now, I’m definitely not one to argue against the last part of that statement, but Mom always taught me that two wrongs don’t make a right.

I also found it somewhat ironic to have him talking about copyright and patents in a place where patents are none existent and copyright has about as much weight as very thin tissue paper. Having said that, if Stallman’s ideas for copyright were ever to become reality, it would make for some very interesting changes from how things currently are.

The most interesting part of the talk was during the Q&A session, when Stallman railed against “binary blobs” in the Linux kernel. As I was well aware, and can somewhat understand, he dislikes proprietary firmware being included in the kernel. This seems to be the main reason that the FSF doesn’t consider Fedora a “Free software distribution”.

But later, Stallman said something that I found very surprising. He said that he has no problem with the firmware being burned into the hardware (via a ROM chip or the like). He said that he wanted a “black box”, and it’s obvious that he has no problem with proprietary firmware as long as it’s permanently embedded in the hardware rather than being loaded into it at boot time.

What I didn’t understand is why Stallman feels that there’s a difference? What is it? The method used to get the firmware into the hardware? Why make this the line in the sand? It seems very arbitrary to me.

And I think that sums up how I felt about the talk. I really respect Stallman for getting the Free Software movement going, but I think that there are far more shades of gray in software (and life) than he is willing to see.

I do want to thank Balamand University for inviting Richard Stallman to speak, and I do want to thank Stallman for coming to Lebanon. While I don’t necessarily agree with him, I love the fact that his talk opened my students’ minds to different ways of thinking about things.


Comments

Mace Moneta
Tuesday, Jun 8, 2010

I can understand the distinction between ROM software and downloadable software. ROM’d software becomes an active functional component of hardware, like a filter block or oscillator on the board. It is immutable and thus beyond the line that separates hardware from software.

Downloadable software, while straddling the line, is primarily on the other side - more software than hardware. It is subject to modification, even potentially during execution. As a result, its function and behavior are variable, undermining the the control and stability of the OS.

It may seem a somewhat arbitrary distinction, but if the goal is freedom (with all its connotations), binary blobs are a potential obstacle. They may be benign or malevolent, or their intent may change dynamically; there’s really no way to tell for sure. It’s the uncertainty that undermines their utility.

Gideon "Gnafu" Mayhak
Tuesday, Jun 8, 2010

Without having heard the talk, and only going by what you say here, I’d like to offer some quick thoughts:

There are (probably) always going to be hardware vendors who feel there is some kind of (false) security in keeping their binary firmware closed. For those vendors, you have two choices:

1. Have it embedded in the hardware, always available for software drivers to load into memory
2. Offer it as (quasi-)distributable blobs that only some software vendors feel comfortable (or are legally able) to distribute

When you have 1, you still may need to deal with the occasional workaround because the closed firmware can’t be fixed; but with 2, you have the additional issue of not always being allowed to distribute that necessary firmware (I think of Broadcom, and the [minor, but annoying] crap I have to do when installing Fedora for the first time).

So in summary, the ideal is for hardware vendors to recognize the stupidity of using closed firmware blobs. But when given the choice between 1 and 2, I personally can see where 2 would be preferred.

Gideon "Gnafu" Mayhak
Tuesday, Jun 8, 2010

And to summarize further, guessing at RMS’ overall point:

It’s all about the ability to distribute a piece of software without having to have a vendor’s (or anyone’s) permission. If your software doesn’t require binary blobs, it is truly free (even if it relies on hardware that contains said blobs, because you have to pay for that hardware anyway).

Jonathan Dieter
Wednesday, Jun 9, 2010

Just to clarify Fedora’s policies: firmware can be packaged in Fedora if it is freely redistributable, even if it can’t be modified. That’s why Intel wifi works out of the box in Fedora, even though its firmware is proprietary. It is perfectly legal to distribute Intel’s firmware without Intel’s explicit permission because it’s freely redistributable.

RMS is saying that that Fedora shouldn’t include Intel’s firmware because it’s not truly Free software. But, if Intel burned the firmware into their wifi cards, that wouldn’t be a problem for him. This is the part that I find so inconsistent.

Gideon "Gnafu" Mayhak
Wednesday, Jun 9, 2010

Ah, I see. I definitely agree that doesn’t make sense to draw such a line. However, to further defend the man (just for fun):

What if Intel were to revoke the license to distribute that firmware (if even possible)? If embedded in the hardware itself, that couldn’t ever be an issue.

But yeah, just throwing in my two cents and pocket full o’ sunshine :-). I appreciate this blog post either way, as it’s stuff like this that gets me thinking.

nim
Wednesday, Jun 9, 2010

When firmware is burned in a ROM it severely limits the creativity of the firmware authors (because if there are mistakes there is no way to fix the hardware short of a recall). Non updatable firmware is usually very simple and limited to the strict minimum needed by the hardware.

When firmware is updatable, vendors include all sorts of borderline “features”, because they feel that even if they don’t work out they can always release an update (an example is the PS3 firmware update that changed the terms of service). That makes it very dangerous not to have the firmware source.

Jonathan Dieter
Wednesday, Jun 9, 2010

Nim, first off I want to say that I would be the first to agree that open source firmware beats the heck out of proprietary.

My main issue is with saying “burned in ROM is good, inserted on bootup is bad”. To me either both are good or both are bad.

You do have an excellent point about the lack of “features” in a burned-in firmware, but I would argue that it’s a two edged sword. Sometimes those “features” actually are features (Sony’s Linux removal “update” is obviously excluded).

Jonathan Dieter
Wednesday, Jun 9, 2010

Sorry this didn’t show up sooner. It got caught by my spam filter (not sure why).

You make a very valid point.