这是针对英文原版页面的中文翻译。

火箭是不是只应该使用自由软件?自由软件和(家用)电器

有没有完全是自由软件的火箭?我们是否应该要求 SpaceX 让其发射火箭的软件成为自由软件?我觉得向我提问的人可能并不是在严肃地提问,但是对此问题的回答可能会对大家日常购买的产品带来思考。

据我所知,软件不能产生推动力。火箭基本上是一个物理的设备,所以它从字面上就 不是 自由软件。但是它也可以有计算控制和遥测系统,这些是软件。

如果有人要卖给我火箭,那么我会把它当成是一件家用电器。想想看,比如是一个空调。如果其中有需要修改的软件,那么其中所有的软件都必须是自由软件,而且我自己就应该有权决定是否安装某些修改版。不过,假如软件本来就是不会再改变的,而且它 仅仅 通过简单的接口来通信,比如面板上的按钮、电视遥控器或固定的 USB 端口命令,那么我不觉得非常有必要了解空调的内部情况:它是有专用的芯片,还是有运行代码的通用处理器,对作为用户的我来说没什么分别。如果它确实有代码,那么它就有可能会有专用芯片,所以我也不必太在意是什么芯片。

如果空调要把我的操作数据发给别人,那么我不干,不管它使用的是什么技术手段。重申一下,专用芯片或专门的代码没什么不同。如果其中使用自由软件,那么我可能有办法把监控关掉,但是这并不是唯一的办法。另一个办法就是拔掉数字通信天线或者关了它。

如果火箭带有软件,那么把这些软件按照自由软件发布是对社区的贡献,我们应该对此表示感谢——不过这并不相干。这些软件的发布也让购买了火箭的人们有可能改进这些软件,尽管许多发射失败的先例会让人们望而却步。

有读者指出,SpaceX 获得了 来自美国政府的重大财政支持 进行火箭研发。根据我们的权利,接受这样的支持就应该要求 SpaceX 按照自由软件许可证发表其火箭软件,即使这些软件只用在它自己的火箭上。

参照特斯拉汽车的经验,特斯拉的软件充斥着监控和跟踪类恶意软件,特斯拉可以修改而车主不能。我假定 SpaceX 火箭会做同样的事。如果有一天火箭也像今天的轿车和卡车一样卖,那么 其中的专有软件就会是不公正的,而且 可能是恶意软件。如果制造商可以安装修改版软件而火箭买主不行,那么这也是不公正。人们正在开始认识到这一点:看看修理权运动(right-to-repair movement),它只是要求这些自由的开始(远不是要让车辆的软件都自由),但仍然面临着一场艰苦卓绝的斗争。

不过,我不认为 SpaceX 在卖火箭;我觉得它是用自己的火箭提供发射服务。这让问题变得完全不同:如果你是客户,那么你并没有操控火箭;SpaceX 在操控。

SpaceX 用的火箭并不像你自己的汽车,也不像你租来的汽车。换句话说,它有点像搬家公司的汽车,正在把你的书和家具搬到你指定的目的地。搬家公司应该有对汽车软件的控制权——而不是搬家公司的客户。

把你的东西运到外蒙古国、或者外太空这件事当成一种服务比较正常,因为它就是一件独立的事,基本不用客户操心(“基本” 不是说 “绝对” 或 “百分之百”),做事的指令也简单(把这些箱子在某日运到某地)。

如果 SpaceX 把火箭软件按照自由软件许可证发布,那么你就有权构建、使用和发布修改版软件,但是你并没有权利来修改在 SpaceX 的火箭里运行的代码。

但是在假想未来的宇宙飞船上有一件事永远也不要当成是服务:私人计算活动。这是因为私人计算活动正是我们能够使用自己计算机自由完成的事,只需合适的自由软件。

当某个程序的任务是为你做计算,那么你就有权要求它做什么和怎么做,而不仅仅是它按照你的命令来去自己执行。换句话说,你有权使用你自己的一份自由软件副本、在自己可控的电脑上运行。

有许多公司想让你把对自己计算的控制交给它们,这事并不奇怪。它们会把你的计算包装成 “服务”,并在它们控制的服务器上完成。即使是由用户自己进行的详细文本编辑也不例外!这是一个把你的自由和它们的强大做交换的陷阱。我们称之为 “服务替代软件”,简称 SaaSS(参看 “服务器究竟为谁服务?”),我们拒绝这种交换。

比如,想象一个理论上的 SpaceX 智能宇宙飞船,它是一个 “服务”。它要了解你的所有业务,这样 SpaceX 的服务器就可以判断你要卖什么货、要卖到哪个星球。这种服务就是 SaaSS——因而是一种敌服务。非但不应该使用敌服务,你反而应该用自己的电脑和自由软件来完成自己的计划。

而 SpaceX 等公司可以合法地向你提供运货等非计算服务,你可以按需使用;也可以选择其他方式,比如自己买个飞船或自己造个飞船。