他把 .zip 送给了所有人,包括告他的那家公司

1988 年 Phil Katz 因为抄袭 ARC 格式败诉,赔了 62,500 美元。半年后他把新做的 ZIP 格式放进公有领域,声明永远免费。三年后他又把压缩算法从 LZW 换成 DEFLATE——1994 年 Unisys 对 LZW 收专利费,GIF 全行业地震,ZIP 什么事都没有。

分享
他把 .zip 送给了所有人,包括告他的那家公司

你可能不知道的是,我们电脑里很多文件格式本身就是 zip 压缩包。比如 .docx 格式的文件,你将它重命名为 .zip 后,就能使用 zip 软件解压缩,然后得到一个文件夹和一堆 xml 文件。.xlsx、.pptx 同样如此。安卓手机上的 .apk、电子书的 .epub拆开后也都是 zip。这个诞生于 1989 年的压缩格式,正装载着世界上绝大部分的数字资产。因为它免费、压缩比率高、而且速度很快。 而这一切,都需要从它的作者 Phil Katz 说起,他一直致力于压缩软件的开发。

抄袭者

1980 年代中期,PC 上传文件主要靠 BBS,即通过电话线拨号进入的公告板系统。相对于文件大小,带宽太小了,传一个文件往往要几分钟甚至几个小时。压缩工具是刚需。

当时占统治地位的压缩软件叫 ARC,出自一家叫 System Enhancement Associates 的公司,简称 SEA。它压出来的文件后缀也叫 .arc。

Katz 写了个自己的程序,叫 PKARC,读写还是用 ARC 格式,但速度快得多。BBS 圈子里很快传开,用的人比 ARC 自己还多。

自然,SEA 把 Katz 告上了法庭,指控他侵犯商标和版权。

法院指定了一位独立的软件专家进行鉴定。结论是,PKARC 属于 ARC 程序的衍生作品——两边代码里的注释在很多地方都一模一样,甚至连拼写错误都一样。

1988 年 8 月 2 日,Katz 与 SEA 达成和解:赔偿 22,500 美元的过往版税,加 40,000 美元的诉讼费用,还要按 6.5% 的比例,把 ARC 兼容产品的后续收入分给 SEA,一直分到 1989 年 1 月 31 日。并且从那天开始,他不能再卖任何 ARC 兼容产品,也不能再使用 SEA 的 ARC 商标。

输掉官司之后

禁售令一出,公司主要的收入来源就断了。于是,他重写了一个压缩格式,跟 ARC 没有一毛钱关系,叫 ZIP。

1989 年 2 月 14 日,PKWARE 和 Infinity Design Concepts 发了一份联合声明:将 ZIP 格式放入公有领域。声明里还有一句承诺:这个格式永远免费提供给竞争对手使用——包括刚把它告上法庭的那家公司。

PKZIP for DOS 的软盘,标签上印着 PKZIP、PKUNZIP、PKSFX 三个程序名和 PK 商标

PKZIP for DOS 的发行软盘。标签上并列着 PKZIP、PKUNZIP、PKSFX——解压的那个一直免费。摄影:Blake Patterson,CC BY 2.0,via Wikimedia Commons。

ZIP 的压缩比率比 ARC 更高,格式又是免费开放的。这两点在软盘和拨号上网的年代是决定性的,zip 很快流行起来。没几年,ARC 就没什么人用了,SEA 这家公司也消失了。

那个拯救 ZIP 的决定

ZIP 早期用的压缩算法是 LZW。这个名字来自三个人的姓:Lempel、Ziv、Welch。前两位在 1977 和 1978 年分别发表了 LZ77 和 LZ78,是这一整类压缩算法的源头。1984 年 6 月,Terry Welch 在 IEEE Computer 上发文,把 LZ78 改得更适合工程实现——只扫一遍数据,边压边建字典,不需要预先统计,代码量还小。

那年代的机器慢、内存小,LZW 的几个优点正好都戳在痛点上。于是它成了压缩算法的默认选择:Unix 的 compress 用它,GIF、TIFF 也用它,早期的 ZIP 也是用 LZW。

Welch 做这项研究时受雇于 Sperry 公司,1983 年 6 月申请了专利,1985 年 12 月获批,权利人是 Sperry。1986 年 9 月,Burroughs 花 48 亿美元收购 Sperry,两家合并成 Unisys——专利也随之转移。

