Ian Schick watches a plastic hand being printed in a 3D printer at the 3D Systems booth at the International CES, Jan. 7, 2015, in Las Vegas. Jae C. Hong/AP
To what extent do the ideas of free software extend to hardware? Is it a moral obligation to make our hardware designs free, just as it is to make our software free? Does maintaining our freedom require rejecting hardware made from nonfree designs?
Free software is a matter of freedom, not price; broadly speaking, it means that users are free to use the software and to copy and redistribute the software, with or without changes. More precisely, the definition is formulated in terms of the four essential freedoms.
- The freedom to run the program as you wish, for any purpose.
- The freedom to study the program’s source code, and change it so it does your computing as you wish.
- The freedom to make exact copies and give them or sell them to others.
- The freedom to make copies of your modified versions and give them or sell them to others.
Applying the same concept directly to hardware, free hardware means hardware that you are free to use and to copy and redistribute with or without changes. But, since there are no copiers for hardware, aside from keys, DNA, and plastic objects’ exterior shapes, is the concept of free hardware even possible? Well, most hardware is made by fabrication from some sort of design. The design comes before the hardware.
Thus, the concept we really need is that of a free hardware design. That’s simple: it means a design that permits users to use the design (i.e., fabricate hardware from it) and to copy and redistribute it, with or without changes. The design must provide the same four freedoms that define free software. Then “free hardware” means hardware with an available free design.
People first encountering the idea of free software often think it means you can get a copy gratis. Many free programs are available for zero price, since it costs you nothing to download your own copy, but that’s not what “free” means here. (In fact, some spyware programs such as Flash Player and Angry Birds are gratis although they are not free.) Saying “libre” along with “free” helps clarify the point.
For hardware, this confusion tends to go in the other direction; hardware costs money to produce, so commercially made hardware won’t be gratis (unless it is a loss-leader or a tie-in), but that does not
prevent its design from being free/libre. Things you make in your own 3D printer can be quite cheap, but not exactly gratis since you will have to pay for the raw materials. In ethical terms, the freedom issue trumps the price issue totally, since a device that denies freedom to its users is worth less than nothing.
The terms “open hardware” and “open source hardware” are used by some with the same concrete meaning as “free hardware,” but those terms downplay freedom as an issue. They were derived from the term “open source software,” which refers more or less to free software but without talking about freedom or presenting the issue as a matter of right or wrong. To underline the importance of freedom, we make a point of referring to freedom whenever it is pertinent; since “open” fails to do that, let’s not substitute it for “free”.
Is Nonfree Hardware an Injustice?
Ethically, software must be free; a nonfree program is an injustice. Should we take the same view for hardware designs?
We certainly should, in the fields that 3D printing (or, more generally, any sort of personal fabrication) can handle. Printer patterns to make a useful, practical object (i.e., functional rather than decorative) must be free because they are works made for practical use. Users deserve control over these works, just as they deserve control over the software they use.
Distributing a nonfree functional object design is as wrong as distributing a nonfree program.
Be careful to choose 3D printers that work with exclusively free software; the Free Software Foundation endorses such printers. Some 3D printers are made from free hardware designs, but Makerbot’s hardware designs are nonfree.
Must we reject nonfree digital hardware?
Is a nonfree digital hardware(*) design an injustice? Must we, for our freedom’s sake, reject all digital hardware made from nonfree designs, as we must reject nonfree software?
Due to the conceptual parallel between hardware designs and software source code, many hardware hackers are quick to condemn nonfree hardware designs just like nonfree software. I disagree because the circumstances for hardware and software are different.
Present-day chip and board fabrication technology resembles the printing press: it lends itself to mass production in a factory. It is more like copying books in 1950 than like copying software today.
Freedom to copy and change software is an ethical imperative because those activities are feasible for those who use software: the equipment that enables you to use the software (a computer) is also
sufficient to copy and change it. Today’s mobile computers are too weak to be good for this, but anyone can find a computer that’s powerful enough.
Moreover, a computer suffices to download and run a version changed by someone else who knows how, even if you are not a programmer. Indeed, nonprogrammers download software and run it every day. This is why free software makes a real difference to nonprogrammers.
How much of this applies to hardware? Not everyone who can use digital hardware knows how to change a circuit design, or a chip design, but anyone who has a PC has the equipment needed to do so. Thus far, hardware is parallel to software, but next comes the big difference.
You can’t build and run a circuit design or a chip design in your computer. Constructing a big circuit is a lot of painstaking work, and that’s once you have the circuit board. Fabricating a chip is not feasible for individuals today; only mass production can make them cheap enough. With today’s hardware technology, users can’t download and run John H Hacker’s modified version of a digital hardware design, as they could run John S Hacker’s modified version of a program. Thus, the four freedoms don’t give users today collective control over a hardware design as they give users collective control over a program. That’s where the reasoning showing that all software must be free fails to apply to today’s hardware technology.
In 1983 there was no free operating system, but it was clear that if we had one, we could immediately use it and get software freedom. All that was missing was the code for one.
In 2014, if we had a free design for a CPU chip suitable for a PC, mass-produced chips made from that design would not give us the same freedom in the hardware domain. If we’re going to buy a product mass produced in a factory, this dependence on the factory causes most of the same problems as a nonfree design. For free designs to give us hardware freedom, we need future fabrication technology.
We can envision a future in which our personal fabricators can make chips, and our robots can assemble and solder them together with transformers, switches, keys, displays, fans and so on. In that future we will all make our own computers (and fabricators and robots), and we will all be able to take advantage of modified designs made by those who know hardware. The arguments for rejecting nonfree software will then apply to nonfree hardware designs too.
That future is years away, at least. In the meantime, there is no need to reject hardware with nonfree designs on principle.
* As used here, “digital hardware” includes hardware with some analog circuits and components in addition to digital ones.
We need free digital hardware designs
Although we need not reject digital hardware made from nonfree designs in today’s circumstances, we need to develop free designs and should use them when feasible. They provide advantages today, and in the future they may be the only way to use free software.
Free hardware designs offer practical advantages. Multiple companies can fabricate one, which reduces dependence on a single vendor. Groups can arrange to fabricate them in quantity. Having circuit diagrams or HDL code makes it possible to study the design to look for errors or malicious functionalities (it is known that the NSA has procured malicious weaknesses in some computing hardware). Furthermore, free designs can serve as building blocks to design computers and other complex devices, whose specs will be published and which will have fewer parts that could be used against us.
Free hardware designs may become usable for some parts of our computers and networks, and for embedded systems, before we are able to make entire computers this way.
Free hardware designs may become essential even before we can fabricate the hardware personally, if they become the only way to avoid nonfree software. As common commercial hardware is increasingly designed to subjugate users, it becomes increasingly incompatible with free software, because of secret specifications and requirements for code to be signed by someone other than you. Cell phone modem chips and even some graphics accelerators already require firmware to be signed by the manufacturer. Any program in your computer, that someone else is allowed to change but you’re not, is an instrument of unjust power over you; hardware that imposes that requirement is malicious hardware. In the case of cell phone modem chips, all the models now available are malicious.
Some day, free-design digital hardware may be the only platform that permits running a free system at all. Let us aim to have the necessary free digital designs before then, and hope that we have the
means to fabricate them cheaply enough for all users.
If you design hardware, please make your designs free. If you use hardware, please join in urging and pressuring companies to make hardware designs free.
No comments:
Post a Comment