On 2016-08-24 at 09:54:35 +0200, Xavi Drudis Ferran wrote:
For me anything hard to change is hardware, anything easy to change is software. Hence the sensible FSF position on software on ROMs being like hardware and software in EEPROMs being like software.
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.
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).
A definition that I like comes from Renzo Davoli and is basically that hardware is made of atoms, software is knowledge.
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.
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.
Of course, under this definition, today in 2016 it is impossible to buy a computer¹ whose software is completely free. 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).
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.
¹ using in this case the very imprecise and personal definition of "something on which I can run a text editor, vi-based, thanks, and a graphical web browser, with the ability to connect to the internet"