<!--#include virtual="/server/header.html" -->
<!-- Parent-Version: 1.77 -->
<title>What Does It Mean for Your Computer to Be Loyal?
- GNU Project - Free Software Foundation</title>
 <!--#include virtual="/philosophy/po/loyal-computers.translist" -->
<!--#include virtual="/server/banner.html" -->

<h2>What Does It Mean for Your Computer to Be Loyal?</h2>

<p>by <a href="https://www.stallman.org/">Richard Stallman</a></p>

<p>We say that running <a href="/philosophy/free-sw.html">free
software</a> on your computer means that its operation is <a
href="/philosophy/free-software-even-more-important.html">under your
control</a>.  Implicitly this presupposes that your computer will do
what your programs tell it to do, and no more.  In other words, that
your computer will be loyal to you.</p>

<p>In 1990 we took that for granted; nowadays, many computers are
designed to be disloyal to their users.  It has become necessary to
spell out what it means for your computer to be a loyal platform that
obeys your decisions, which you express by telling it to run certain

<p>Our tentative definition consists of these principles.</p>


<p>Any software that can be replaced by someone else,
the user must be empowered to replace.</p>

<p>Thus, if the computer requires a password or some other secret in
order to replace some of the software in it, whoever sells you the
computer must tell you that secret as well.</p>

<dt>Neutrality towards software</dt>

<p>The computer will run, without prejudice, whatever software you
install in it, and let that software do whatever its code says to

<p>A feature to check for signatures on the programs that run is
compatible with this principle provided the signature checking is
fully under the user's control.  When that is so, the feature helps
implement the user's decisions about which programs to run, rather than
thwarting the user's decisions.  By contrast, signature checking that
is not fully under the user's control violates this principle.</p>

<dt>Neutrality towards protocols</dt>

<p>The computer will communicate, without prejudice, through whatever
protocol your installed software implements, with whatever users and
whatever other networked computers you direct it to communicate

<p>This means that computer does not impose one particular service rather
than another, or one protocol rather than another. It does not
require the user to get anyone else's permission to communicate via a
certain protocol.</p>

<dt>Neutrality towards implementations</dt>

<p>When the computer communicates using any given protocol, it will
support doing so, without prejudice, via whatever code you choose
(assuming the code implements the intended protocol), and it will do
nothing to help any other part of the Internet to distinguish which
code you are using or what changes you may have made in it, or to
discriminate based on your choice.</p>

<p>This entails that the computer rejects remote attestation, that is,
that it does not permit other computers to determine over the network
whether your computer is running one particular software load. Remote
attestation gives web sites the power to compel you to connect to them
only through an application with DRM that you can't break, denying you
effective control over the software you use to communicate with them.</p>

<p>We can comprehend remote attestation as a general scheme to allow
any web site to impose tivoization or “lockdown” on the
local software you connect to it with.  Simple tivoization of a
program bars modified versions from functioning properly; that makes
the program nonfree.  Remote attestation by web sites bars modified
versions from working with those sites that use it, which makes the
program effectively nonfree when using those sites.  If a computer
allows web sites to bar you from using a modified program with them,
it is loyal to them, not to you.</p>

<dt>Neutrality towards data communicated</dt>

<p>When the computer receives data using whatever protocol, it will
not limit what the program can do with the data received through that

<p>Any hardware-level DRM violates this principle.  For instance, the
hardware must not deliver video streams encrypted such that only the
monitor can decrypt them.</p>


<p>The computer always permits you to analyze the operation of a
program that is running.</p>


<p>The principles above apply to all the computer's software
interfaces and all communication the computer does.  The computer must
not have any disloyal programmable facility or do any disloyal

<p>For instance, the AMT functionality in recent Intel processors runs
nonfree software that can talk to Intel remotely.  Unless disabled,
this makes the system disloyal.</p>

<p>For a computer to be fully at your service, it should come with
documentation of all the interfaces intended for software running in
the computer to use to control the computer.  A documentation gap as
such doesn't mean the computer is actively disloyal, but does mean
there are some aspect of it that are not at your service.  Depending
on what that aspect does, this might or might not be a real problem.</p>

<p>We ask readers to send criticisms and suggestions about this
definition to <a href="mailto:computer-principles@gnu.org">

<p>Loyalty as defined here is the most basic criterion we could think
of that is meaningful.  It does not require that all the software in
the computer be free.  However, the presence
of <a href="/philosophy/free-software-even-more-important.html">nonfree
software in the computer</a> is an obstacle to verifying that the
computer is loyal, or making sure it remains so.</p>

<h3 id="History">History</h3>

<p>Here is the list of substantive changes in this page.</p>


<li><a href="http://web.cvs.savannah.gnu.org/viewvc/www/philosophy/loyal-computers.html?root=www&r1=1.5&r2=1.6">Version 1.6</a>:
Add installability requirement.

<li><a href="http://web.cvs.savannah.gnu.org/viewvc/www/philosophy/loyal-computers.html?root=www&r1=1.3&r2=1.4">Version
1.4</a>: Full documentation is not a requirement for loyalty.

</div><!-- for id="content", starts in the include above -->
<!--#include virtual="/server/footer.html" -->
<div id="footer">
<div class="unprintable">

<p>Please send general FSF & GNU inquiries to
<a href="mailto:gnu@gnu.org"><gnu@gnu.org></a>.
There are also <a href="/contact/">other ways to contact</a>
the FSF.  Broken links and other corrections or suggestions can be sent
to <a href="mailto:webmasters@gnu.org"><webmasters@gnu.org></a>.</p>

<p><!-- TRANSLATORS: Ignore the original text in this paragraph,
        replace it with the translation of these two:

        We work hard and do our best to provide accurate, good quality
        translations.  However, we are not exempt from imperfection.
        Please send your comments and general suggestions in this regard
        to <a href="mailto:web-translators@gnu.org">

        <p>For information on coordinating and submitting translations of
        our web pages, see <a
        README</a>. -->
Please see the <a
README</a> for information on coordinating and submitting translations
of this article.</p>

<!-- Regarding copyright, in general, standalone pages (as opposed to
     files generated as part of manuals) on the GNU web server should
     be under CC BY-ND 3.0 US. 4.0.  Please do NOT change or remove this
     without talking with the webmasters or licensing team first.
     Please make sure the copyright date is consistent with the
     document.  For web pages, it is ok to list just the latest year the
     document was modified, or published.
     If you wish to list earlier years, that is ok too.
     Either "2001, 2002, 2003" or "2001-2003" are ok for specifying
     years, as long as each year in the range is in fact a copyrightable
     year, i.e., a year in which the document was published (including
     being publicly visible on the web or in a revision control system).
     There is more detail about copyright years in the GNU Maintainers
     Information document, www.gnu.org/prep/maintain. -->

<p>Copyright © 2015 2015, 2019 Free Software Foundation, Inc.</p>

<p>This page is licensed under a <a rel="license"
Commons Attribution-NoDerivs 3.0 United States Attribution-NoDerivatives 4.0 International License</a>.</p>

<!--#include virtual="/server/bottom-notes.html" -->

<p class="unprintable">Updated:
<!-- timestamp start -->
$Date: 2019/05/17 18:00:46 $
<!-- timestamp end -->