Hello all!
I am new to Trisquel and am looking to use free software since I think
freedom is very important (though ironically I'm posting this from Windows
since the computer I'm on atm refuses to work with anything other than 8....
gotta love "new innovative hardware" *rolls eyes*. I'm a student so don't
have any money but hoping in the future to get a freedom respecting machine).
Anyway this is a question that has been eating on me for a while and I can't
really seem to come to a conclusion myself from what I read online.
I agree with the move Trisquel and the FSF pushes for, to remove the non-free
blobs from the linux kernel because they are just that: non-free. No access
(or at least, no free as in freedom access) to the source code means that
nobody, other than the the original developer can control it, thus it is
software that controls the user. This question comes from a difference
perspective however, software stored on a non-rewritable ROM which nobody can
modify once wrote to, and why are they acceptable but non-free blobs are not?
Before answering that question let me explain how I understand it more in
depth. Perhaps I have misunderstood the issue somewhat and in that case
someone please let me know.
First, the BIOS. At the FSF, they are lobbying for a free BIOS . The reason,
because in the past the BIOS was on a ROM and thus was not changeable at all,
it was basically like hardware, like the program that runs on your microwave
oven and can't be changed. Today however, the bios is flashed in a user
flashable memory, so now it is more like softwre. On that page it says this:
"Strictly speaking, there was a non-free program in that computer: the BIOS.
But that was impossible to replace, and by the same token, it didn't count.
The BIOS was impossible to replace because it was stored in ROM: the only way
to to put in a different BIOS was by replacing part of the hardware. In
effect, the BIOS was itself hardware--and therefore didn't really count as
software. It was like the program that (we can suppose) exists in the
computer that (we can suppose) runs your watch or your microwave oven: since
you can't install software on it, it may as well be circuits, not a computer
at all."
So I agree that when a program is on a ROM there is no point to having the
source code anyway since it can't be changed without changing the physical
piece of hardware, but this begs the question, where do we draw the line for
when source code must be free and when it doesn't in the terms of a ROM.
For example, a CD is a ROM. You can't change it, to try to do so would simply
destroy the CD. So if I distributed a program that ran from a CD-ROM it would
be okay to not provide the source code because it can't be changed anyway?
What draws the line for the difference between a CD with a program and a ROM
with a BIOS, or firmware for a GPU, or whatever it is. Does this also mean
that it would be okay for Microsoft to provide a copy of Windows on a PC
loaded from a ROM rather than a hard disk? Of course they wouldn't be able to
update it without changing the ROM physically, but is this okay? Under the
terms that seem acceptable to the FSF I would assume yes? I don't think it is
though, so what draws the line of running something like Microsoft Windows in
a ROM vs running a BIOS, firmware or anything else. All are programs, the
only difference is they are different types of programs.
Looking for an answer to this the best I could find this this blog post
which of course, does not answer the question, at least not in the terms that
I understand. It seems that the blog writer was wondering too, just like me
why blobs in a ROM is okay but not in the kernel.
So, can anyone explain to me what the difference is and why blobs are okay in
a ROM but not in the kernel, because it looks to me that it's not okay in
either case?
Eagerly waiting replies! Thanks everyone!
-Jonah