Free Software and Free Hardware Designs
A very large number of people now accept Richard Stallman's arguments
about the social benefits of free software. I am claiming that these
arguments also apply to hardware design.
Richard Stallman's classic article
Why Software
Should be Free is built around three key themes concerning the harm
caused by restrictions on copying, changing, and building on software:
Three different levels of material harm come from such obstruction:
Fewer people use the program.
None of the users can adapt or fix the program.
Other developers cannot learn from the program, or base new work on it.
These three themes apply equally, though in different ways, to
hardware and hardware designs.
1. Fewer people use the hardware or hardware design
Stallman's argument for software is based on the vanishing cost
of reproducing software: basically it says that if fewer people can
afford the software, fewer will use it.
The cost argument strictly applies to software in its executable
form. It also applies in theory to designs for FPGAs or CPLDs, but
in practice the relevance is small in this case since few people have
programmable logic boards. It does not apply to physical hardware - yet.
However, it may well apply to hardware in the future, since a proportion
of hardware costs are development costs, and reducing these by increased
use of shared designs should reduce overall costs.
Yet the argument still applies on other grounds than cost. The market
for some types of computer hardware is limited by the fact that it
cannot be used with free software, since the interface definitions
are kept secret. This is the purpose of the
Open Hardware Certification Program.
However, this program has limitations:
- It works after the fact: first a device is produced,
then a manufacturer applies for certification. Devices manufactured
from free hardware designs would automatically make interfacing information
available, encouraging a faster spread of open hardware.
- The amount of information that the manufacturer is required to give
to achieve certification is quite limited. It was once quite common for
circuit diagrams of such
devices to be made available by the manufacturer. The Open Hardware
Certification Program acts as a validation (even for manufacturers
friendly to free software) that there is no reason to return to this
state of affairs.
- The program has no impact at all on devices that cannot be used
directly within a computer.
In addition to the direct limitation in number of users that with-holding
of design information is starting to cause, there is also a more indirect
effect based on the availability of the design rather than the physical
hardware. If design information is made available, then it is possible
for other manufacturers to second-source the design. Where hardware
is not second-sourced it is less likely to be used. This fact has long
been recognised by hardware manufacturers. Long before Sun's current
use of their 'community source license' for the SPARC, the SPARC specifications
were made available for second-sourcing by other manufacturers. This is
one of the few weapons available to manufacturers in a situation of
near-monopoly. Without it, a manufacturer who dominates the market, even
with an inferior product, is likely to move towards a situation of
full monopoly.
2. None of the users can adapt or fix the hardware or hardware design
Clearly not all physical hardware is adaptable or fixable. A manufactured IC,
for example, cannot normally have its functions altered, and certainly
cannot be repaired when broken. Yet this argument is still
of major importance, and applies both to board-level designs and
to easily implemented hardware of other types.
`Fixing hardware' is something that was once extremely common. Nowadays,
broken hardware is commonly simply thrown away. The social and
environmental costs of this are huge. Some reasons why modern hardware
is not repaired are related to technological change: it is almost
impossible to desolder fine-pitch surface mount designs, or repair
multi-layer boards. But another reason is simple lack of information
about devices. If it once again became normal for proper circuit
diagrams of boards to be made available, so that even a small proportion
of faults could be fixed, the savings (financial, social, and
ecological) could be huge. With free hardware designs, even greater
changes could become possible: `design for test' is a common feature of
closed-source hardware design; `design for repairability' could become
a common feature of free hardware design.
Being able to fix hardware is a general social need. `Adapting hardware' is
something that only electronics engineers or hobbyists are likely to want
to do, but is still important. A typical example is the repeated complaint
on electronics newsgroups that a device programmer cannot be made to
work with a new version of device, not because it is physically incapable
of doing so, but because there is not enough information available to
adapt the programmer (where in this case 'adapting' would mean altering
the firmware).
More important is the ability to adapt designs. In current practice, a
hardware design belongs to the company which created it and is known
by no-one outside the company (excluding the reverse-engineering industry -
itself an example of the waste of energy created by the proprietary design
system). Improvements to the design can therefore only be made by people
within the company (in the extreme case, if the company folds the design
dies with it). Free software has shown that it is possible for software
to evolve steadily over the years as amendments, improvements, and bug fixes
are made available from a very large range of contributors. There is no
reason why the same should not be true for hardware designs. Without it,
we have had phenomena like the acceptance of video players with
user interfaces so unfriendly they became a joke for years.
3. Other developers cannot learn from the design, or base new work on it
It is in this area that there are the closest parallels with software, and
rms' words can be repeated almost verbatim:
Restraints on the use of existing designs tend to prevent the accumulation of
knowledge that comes from building on previous designers work, making it
necessary to start from scratch when developing a design. They also prevent
new practitioners from studying existing designs to learn useful
techniques or even how large designs can be structured - apart, of course,
from those within companies who have a history of their own designs to
build on, or the equipment and time to reverse-engineer the work of others.
The same restraints also obstruct education. As time has gone by, students
are still likely to be familiar with and taught the use of 74 series logic
devices - dating from the 1970s, and documented in the excellent Texas
databooks. Many students are excellent at carrying out the small designs
possible with these devices (designs completely untypical of the majority
of contemporary practice). They may also be familiar with the implementation
of small designs for FPGAs or ICs. They are far less likely (except in the very
largest universities with commercial connections) to be familiar with
the inner workings of any of the more recent devices they may actually
use in their daily life - even for engineering students, these have largely
become `black boxes'.
The result is a tendency to exaggerate a split between teaching and the real
life use of technology, and a consequent steady decrease in interest
in electronics among students. On those occasions when students are able
to work on `real-life' designs, it will be subject to commercial backing and
so to NDAs and all the general restraints on disclosure of information
which was once central to the function of universities.
Outside the area of education, the fact that it is not legally possible to
base new designs on those created by others creates huge amounts of wasted
and unnecessary effort. It has also become increasingly impractical as the
time-to-market for new designs shortens. The result has been the attempt
to create a market in hardware `IP' decoupled from the market in physical
hardware, a growth in fabless design houses, and in semiconductor fabs
not tied to any one design company. But the growth of this market has
been very slow, since all the participants want to make sure no-one gets
their `IP' for free. Problems such as: how to encrypt or otherwise 'lock down'
of IP (since no-one fully trusts the legal system); quality (since no-one
knows how to guarantee that the 'IP' which has not yet
been shown is of a reasonable standard); and mergeability of cores from
different suppliers (since there are many different proprietary standards
involved), have all made the creation of a genuine IP market difficult.
This is an area where free hardware designs can flourish: no requirement
for encryption; quality can be assessed freely; and just as free software
has been shown to be an excellent driver for the spreading standards,
so free hardware design can be expected to do the same in this field.
And above all, once designs are no longer 'closed' the rate of development
and improvement can be expected to increase, as some of the energy currently put
into developing similar designs from scratch in many companies at once
is transferred to developing completely new designs and improving commonly
available ones.
Conclusions
All three of Richard Stallman's original justifications for free software
apply, in different forms, to free hardware design. The argument that in
spite of this free hardware design is impossible for cost reasons
is based on the cost of reproducing physical hardware, not on the cost
of reproducing designs, and so is not directly relevant. In spite of
differing over this point, the FSF is still broadly sympathetic to the
development of free hardware designs. Creators of free hardware designs
should return the sympathy: free software
and free hardware design should stand together; they have the same roots.
© Graham Seaman 1999