闭源软件的消亡,以及开源软件的最终胜利

当初RMS(Richard Matthew Stallman)在MIT因为一台打印机不再提供驱动源码,一怒之下发起了自由软件运动。如今他老人家亲眼见证了只要有二进制即可用AI轻松逆向出源码。

商业公司利用闭源软件剥夺人们的软件自由,而如今被商业公司的AI回旋镖彻底击碎。

闭源软件的护城河一夜之间消失了(比如最近有人逆向Adobe全家桶)。

10月5日,ESR(Eric S. Raymond)在推特/X上发表"闭源软件的消亡,以及开源软件的最终胜利"长文。

ESR是开源软件的灵魂人物之一,以及当代最具洞见的开源思想家之一。他是:

  • 开源软件运动发起人之一。开源软件运动源于RMS发起的自由软件运动。
  • OSI创始人之一。OSI就是"认证"各种协议是否符合"开源协议"的"官方"组织。
  • 著名的大教堂与集市的作者。
  • 提问的艺术(How To Ask Questions The Smart Way)作者。

长文如下:

软件保密时代的终结已经近在眼前。闭源软件的消亡,以及开源软件的最终胜利。

几个月前,当我成功反编译了一款来自古老 DOS 共享软件时代的游戏《Firefighter》时,我就应该意识到这一点。

我的机器人朋友通过分析数据布局,就判断出这款游戏是用 Borland Pascal 编写的。它还为我还原出了可读性极高的 Pascal 代码,其中的函数名和变量名都经过了合理的命名。我随后将其转换为 Rust 语言,现在已经把它作为我收藏的经典游戏的一部分发布了。

问题在于,当时我把这件事当作一次有趣的技术展示,却并不相信这种技术能够扩展到大型、真正复杂的软件项目。

但我后来了解到,如今已经有人开始对整个 3A 级游戏进行类似的操作了。而 3A 游戏是有史以来以二进制形式发布的软件制品中最复杂的一类。

如果连它们都能被反编译,那么任何软件都可以。

这将带来深远的影响。极其深远的影响。

我们必须认真思考:当几乎所有软件都不再拥有保密壁垒时,这个世界将会变成什么样。

我之所以说「几乎所有」,是因为仍然存在一种维持软件保密的方式:以软件即服务(SaaS)的形式提供软件,让可执行程序隐藏在通往云端的网络连接之后。

但就目前而言,我们必须假定,任何以可执行文件形式发布的软件,甚至任何固件映像,都将像玻璃一样透明。

它们的秘密能够保留多久,取决于需要多长时间,才会有人有足够的动力把一个大型语言模型(LLM)用到它们身上。

我完全没有预料到这一切会发生。

大约 30 年前,当我提出开源理论时,我认为闭源软件会在成本优势的推动下逐渐走向消亡,但在某些特定领域仍会无限期地存续下去。

我从未预见到,它竟然会在一场技术末日中被彻底消灭。

讽刺的是,我曾经认为,闭源软件能够存续最久的应用领域之一,就是游戏。

当然,目前仍然存在一些障碍。

根据美国法律,对二进制程序进行反编译所产生的成果,属于该二进制程序的衍生作品,因此仍然受到原程序所适用的版权保护。

然而,法律上也早已有了明确的判例:如果你将二进制代码反编译,准确地确定它的功能与行为规范,然后在不查看反编译代码的情况下,根据这些规范重新编写一份全新的代码,那么你的做法就不构成侵权。

正是这一法律先例,使得 PC 兼容机得以诞生。当年,Phoenix Technologies 对 IBM PC 原始 BIOS 进行了逆向工程,便是这一先例的重要背景。

这种两步走的流程------从二进制程序提取功能规范,再根据规范编写不受原代码版权约束的新代码------过去需要大量程序员投入数年开发时间。

如今,有了大型语言模型,这件事一天之内就可能完成。

当这种技术变得无处不在时,要起诉所有可能跳过「先制定规范」这一步的人,将变得不切实际。

源代码还可能受到专利保护。

你可以看到某种受专利保护的技术的源代码,却仍然不能在不违反法律的情况下使用它。

Linux 生态系统已经发展出了一些应对这一问题的做法。

其中一种做法是不直接发布受专利保护的视频编解码器,而是要求用户从那些美国专利无法得到执行的司法管辖区下载相应插件。

这给专利持有人带来了一个几乎不可能完成的挑战:他们必须逐一起诉数百万名最终用户,而且还得先想办法查明这些用户究竟是谁。

据我所知,迄今为止,还没有人真正尝试过这种做法。

差不多就这些了。

如果除了 SaaS 和专利之外,还有其他能够维持软件保密性和厂商锁定的手段,我暂时想不出来。

好吧,你也许可以用环氧树脂把固件 ROM 封装起来。

不过,这种手段也可以用热风枪和牙科用探针破解。

设备制造商迟早会意识到:既然某个生产组装步骤已经失去了作用,他们也就没有必要继续为它付费了。

厂商一定会尝试强迫用户从本地发布的二进制软件迁移到与云服务绑定的产品上。

Adobe 在这方面开了先河,而微软也正在尽其所能推动这种转变------考虑到 Windows 操作系统本身就是一个必须在本地运行的二进制程序,微软所能采取的措施自然也受到一定限制。

这两家公司都因此遭遇了用户的大规模反抗。

我们完全有理由怀疑,这种策略能否长期留住客户。

此外,还有许多东西根本不适合安全地绑定到云端,因为它们无法容忍随机发生的网络中断。

例如,机床、医疗设备......

大量专有软件的商业模式将会崩溃,而且会崩溃得非常彻底。

我认为,可能仍然能够存续的一种商业模式是税务软件。

即使你能够反编译税务软件,也不一定能从中获得多大好处,因为这类软件真正的价值,在于持续追踪一套不断变化的规则体系,并由供应商的专业人员不断维护和更新。

但这种情况相当特殊。

我还认为,一些见不得人的事情也将被公之于众。

长期以来,一直有传言称,显卡制造商之所以如此顽固地保守技术秘密,是因为几十年来,它们彼此之间一直在大规模窃取对方的知识产权。

如果这是真的,那么这种事情终将曝光,随之而来的诉讼也一定会非常精彩。

我们正在进入一个全新的世界。

许多沿袭已久、曾经让人习以为常的观念,都将被彻底颠覆。

这场好戏,值得期待。