今天,我们生活在一个软件被高度私有化的时代。全世界的资产阶级联合起来,在互联网领域施加广泛的公开资产阶级专政(法西斯)。这种技术法西斯主义以或残酷、或隐蔽的方式尝试操控互联网上一切进步的声音。然而,约40年前开始的自由软件运动,这一带有浓厚小资产阶级性质却第一次提出软件公有化的诉求的运动,这一本应该为人民的自由和权利发声的进步运动,这一互联网领域的统一战线,却呈现出颓势。这一方面因为小资产阶级具有妥协性,更重要的是资产阶级察觉到此运动对资产阶级法权的危害,所以不断地进行打压。本文将尝试从三个历史阶段,分析资产阶级打压自由软件运动的具体手段,并尝试找出我们可以从中学到哪些教训,在接下来的革命自由软件运动中,在资产阶级专政的情况下进行信息技术阵线上的斗争。
自由?自由就是偷窃和病毒!
反对自由软件的第一枪,在自由软件运动开始之前就打响了。比尔盖茨,这个大资本家,于1976年写出了那封具有划时代意义的反动宣言——《致爱好者的公开信》。在这封信中,他明目张胆地宣称,保障软件质量的唯一办法,就是把软件变成商品。而使用盗版软件就是偷窃。此时,作为日后将成为掌握全球数以亿计的人民的数字生活的微软公司的老总,他这样地强调用户必须给自己交钱,使用自己控制的软件,法西斯野心已经锋芒初露。
1985 年 GNU 横空出世,这一并非无产阶级领导的自由软件运动,第一次提出了对软件私权的批评,并希望通过 GPL 这样具有“传染性”的协议(GPL协议要求,过度简化一下,就是如果你在你的项目中用了采用 GPL 协议授权的项目,你的整个项目都必须也开源,也用 GPL 授权——就和病毒一样,会传染;具体请参照许可证协议原文),他们的想法是:利用免费提供源代码“感染”尽可能多的应用,最终让所有或大部分的软件都变成自由软件。第一次提出了四项自由(一开始是三项)(这些自由和自由派们所讲的政治自由不太一样,它们强调的更多是对软件版权的批评),明确了自由软件的定义。
这样的传染性,迅速引起了资产阶级科技巨头们的恐慌,尽管这个运动并未提出任何形式的达到资本主义制度的革命诉求,由于其搭载了新的生产力,还是让资产阶级们开始了行动;自由软件运动刚刚发展,他们便开始极尽所能地批评,说GPL协议就是病毒,会感染它碰到的一切。
在互联网的公开专政,资产阶级从来不会披上自由民主的面纱,一个自由软件向用户免费提供源代码和文档就把他们吓得发抖。但如果你认为资产阶级此时会善罢甘休,那你就太低估资产阶级的政治觉悟了。
教训:一旦资产阶级跟我们撕破脸,我们就要彻底克服小资产阶级的软弱,坚决批判资产阶级的反动论调。
自由?开放源代码就是自由!
等到“病毒式传播”的话术反而被大众接受了以后(你说这是病毒,可这个病毒为什么让我们的数字生活更安全了呢?),反对自由软件的第二步,就是分化瓦解自由软件运动。随着 Linus Torvalds 这位自由理想不十分坚定的开发者提供了 Linux Kernel, 资产阶级开始发现自由软件运动内部存在的不和谐现象。的确,自由软件运动的“自由”定义宽泛的可怕,对于私有制的批评也没有强大到社会主义者的高度,因而吸引了一大批人,有左派有自由派,有毛派有托派。自由软件运动现已堕落的领导组织 FSF, 内部的几乎算是公开的派系斗争就很复杂。自由软件运动很长一段时间内搞技术挂帅,黑猫白猫能过编译器就是好猫,太多的人不关心参与自由软件运动的目的是“自由软件,自由社会”(当然认为自由软件就到自由社会,这是唯技术论,很小资产阶级的,阶级斗争才能最后解放全人类),导致整个运动松散不堪。
资产阶级发现 Linux 是整个自由软件体系(GNU/Linux)的薄弱点,于是造出了一个概念,叫 Open Source, 即大家后来耳熟能详的开源软件。开源软件的目的就是为了分化瓦解自由软件运动。通过对“自由社会”的理想的弱化,更强调技术本身,来让意志不坚定的开发者放松警惕(有没有觉得这个实用主义路线的剧情很熟悉?)开源软件把自由软件对私有制的批判弱化到极致,把自由软件简单讲为你如果想要找就能找到源代码。然后,资产阶级开始搬弄他们的法律,一部分国家地区选择干脆不承认 GPL 的传染性,更多的是钻协议的各种空子——比方说,动态链接到 GPL 软件可以不被传染——想尽办法维护自己的软件私有制。小资产阶级合法斗争的幻梦再一次地破灭。
在这之后,资产阶级变本加厉。他们和 Linus 合谋搞 Linux 基金会 —— 这和 FSF 有很大区别,后者至少是个像模像样的非营利组织,前者就是商业联盟。Linux 商业联盟主要的资金竟然还是来自 Microsoft, Google 等等一众科技巨头,它们实质上垄断了 Linux 开发,在表征上这看起来是自由软件和大公司和解了,因为后者向自由软件提供了大量代码——但实质上,这标志着自由软件很大的一部分,被分化成开源软件的那部分已经被资产阶级控制,无论是在资金上还是在代码上。目前,他们还没有明目张胆地往内核里塞后门;但谁知道他们是否真的做不到呢?他们是不是已经掌握了 Linux 内核的 PGP 私钥,在需要的时候随时可以冒名顶替一个有后门的 Linux 内核?我们已经有 Ubuntu 这个搞默认开启的遥测,以后出现个默认打开的“远程诊断”后门还会远?
与此同时,资产阶级开始推行他们反动的 MIT 协议。MIT 等类似的非传染性协议就是对开发者赤裸裸的剥削。(MIT协议不具备任何传染性)今天MIT授权的软件可能已经远远超过GPL软件,开发者们——小资产阶级和脑力无产阶级,创造了巨量的价值,却得不到任何东西,甚至推进不了自己的理想——“饿着肚子做开源”的现象已经屡次出现。资产阶级推动 MIT 这类没有传染性的协议的惯常手段,就是把自己的一些商业项目的底层部分这样开源出来,保证自己商业项目本身依旧没有问题,然后凭借着自己的资金和技术实力,把GPL软件比下去,从而逐渐掌握开源软件。再通过开源社区,反而减少了自己要雇佣的人。
自由软件运动所强调的要保护隐私安全,在资产阶级,在他们分化出的开源软件中,很不幸地“忘掉了”。Visual Studio Code 有遥测, Ubuntu 有遥测,Chrome有直接把URL发送给 Google 的离谱选项…… 这又是给自由软件运动的理想的当头一棒。
教训:小资产阶级自由软件运动的松散本质,决定了极易被分化瓦解的,统一战线不是无底线的、全方面的团结,而是独立中团结。必须反对“自由软件,自由社会”这种丝毫不切实际的幻想;应该是反过来,“自由社会,才有真正自由的软件!”。在现阶段,利用好自由软件是必要的,但如果说要积极地支持小资产阶级的活动,那就没什么必要了;而是应该把他们往马列毛的方向上引导。
去中心化?看我3E战术搞定!
随着 XMPP 和 Matrix,以及ActivityPub这样的邦联制应用协议流行开来,自由软件的另一个诉求,就是互联网平台的去中心化。(我并不认为实现去中心化应该是邦联制和/或区块链,这一点以后会讲)这是资产阶级对自由软件运动、去中心化运动的新的打击方式:Embrace, Extend, Extinguish. (拥抱,发展,消灭) 关于这种战术的具体实践,请参照这篇文章。
小资产阶级搞的去中心化,现在看来非常不彻底。这哪里是什么去中心化,这完全就只是多中心化。以 ActivityPub 为例,最大的 ActivityPub 实例不是就那么几个吗?而且最可怕的是好几个实例都实际上用的是同一家云服务提供商的硬件,所以云服务提供商实际上控制着大部分的去中心化网络的物质基础啊!
在无产阶级专政的条件下,彻底的去中心化才有可能实现。因为需要让无产阶级彻底掌握整个互联网,那么就需要至少给每个人一个公网 IP 地址(无论v4, v6),并且不能搞任何大规模限制通信、加密技术和混淆技术的政策和措施,然后开发易于使用的直接在本地运行 ActivityPub 服务器软件,或许可以和 I2P 这样的匿名网络配合使用,才能实现彻底的 Peer-to-Peer。这些措施只有一个无产阶级专政的国家推行才能落实到底啊。
教训:只搞合法斗争的唯一后果就是失败。去中心化也一样。
总结
革命自由软件运动必须要和阶级斗争共同进步,共同发展,为人民群众的匿名权、保密权等一切权利和权力而共同奋斗,不可陷入各路改良和小资产阶级的泥潭中去。