On Tue, Jan 08, 2008 at 02:06:56PM -0500, Richard Stallman wrote:
|     Now you have found a second reason for not recommending OpenBSD. It
|     (legally) distributes binary firmwares for certain pieces of hardware.
|     Again, you make a distinction that many here say does not exist.
| 
| The distinction clearly exists.  They are not the same.

No. It is not because you say there is a distinction that this
distinction exists. The same holds for me (or anyone else, for that
matter). This is why I provide ample arguments to show why they are
the same. Stating "They are not the same." does not make it true.

|     There's been a trend in hardware development. First, hardware was just
|     that : a couple of circuits connected on a pcb. Then, hardware got
|     "firmware", a small bit of unchangeable software the hardware vendor
|     integrated with the circuits. An upgrade of this firmware meant
|     replacing the circuit holding this firmware. We moved from ROMs to
|     EEPROMs, allowing people with specialized hardware to update this
|     firmware without replacing actual hardware. Next step was a piece of
|     non-volatile memory (flash memory of some sort) containing the
|     firmware, easier to upgrade but not always required (since the
|     hardware comes with firmware installed by default). Today, we see many
|     pieces of hardware with a small amount of RAM where the device driver
|     loads the firmware upon device attachment.
| 
| That's like walking from Paris to Geneva, and saying that since all
| your steps were short, there cannot be a frontier.

No, it is nothing like walking from Paris to Geneva. I can point to
you on a map exactly where the border between France and Switzerland
is and crossing this border has nothing to do with the ethics of free
software.

| The ROM is clearly equivalent to a circuit.  The firmware you load
| into a RAM is clearly software on your machine.  Precisely where to
| draw the line is a tricky question, but there has to be one.

No, the ROM is clearly a piece of software. It's Read Only Memory, it
has been programmed with firmware once. Do you really believe that the
medium dictates the freeness of the software ? Firmware is just
another piece of software. It was written by someone in some
programming language, compiled into a binary format and is in some way
shape or form distributed with the hardware. How the hardware loads
this piece of software is dictated by the storage medium.

|     Yet, this firmware can be upgraded and OpenBSD will
|     automatically do this if it detects older firmware on your NIC. You
|     can choose another operating system that does not upgrade the firmware
|     and the hardware may work fine for your use case. Should the firmware
|     be free software ? It's inside the hardware and on your other
|     operating system you are not installing software on it.
| 
| That is a borderline case.  One possible resolution is that it is ok
| to use this hardware, but updating the firmware is a bad thing.

This can not seriously be what you really believe. The non-free
firmware that comes pre-installed on the hardware is OK, but updating
it yourself is not ? If you wanted to use this newer version of the
firmware, you would buy another piece of the same hardware with the
newer version installed ?

| Another possible resolution is that the fact that they widely release
| upgrades for the firmware is enough to make this hardware bad.  I want
| to think about this more before I reach a conclusion.

I do not see how the details of how firmware upgrades are distributed
come into play here. You're better off if no new firmware is
released ? You can use a piece of hardware until the vendor releases
new firmware ?

Let's look at another example. Some hardware vendor sells a particular
type of NIC. The NIC has firmware installed on it in a piece of ROM.
The firmware works fine and does exactly what the vendor wants. To
make the production of this particular NIC cheaper, the vendor decides
to move to RAM with the driver loading *the exact same firmware* in
that RAM.

The software hasn't changed. The license hasn't change. Please explain
to me how ethics changed.

If you were in the store and had the option between the ROM-based and
the RAM-based version, according to you it makes a difference which
one you buy ? ROM-based is ethical, RAM-based is not ? Really - there
is no difference when it comes to the ethics of things. You argue that
driver-loadable firmware must come with source under a permissive
license but when the same firmware is already programmed on the NIC
it's OK. I'm arguing that these are the same - from an ethical point
of view. The firmware (ROM or RAM) does not come with source released
under a permissive license.

|     I conclude that what you consider ethical or not depends on how easy
|     something is to accomplish. However, ethics has nothing to do with
|     ease of action.
| 
| In some cases it does.  Whether you are allowed to go to the moon is
| an academic issue, because you can't.  Whether you are allowed to go
| to Paris is a real issue, because you could.

No. Again, going to the moon or going to Paris is not an ethical
issue. The ethics of software are not involved at all. Also, upgrading
ROMs is not an academic issue. Fewer people can do it but it's still
possible. But you are arguing that just because something is hard to
do, ethics don't come into play. They do. Just like breaking into my
webserver is unethical, easy or not.

|     If you really apply your ethics so loosely, I have little respect for
|     them.
| 
| You seem to be saying that proper ethics must never have gray areas.
| I think that is a mistaken principle--gray areas are inevitable, and
| we have to deal with them.  There are various ways to do so, but none
| of them is perfect.  Sometimes we have to draw a line in the best place
| we can find.

How can there be gray areas in software ? If microsoft were to release
a cellular phone with a specialized version of their operating system
installed as a ROM, wouldn't that still be the same non-free software
we've come to expect from them ? If I took GPL licensed code, changed
it for my specific use case, compiled it and burnt it on a ROM and
then sold my piece of hardware without giving away the source under a
permissive license, would you not care ?

|     If my webserver is broken into by some mal-intended person, I don't
|     care if the webserver ran Windows and the break in was very easy or
|     OpenBSD where the break in was near impossible : I still consider it
|     unethical to break into my webserver. I may be at fault for using such
|     an insecure OS for a webserver but that doesn't change the ethics of
|     the break in.
| 
| I agree with your reasoning about this case, and I would generalize it
| by saying that if an act is wrong, making it easy doesn't make it
| right.  However, I think it is also valid to say that when an act is
| prohibitively difficult, there is no need to care whether it is also
| prohibited.

Prohibiting generally involves the law. Ethics do not. They often
agree on things (since, in general, ethical people write laws) but
they're not the same (eg it is legal for microsoft to distribute non-
free software but you consider it unethical).

Breaking into my OpenBSD machine is prohibitively difficult. Two
security issues in ten years, that's quite a feat. That does not make
it impossible. OpenBSD is written by people and people make mistakes.
I'm not ignoring the security of my webserver just because I think it
is difficult to break in. I still care.

You say you want certain freedoms in software. You say you want this
for all users and all software alike. Not all users are alike - some
are interested in the software burnt into the ROMs on their NICs. They
want to be able to read the source to the firmware, maybe just to
check that it does indeed do what the documentation says. You are
leaving those users out in the cold when you say that ethics are not
involved in the distribution of that firmware and you refuse to fight
for those freedoms equally hard.

For the record, I do not believe that firmware (ROMs, flash or driver
loadable) should come with full source under a permissive license. It
would be a nice-to-have, but since there is no real distinction
between the various forms firmware is distributed in, it's equally
nice-to-have for all forms. Once the firmware is loaded into the
device, it should just do its job. I'm merely pointing out the
falacies in your ethics.

And doesn't the fact that we are debating this issue at all tarnish
your "clearly" existing distinction ? If it was that clear, we would
not have this argument. I disagree with you, and I've provided
arguments and examples (within domain) why. Your arguments take me to
Paris, Geneva and the moon but have little to do with ethics or
software. It is you who's attacking straw men here.

Paul 'WEiRD' de Weerd

-- 
>++++++++[<++++++++++>-]<+++++++.>+++[<------>-]<.>+++[<+
+++++++++++>-]<.>++[<------------>-]<+.--------------.[-]
                 http://www.weirdnet.nl/                 

Reply via email to