计算机的忠诚意味着什么?
Richard Stallman 著我们说在你的计算机上运行 自由软件 意味着 你控制 它的操作。其中隐含的假设是你的计算机会执行你的程序给予的指令,不多不少。换句话说,你的计算机对你忠诚。
在1990年,我们认为那是理所当然的事;现如今,许多计算机变得不再对用户忠诚。详细说明计算机忠诚于你的决定意味着什么变得很有必要,而你的决定就是让它运行某个程序。
我们暂时定义了以下原则。
- 可安装性
-
任何可以被他人替换的软件,用户也必须能够替换。
因此,如果计算机需要密码或其他安全措施才能替换某些软件,那么计算机的销售方必须告诉用户这些密码和措施。
- 对软件中立
-
计算机会毫不挑剔地运行你安装的任何软件,并且让软件执行代码该做的事。
如果运行需要检查签名,而签名检查完全由用户控制,那么这个功能符合此原则。这样的功能能够帮助用户实现按照用户的决定来运行程序,而不是阻挠用户的决定。反之,不完全由用户控制的签名检查违反此原则。
- 对协议中立
-
计算机会毫不挑剔地通过用户所安装软件实现的协议进行通信,无论通信的用户是谁,也无论你让它和哪些网络计算机通信。
这意味着计算机不会强推这个服务而不执行那个,也不会只接受这个协议而不接受那个。用户也无需他人许可才能使用某个协议来通信。
- 对实现中立
-
当计算机用某个协议通信时,它会毫不挑剔地使用你选择的代码(假设此代码实现了要使用的协议)来执行,而且它也不会帮助网络中的任何其他人来辨别你使用的代码或者你做的修改,更不会对你的选择有歧视。
这意味着计算机拒绝远程验证,即它不允许其他计算机通过网络判定你的计算机是否在运行某个特定的软件。远程验证给了网站强迫你只能通过无法破解的 DRM 应用来访问它们的权力,这实际上剥夺了你对自己所用的通信软件的控制。
我们可以把远程验证理解为一种允许网站对本地连接软件强加 tivoization 或 “锁死” 的一般性谋略。简单的 tivoization 会禁止修改版软件正常运行;因此让程序变成非自由软件。网站的远程验证禁止修改版程序在其网站正常使用,因此让这些程序在这些网站上变成非自由软件。如果计算机允许网站禁止你使用修改版程序,那么该计算机忠诚的是网站,不是你。
- 对数据通信中立
-
无论计算机使用何种协议接收数据,它都不会限制程序在通信中对数据的处理。
任何硬件层的 DRM 都违反了此原则。例如,硬件不能发送只有显示器才能解密的加密视频流。
- 可调试性
-
计算机总是允许你分析正在运行的程序所执行的操作。
- 完整性
-
以上原则适用于计算机的所有软件接口和所有通信。计算机不得有任何不忠诚的可编程设计,也不得进行任何不忠诚的通信。
例如,最近 Intel 处理器的 AMT 功能就运行能够和 Intel 远程通信的非自由软件。除非能够禁用该功能,否则这是不忠诚的系统。
若要计算机完全服务于用户,那么计算机应该提供控制其运行的所有软件接口的文档。文档的缺失并不意味着计算机是不忠诚的,但是它确实意味着计算机在某些方面并未服务于用户。根据具体的未服务的内容,它可能是、也可能不是真正的问题。
我们请求读者们把对以上定义的评论和建议发送到 <[email protected]>。
本文定义的忠诚是我们认为有意义的最基本标准。它并未要求计算机所运行的所有软件均为自由软件。然而,带有 非自由软件的计算机 对验证该计算机是否忠诚是一个阻碍,并且会阻止我们确保计算机能够一直忠诚。
历史
以下是本页重大修改的列表。