www-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

www/philosophy free-hardware-designs.html


From: Richard M. Stallman
Subject: www/philosophy free-hardware-designs.html
Date: Sun, 9 Apr 2023 17:01:01 -0400 (EDT)

CVSROOT:        /web/www
Module name:    www
Changes by:     Richard M. Stallman <rms>       23/04/09 17:01:01

Modified files:
        philosophy     : free-hardware-designs.html 

Log message:
        free-hardware-designs.html: Explain better the logic about where
        we draw the line between modifiable and non-modifiable firmware.

CVSWeb URLs:
http://web.cvs.savannah.gnu.org/viewcvs/www/philosophy/free-hardware-designs.html?cvsroot=www&r1=1.32&r2=1.33

Patches:
Index: free-hardware-designs.html
===================================================================
RCS file: /web/www/www/philosophy/free-hardware-designs.html,v
retrieving revision 1.32
retrieving revision 1.33
diff -u -b -r1.32 -r1.33
--- free-hardware-designs.html  5 Mar 2022 13:35:13 -0000       1.32
+++ free-hardware-designs.html  9 Apr 2023 21:01:01 -0000       1.33
@@ -109,7 +109,7 @@
 
 <p>What is the boundary, in digital devices, between hardware and
 software?  It follows from the definitions.  Software is the
-operational part of a device that can be copied and changed in a
+operational part of a device that can be copied, and modified with a
 computer; hardware is the operational part that can't be.  This is the
 right way to make the distinction because it relates to the practical
 consequences.</p>
@@ -124,14 +124,37 @@
 memories typically contain an embedded nonfree program that could be
 replaced by the manufacturer.</p>
 
-<p>We can treat that firmware as hardware with a small stretch, but we
-must not try to have it both ways.  If we treat certain firmware as
-impossible to change, since it is not realistically possible to avoid
-that firmware, we must also treat it as impossible to change when we
-might wish it could be changed.  That entails refusing all upgrades or
-patches to that firmware.  That is what I do, and this is the reason I
-do it.  Until we can get computers with entirely free firmware, there
-is no feasible way to do better than this.</p>
+<p>We can think of the difference between built-in firmware and
+equivalent hardware as a minor implementation detail, provided that we
+are sure in either case that it won't be changed.  A hardware circuit
+can't be changed; that's its nature.  If it's acceptable for a device
+to be implemented with internal circuitry that no one can alter, then
+an internal program that no one can alter is no worse.  It would not
+be sensible to reject an equivalent internal software implementation,
+when operationally they are indistinguishable.</p>
+
+<p>The equivalence falls apart, however, when the software implementation
+is not totally internal and some company can modify that code.  For
+example, when firmware needs to be copied into the device to make
+the device function, or included in the system distribution that you
+install, that is no <em>internal</em> software implementation; rather,
+it is a piece of installed nonfree software.  It is unjust because some
+manufacturer can change it but you can't.</p>
+
+<p>In order for a firmware program to be morally equivalent to hardware,
+it must be unmodifiable.  What about when the device can't possibly run
+without some firmware and it offers a way to modify that?  We can make
+that firmware unmodifiable in practice by taking care never to let that
+replacement happen.  This solution is not entirely clean, but no
+entirely clean solution has been proposed; this is the only way we know
+to preserve some meaning for the rejection of nonfree software while
+using that device.  This is much better than just giving up.</p>
+
+<p>But we can't have it both ways.  To make preinstalled firmware
+effectively unmodifiable by not letting anyone invoke the method to
+change it, we must carry that out without exception even when there are
+changes we would wish were installed.  That means rejecting all upgrades
+or patches to that firmware.</p>
 
 <p>Some have said that preinstalled firmware programs and
 Field-Programmable Gate Array chips (FPGAs) &ldquo;blur the boundary
@@ -525,7 +548,7 @@
 
 <p class="unprintable">Updated:
 <!-- timestamp start -->
-$Date: 2022/03/05 13:35:13 $
+$Date: 2023/04/09 21:01:01 $
 <!-- timestamp end -->
 </p>
 </div>



reply via email to

[Prev in Thread] Current Thread [Next in Thread]