1991 年 3 月前后,可能是以前跟 SEA 的官司提醒了 Katz,如果使用别人的专利,迟早会吃上官司,所以 ZIP 换掉了当时还不要钱的 LZW,改用 DEFLATE——一个基于 LZ77 的衍生算法。这个算法 Katz 自己申请了专利,权利人就是他本人,ZIP 依旧免费。

那时 LZW 的专利已经挂在 Unisys 名下六年,只是还没人来收钱。

三年后,1994 年,Unisys 突然宣布将对 LZW 收取专利费。这件事在当时是灾难级的。GIF 用的正是 LZW,而 GIF 是那个年代网页上唯一通用的图片格式。所有做图像软件的公司一夜之间发现自己可能侵权。PNG 就是这场危机的直接产物——1995 年初开始设计,专门用来取代 GIF,它的压缩算法也是采用的 DEFLATE。被 LZW 咬到的开发者纷纷改用 DEFLATE 作为替代品,比如 Unix 上 compress 的替代品 gzip。后来连 HTTP 协议压缩传输数据也用它。

PKZIP 2.06 的 DOS 帮助屏,顶部第二行印着 PKZIP Reg. U.S. Pat. and Tm. Off. Patent No. 5,051,745

PKZIP 2.06 的帮助屏,1994 年。顶部第三行印着专利号 5,051,745——专利就摆在那儿,只是没拿它收过钱。摄影:Javier Perez Montes,CC BY-SA 4.0,via Wikimedia Commons。

虽然 Katz 拥有 DEFLATE 的全部权利,但他从来没有行使过。整个互联网的压缩层建在一个有专利、但专利持有人不收钱的算法上。ZIP 活到今天不是运气。是两次主动放弃控制权的结果,而这两次都发生在他在版权规则收拾过之后。

百万富翁

在商业上,PKWARE 采用了跟其他公司不同的销售策略:ZIP 格式是开放、免费的,它主要通过售卖软件 PKZIP 来获得利润。而且 PKZIP 的解压缩功能不收费,只有在需要制作一个压缩包时,才需要付费 25 美元。到 90 年代末,PKWARE 的产品已进入 90% 以上的《财富》100 强公司。

今天我们几乎不用为解压一个文件付钱。至于 WinRAR 那个永远弹不完的提示框,是另一条路的结果。

PK

每一个 .zip 文件的开头四个字节是 50 4B 03 04。

前两个字节 50 4B,用 ASCII 读出来是 PK。

Phil Katz。

xxd -l 4 一个 zip 文件,前四个字节 50 4b 03 04,右边 ASCII 列显示 PK

随便找个 zip 文件跑一下 xxd -l 4,右边那列就是他的名字。

参考

写作备注(发布前删除)

已核实:诉讼时间线与金额($22,500 + $40,000 + 6.5% 版税至 1989-01-31, 后续藐视法庭指控被驳回、PKWARE 追回 $500 诉讼费);1989-02-14 公有领域声明; APPNOTE.TXT 随 PKZIP 0.9 发布;1991-03 前后 LZW 换成 DEFLATE;1994 Unisys 收费引发 PNG(1995 初)与 gzip(1992-10-31)诞生的不同时间与不同动因;DEFLATE 有专利但未行使;死亡日期、年龄、验尸报告口径。 注意:曾把 gzip 误写成 1994 GIF 危机的产物——gzip 早两年,针对的是 Unix compress,已修。

未能核实、因此没写: 1. Katz 本人的任何直接引语。唯一找到的是 1994 年《Milwaukee Journal Sentinel》 访谈里关于 shareware 收到支票的一句话,但只有单一来源的转述,拿不到原文, 按红线不引用。全文因此一句 blockquote 都没有——靠事实密度撑。 2. PKWARE 具体营收数字(Wikipedia 只说 multimillion-dollar,无年份无金额), 正文写成「年收入几百万美元」,不给精确数。 3. DEFLATE 的专利号。

刻意避开的写法: - 不做「天才悲剧」叙事。数据证明该模式不赚钱(Kildall $25、Frankston $7.6), 且入口是没人认识的人名。本文入口是 .zip。 - 不洗白抄袭。法院专家的鉴定结论原样写出。 - 死亡不猎奇:只给日期、地点、年龄、验尸口径。不写酒瓶、不写姿势。 - 不写 could-have-been 假设。

阅读更多