跳转到内容
← 返回先驱
开源运动1953–约 16 分钟阅读

理查德·斯托曼

Richard Stallman

自由软件GNU版权左置黑客文化

1983 年 9 月 27 日,MIT 人工智能实验室的一台打印机引发了一场运动。理查德·斯托曼(Richard Matthew Stallman,缩写 RMS)想修改一台 Xerox 激光打印机的驱动程序——它频繁卡纸却不通知用户。但 Xerox 拒绝提供源代码。

这个拒绝让斯托曼极度不安。在他看来,软件本该像科学知识一样自由流通:任何人都应该能读它、改它、分享它。无法修改一台自己在用的机器的软件,是对用户自由的根本剥夺。

同年,他在网络新闻组上发布了一条公告:他将开始编写一个完全由自由软件构成的类 Unix 操作系统。他把它叫做 GNU(GNU's Not Unix,递归缩写)。

破除误解:"免费"不是关键,"自由"才是

"Free Software"在英文中有双重含义:免费(free as in free beer)和自由(free as in free speech)。斯托曼强调的始终是后者。

自由软件的四项基本自由: 1. 使用自由:任何目的下运行程序的自由 2. 学习自由:学习程序如何工作、修改以适应需求的自由(需要源代码) 3. 分发自由:分发副本以帮助他人的自由 4. 改进自由:改进程序并向公众发布改进版的自由(需要源代码)

这四项自由,是斯托曼整个思想体系的核心。一个软件是否"自由",不取决于价格,而取决于用户是否拥有这四项权利。

四项自由在官方文本里从 0 起算:第 0 项是为任何目的运行程序。把它放在最前面,是为了堵住一种常见的缩水——「你可以看源码,但不许拿去干某某事」。没有第 0 项,后面三项学习、分发、改进都会变成有条件的赏赐。

英语把自由和免费压进同一个单词 free,中文没有这个问题,误解却照样发生:商店里的「免费软件」海报,往往指价格为零的专有程序。斯托曼坚持说 free as in free speech,不是 free beer,就是怕听众把运动听成「不要钱」。四项自由里没有「零价格」这一条;缺了源码,零价格也只是把不能修改的程序送到更多人手里。

「免费」从来不是这套判据里的一项。1985 年的《GNU 宣言》开篇写过 give it away free,斯托曼后来承认措辞不慎:本意是谁都不必为「获准使用」付钱,不是拷贝必须零价格。有人免费拿到一份,有人付钱买载体,只要拿到的人都保有修改与再分发的自由,它仍是自由软件。价格可以谈,四项自由不能缺。

现场:GNU 项目与 GPL

1983 年底启动 GNU 项目后,斯托曼开始逐一编写 Unix 工具链的自由替代品:Emacs 文本编辑器、GCC(GNU 编译器集合)、GDB(GNU 调试器)、GNU Make……

这些并非平庸的复制品。早在 1976 年,斯托曼就在 MIT 人工智能实验室参与创造了最早的可扩展 Emacs——它的革命性在于编辑器本身可以用 Lisp 方言改写和扩展,用户定制编辑器就像写普通配置一样自然。GNU Emacs(1985 年首次广泛发布)最初基于詹姆斯·高斯林(James Gosling)写的 Unix 版 Emacs,但高斯林把代码卖给了 Unipress 公司,后者主张版权、禁止自由分发。斯托曼被迫逐行重写了全部代码。这次"自由变私有"的亲身经历让他确信:光有共享的善意不够,必须有法律机制把自由固定下来。

GCC 的故事同样说明问题。1987 年 3 月 GCC 发布首个测试版,两个月后 1.0 版问世。它真正的创举不在优化技术,而在架构:语言前端与机器后端清晰分离,支持一门新语言或一种新 CPU 都只需补写对应的一半。这个设计让 GCC 成为可移植的自由编译器底座——先有一个能自由使用的编译器,才可能从源码构建出整个自由系统,而不必信任任何专有二进制。斯托曼后来因 Emacs 获 1990 年 ACM 格蕾丝·霍珀奖,同年获麦克阿瑟奖;2015 年,ACM 又将软件系统奖授予 GCC,称其为自由软件社区的基石。

GNU 工具还有一条贯穿始终的工程准则:不设武断的限制。原版 Unix 工具常有写死的行宽、文件名长度或内存上限,GNU 版本被要求以动态分配消除这类天花板——同样的工具,必须能吞下任何规模的输入。这条准则让 GNU 工具在实用性上反超了它模仿的对象,为后来的 GNU/Linux 组合铺平了道路。

GNU 从一开始就不是「再写一套更好的 Unix 工具」。宣言里的目标是完整的、与 Unix 兼容的 操作系统:内核、编译器、编辑器、库,缺一块就不能在没有专有软件的情况下过日子。工具链先完成、Hurd 滞后,于是历史把内核的名字当成了系统的名字。这个时间差不是命名争论的全部原因,却是它能持续三十年的物质条件。

但代码写出来,怎么保证它不会被人"私有化"?如果有人修改 GNU 软件后以专有软件发布,不提供源代码,自由软件不就失去意义了?

斯托曼的解决方案是法律上的天才之举:Copyleft(版权左置)。他不放弃版权,而是用版权来要求:任何人分发基于 GNU 软件的作品,必须以同等条款(即也提供源代码和相同的自由)分发。

1989 年,这个想法被写入 GPL(GNU General Public License,GNU 通用公共许可证)。GPL 的逻辑是:用版权法来对抗版权法对自由的限制——用斯托曼的话说,是"版权黑客(copyright hack)"。

Copyleft 的哲学可以收成一句:自由若不能随代码传到下游,就只是作者这一代的恩惠。宽松许可(BSD、MIT 一类)允许下游把修改封进专有产品;斯托曼认为那等于默许合作权被「用完即弃」。GPL 选择相反的路径——你得到的自由,必须以同样的条件继续给下一个人。这不是在鉴定某份合同的效力,而是在主张用户之间互相帮助的权利不该被切断;它也不放弃 版权,而是把版权当成防止自由被抽走的杠杆。

Copyleft 的机制值得细看。版权在作品完成时自动产生,无需登记,GPL 正是利用这一点:它不放弃任何权利,而是把授权变成有条件的——你可以复制、修改、再分发,条件是衍生作品必须以同样的条款附带源代码继续分发。一旦违反条件,授权自动终止,此后再分发即构成版权侵权。条款因此随代码自动传播,不需要与每个下游使用者逐一谈判。GPL 自身也在封堵漏洞中迭代:1991 年的 GPLv2 加入"若法律限制使你无法自由分发,则你根本不得分发"的条款;2007 年 6 月 29 日发布的 GPLv3 针对两类新威胁——TiVo 式硬件锁定(厂商给出源码,却用数字签名阻止用户运行修改版)和微软与 Novell 2006 年的专利协议(让部分 Linux 用户单独获得专利豁免,分化社区)——分别加入了安装信息条款与专利反制条款。到 2020 年代,GPL 家族仍是自由软件世界使用最广泛、法律实践最充分的许可证之一。

GPL 后来成为开源世界影响最广的许可证。Linux 内核使用 GPL v2,GCC、GDB 等 GNU 工具使用 GPL,这意味着这些工具形成的整个"自由软件生态系统",其自由性由 GPL 的法律机制来保障。

1985 年:自由软件基金会

1985 年,斯托曼创建了自由软件基金会(Free Software Foundation,FSF),作为 GNU 项目的法律和资金组织。FSF 持有 GNU 软件的版权(通过版权分配协议),这使它能够以统一立场应对潜在的法律挑战。基金会的运转本身也是一场实验:在互联网尚未普及的年代,FSF 靠销售装有 GNU 软件的磁带、印制手册和接受捐赠维持——"卖自由软件的物理载体"算是最早的自由软件商业模式之一。

卖磁带把「自由≠免费」做成了账本。用户付的是介质、印刷和邮寄,不是对源码的垄断;拿到磁带的人仍然可以复制、修改、再送给别人。斯托曼区分的是两笔完全不同的交换:拷贝与服务可以竞争出价,阅读、修改、把改进交还给邻居的权利不能拿来卖。若把自由软件理解成「必须白送」,这家磁带店就成了自我打脸——它恰恰证明相反:零价格不是义务,不垄断才是义务。

斯托曼本人拒绝收取商业软件的专利费,放弃了本可带来巨额财富的个人利益。他认为,接受这些钱意味着与他所反对的体制合谋。

GNU/Linux:被遗忘的前缀

1991 年,Linus Torvalds 发布了 Linux 内核。这填补了 GNU 体系中最后一块缺失:GNU 有所有工具,但缺少一个完整的内核。GNU 自己的内核 Hurd 选择了学术上更时髦的微内核路线(基于 Mach),调试难度远超预期,始终未能长成能日常使用的系统——这段历史常被引为"架构选择决定项目命运"的案例,也反衬出 Linux 宏内核"先跑起来再说"路线的幸运。GNU 工具 + Linux 内核 = 一个完整的自由操作系统。

但这个系统被广泛称为"Linux",而不是"GNU/Linux"。斯托曼对此至今耿耿于怀:他坚持认为应该称之为"GNU/Linux",因为 GNU 工具是整个系统的重要组成部分,将其省略是对历史的不公。这场名称之争的实质是归因之争:在一个 GNU 组件的体量和历史都早于内核的系统里,只叫 Linux,会让自由软件运动的贡献在公众认知中变得不可见——名字背后,是"谁来叙述这段历史"的问题。这一争论在技术社区延续至今,双方各持己见,Linus Torvalds 本人明确表示不认同斯托曼的立场。

名字会把起源一起说错或说对。1994 年 5 月,Debian 创始人伊恩·默多克(Ian Murdock)宣布发行版改称 Debian GNU/Linux:一是标明与 GNU 的合作,二是纠正「Linux 阵营与 GNU 阵营互相竞争」的误解。FSF 后来的文章《为什么叫 GNU/Linux》写得更硬:若只叫 Linux,公众容易以为整套系统始于 1991 年 林纳斯·托瓦兹 的一己之见,从而把「用户应当拥有源码」这份更早的纲领从故事里抹掉。

斯托曼一度试过「Lignux」这类拼写,很快改回 GNU/Linux。托瓦兹觉得这个前缀别扭,也从未改口。Debian 一类发行版沿用双名,多数媒体与厂商仍只说 Linux。争论没有因某一方「赢了」而结束,只是日常用语选择了更短的那个词——而这正是斯托曼担心的:短名字会改写历史的主语。

代价与争议

斯托曼以其不妥协著称——在思想上和行为上。他拒绝使用智能手机(因为大多数智能手机运行专有软件),不使用服务条款不符合自由软件标准的网站,不接受在使用专有软件演示的场合发表演讲。

2019 年 9 月,斯托曼在公开邮件中就杰弗里·爱泼斯坦(Jeffrey Epstein)案发表了一系列措辞不当的评论,被广泛认为是在为相关性行为辩护(尽管他本人否认这一解读)。事件引发强烈批评,他随即辞去了 FSF 主席职务和在 MIT 的访问科学家职务。

2021 年 3 月,斯托曼宣布重新加入 FSF 董事会,再度引发争议。超过 2600 位开发者和研究者签名呼吁他退出所有领导职务;同时也有人签名支持他复职。这场风波折射出开源/自由软件社区内部,关于技术贡献与个人行为标准之间边界的深层矛盾。

"开源"vs."自由软件":1998 年 2 月,网景宣布开放浏览器源码后,埃里克·雷蒙德(Eric Raymond)、布鲁斯·佩伦斯(Bruce Perens)等人召开策略会议,决定启用"开源"(open source)一词——由克里斯汀·彼得森(Christine Peterson)在会上提议——刻意向企业示好,把话术从"自由与伦理"换成"工程效率"。斯托曼与开源运动的分歧由此公开化。开源强调的是开放源代码的实用好处(软件质量更高、安全性更好);斯托曼强调的是道德层面的自由——这是价值观的差异,不是表述上的不同。他明确拒绝使用"开源"这个词,因为它回避了他认为最重要的伦理问题:在"开源"框架里,企业大规模采纳就是胜利;在"自由"框架里,用户得到多少自由才是判据。

跨域连接

  • 科斯定理:科斯说在交易成本为零时,权利的初始配置不影响最终结果。版权左置的实际效力恰好证明交易成本从来不为零:把"衍生作品必须同样开放"写进许可证,条款就随代码自动传播,不必逐个谈判。它的力量来自把协商成本压到零,而不是来自道德说服。
  • 法治:一条规则能否被执行,取决于违规是否可观察、由谁提起、以何种救济。这套许可把触发点设在分发这个可观察行为上,由版权持有人提起,救济是许可终止而非赔偿——比赔偿更有威慑,因为继续使用本身就变成侵权。基金会集中持有版权,正是为了让第二项成立;三者缺一,条款就形同虚设。
  • 自由:四项自由里,学习与改进都明确附带了行使条件——没有源代码,"修改的自由"在物理上无法行使。这是把自由定义成实际可行使的能力,而不是法律上的不被禁止。判据由此变得可操作:一项自由若缺少行使条件,宣告它并不改变任何人的处境,只改变宣告者的姿态。
  • 社会运动:同一批实践、两套论证,胜负条件因此不同。在"自由"的框架里,企业大规模采纳算作妥协;在"开源"的框架里,同一件事算作胜利。框架分裂通常发生在运动即将进入主流时,因为这时必须把"什么算赢"说清楚——分歧不是措辞之争,而是目标函数之争。
  • 编译器:自由软件运动最先产出的是编译器与调试器,这不是偶然。工具链是能自我复制的最小闭包:先有可自由使用的编译器,才可能从源码构建出整个系统而不依赖任何专有二进制。这条自举问题至今没有完全解决,可重现构建仍在处理它的残余。

参考文献

  • Williams, S. Free as in Freedom: Richard Stallman's Crusade for Free Software. O'Reilly, 2002. (传记,GNU FDL 授权,可免费在线获取)
  • Stallman, R. The GNU Manifesto. 1985(gnu.org). (GNU 项目的纲领文件,自由软件论证的起点)
  • Free Software Foundation. GNU General Public License, Version 3. 2007. (copyleft 机制的成熟形态,含安装信息与专利条款)
  • Stallman, R. Linux and the GNU System / Why GNU/Linux? GNU Project. (命名争论的一手论证:名字会改写起源与目的)

延伸阅读

  • Stallman, R. Free Software, Free Society: Selected Essays. 3rd ed. FSF, 2015. (论文集,涵盖自由软件的伦理与政治论证)
  • Raymond, E. The Cathedral and the Bazaar. O'Reilly, 1999. (从开源角度对比自由软件运动)
  • GNU 操作系统官网:gnu.org