火箭应该只使用自由软件吗?自由软件和电器
作者:Richard Stallman有可能存在完全使用自由软件的火箭吗?我们应该要求 SpaceX 公开其卫星发射火箭中的软件吗?我不认为问我这个问题的人是认真的,但回答这个问题可能会阐明人们今天真正购买的各种产品的类似问题。
据我所知,软件本身并不具备产生推力的能力。火箭本质上是一种物理设备,因此它不可能真正是自由软件。但它可能包括计算机化的控制和遥测系统,因此会涉及到软件。
如果有人要卖给我火箭,我会像对待其他任何电器一样对待它。例如,考虑一下恒温器。如果其中包含要修改的软件,那么其中的所有软件都必须是自由的,并且我应该独自拥有决定是否安装某些更改的权力。然而,如果其中的软件永远不会被修改,并且它仅通过一些有限的接口进行通信,例如控制面板上的按钮、电视遥控器或具有一组固定命令的 USB 接口,那么我就不会认为知道恒温器内部有什么至关重要:无论是包含专用芯片还是运行代码的处理器,对我作为用户来说都没有直接影响。如果它确实包含代码,那么它最好使用专用芯片代替,所以我不需要关心它是哪一种。
如果恒温器向某人发送关于我活动的数据,我就会反对,无论这是如何实现的。同样,专用芯片或特殊代码没有直接区别。其中的自由软件可以给我一种关闭监视的方法,但这并不是唯一的方法。另一种方法是断开其数字通信天线或将其关闭。
如果火箭包含软件,将其作为自由软件发布可以为社区做出贡献,我们应该感谢这种贡献——但这又是一个不同的问题。这样的发布也使得购买火箭的人可以改进其中的软件,尽管许多火箭故障的不可逆转性可能会使人们不敢进行修补。
读者指出,SpaceX 已经获得了美国政府的重要财政支持来开发其火箭。按理说,接受这种支持应该要求 SpaceX 在自由许可下发布火箭软件,即使它只在自己的火箭内部使用该软件。
鉴于特斯拉汽车的经验,特斯拉汽车充满了监视和跟踪恶意软件,特斯拉可以更改但车主无法更改,我想 SpaceX 火箭也有这种情况。如果有一天火箭像今天的汽车和拖拉机一样出售,其中的软件将是不公正的,并且很可能成为恶意软件。如果制造商可以在其中安装修改后的软件而车主不能,那也是不公正的。人们开始意识到这一点:看看“维修权”运动,它仅仅要求这些自由的开始(远少于解放汽车的软件),但仍然面临着艰难的斗争。
但是,我不认为 SpaceX 出售火箭;我认为它提供的是在其自己的火箭中发射有效载荷的服务。这使得问题完全不同:如果您是客户,您不是在操作火箭; SpaceX 正在做这件事。
SpaceX 使用的火箭不像您自己的汽车或货车,甚至不像租赁给您的汽车或货车。相反,它类似于一家搬家公司的货车,该货车目前正在将您的书籍和家具运送到您指定的目的地。搬家公司应该控制货车中的软件——而不是当时的客户。
将您的物品运送到外蒙古或外太空的工作视为一种服务是有道理的,因为这项工作大多是独立的,并且在很大程度上独立于客户(“大多”并不意味着“绝对”或“100%”),因此该工作的说明很简单(在 D 日期之前将这些箱子送到 A 地址)。
如果 SpaceX 以自由许可发布了火箭软件,那么这将使您有权制作、使用和分发修改后的版本,但不会使您有权修改在 SpaceX 火箭中运行的代码。
但是有一种活动,假设未来的宇宙飞船可能会做,它永远不应被视为服务:私人的计算活动。那是因为私人的计算活动正是您在拥有合适的自由软件的情况下,可以在您自己的计算机上自由进行的事情。
当一个程序的任务是为您进行计算时,您有权要求控制它做什么以及如何做,而不仅仅是它按照您的解释来服从您的命令。换句话说,您有权使用您自己拥有的自由程序副本,并在您控制的计算机上运行。
难怪有些公司希望您放弃对计算活动的控制权,将其标记为在他们控制的服务器上使用他们控制的程序进行的“服务”。甚至像文本编辑这样由用户精确指导的事情也是如此!这是一个让您用他们的权力代替您的自由的计划。我们称之为“服务即软件替代品”,简称 SaaSS(请参阅“服务器真正为谁服务?”),我们拒绝它。
例如,想象一下一个假设的 SpaceX 智能宇宙飞船,它作为一项“服务”想要了解您所有的业务,以便 SpaceX 服务器可以为您决定在哪些星球上购买和出售哪些货物。这种规划服务将是 SaaSS——因此是一种有害服务。您应该在自己的计算机上使用您拥有的自由软件副本进行规划,而不是使用这种有害服务。
然后,SpaceX 和其他公司可以合法地为您提供运输货物的非计算服务,您可以偶尔使用它;或者您可以选择其他方法,也许是购买一艘宇宙飞船并自行操作。