El Thu, Aug 25, 2016 at 09:07:13AM +0200, Elena ``of Valhalla'' deia:
I find that definitions based on how easy it is to change something tend to put the actual dividing line in places that feel arbitrary, especially because what is easy for somebody is very hard for somebody else.
Yes, I acknowledged this problem. We may have to accept that some things are softer for some people than for others, and strive for more softness for more people.
In this specific case, additionally, the dividing line is placed in such a way that IMHO gives advantages to state-sponsored attackers (for whom changing code stored on ROM is not exactly easy, but somewhat feasible) and even technical users (that in most case don't have access to the tools needed to do so).
You mean intercepting postal packets or sabotages in douanes or check control points ? I don't know how to protect from that (at least without imposing too cumbersone measures to normal use by the legitimate user).
A definition that I like comes from Renzo Davoli and is basically that hardware is made of atoms, software is knowledge.
I like it because of its ontological root. And it is more generally useful, like in control of forces of nature is hardware patents and logical solutions are software patents (although this distiction would only make sense if patent offices tried to do something useful, and even then there's doubt whether they could). In this sense your definition is better.
In my message I called software "information", not knowledge, because in the uses I've come across knowledge is reserved for the interiosation of interrelated information by humans, it is what information provokes in you (and let's not get started in strong AI). But yes, if you take humans into the picture, software is knowledge and it is even culture.
In practical application you have the problem that knowledge exists in an abstract form, but is handled in concrete representations, and those representations are always physical, so people can circumvent definitions by alluding that they are handling representations, not the knowledge itself. So a tivoized device may not hide any information or knowledge but it may prevent you from changing the representation that the device will use. It won't prevent you from working freely with the knowledge, "just" with the device.
And your definition has more or less the same problem as mine. Knowledge may be secret, so something may be knowledge for some people and not for others, just like something may be easier to change for some people than others. Compiled proprietary software is software in a degenerated way, but it is. And the source is only available for some, for the rest of us it is very opaque information, you can hardly call that knowledge at all. So it is knowledge for the authors, not for the users.
With this definition, programs are of course software, firmware is software, verilog descriptions of a CPU are software, board designs are software (but not the boards themselves), and also culture, literature, music etc. are software, and kitchen recipes, but not the actual dishes that you eat.
ACK. Your definition and mine are very close. In fact you just have to add a fact to make them roughly equivalent: Knowledge is easier to change than atoms. (it works better with information, some knowledge is harder to erase). This is not a general truth (or stomach rearranges atoms as easily as our brain rearranges knowledge), but I think it applies to computers.
This way, the difference is a deep one: if I give somebody a piece of hardware, I no longer have it, in a zero sum game, while if I give somebody a piece of software we both have it and the total value for humanity has grown.
That kind of properties is very useful to retain yes, and comes easier from your definition than mine (if you forget I firstly said software is information).
Of course, under this definition, today in 2016 it is impossible to buy a computer¹ whose software is completely free.
Yes, with my definition it is quite difficult too, but not quite impossible. In fact that's why I'm here.
My personal pragmatic position is that buying (and in certain case using) things is ok from a freedom point of view as long as they have a bit more free software than the current standard (either as sold or after I've changed stuff that is easy — and legal — *for me* to change, depending on the context and the kind of market).
So your goal is your utopy? Or do you think you could eventually achieve it?
I'm not sure I understand you. What you want is a computer, so a certain collection of atoms, that embodies some information and you want to be able to freely use all the embodied knowledge. So for you that includes software and hardware designs (both are the computer software for you, right?). An then the hardware designs have been applied to atoms according to some electronics process you may also want to know, along with the physical properties of gates, materials, and energies. And the physical models that describe how the properties interact dynamically, so basically all of chemistry, physics and electronics solved for good and finished ?
So what you call a computer whose software is completely free is what I'd call a computer whose software is completely free and its hardware follows free hardware designs available to you ? Or what's exactly the knowledge you want to be free to use ? (more than yesterday, I guess, ever more).
I want that too (I just may call it something different?).
e.g. in 2016 an A20 based board that respects the definition of Open Hardware from OSHWA is fine, but if in 2026 we'll have a SoC for which the verilog sources are available a board based on a proprietary chip like the A20 won't be fine anymore, even if I have no practical way to get advantage of the difference.
I like your future :)