Simh 是一个开源历史计算机模拟器,可以仿真历史上出现过的一些计算机硬件或软件,比如 IBM 1401、惠普 2114 等。该仿真工具的原作者是 Bob
Supnik ,但他没有选择开源,而是 Fork 了一个开源版本。该开源版本在 GitHub 上基于 BSD 协议开源,由 Mark
Pizzolato(注意这个马克老哥,他拥有 Simh 开源仓库的管理权,也是本文主人公) 、 Richard Cornwell 、Paul Koning
等核心维护者进行维护,社区的成员都可以为之开发新模块。
该项目已有近三十年的社区协作开发历史,但近期 Mark Pizzolato 向 Simh
添加了一项有争议的功能:在加载时修改磁盘映像文件以添加元数据。该功能随即遭到社区其他开发者的批评,因为马克的新功能导致 simH
可以在用户不知情的情况下修改磁盘容器,这显然是不合常理的。操作系统项目通常有 “不破坏任何事物” 的默认原则,比如 FreeBSD 的 “最小惊讶原则”,以及
Linus 的口头禅 “不要破坏 Linux 的用户空间”。也就是说,除非用户主动要求元数据,否则磁盘容器不应被操作系统修改。
然而,在被社区成员批评后,马克完全没有修改或完善功该功能的想法,反而直接 “开摆”,在 5 月 16 号、18 号的提交中修改了 simH 主仓库的
BSD 开源许可证:
这改动写得非常绕,咱们来简单总结一下马克的意思:
如果你用 simH 的时候改动或者删除了我的 AUTOSIZE scp.c 和 sim_disk.c 功能,那我写的代码就不对你开源。
在许可证中加入禁止改动代码的限制,这个想法非常美好。然而从马克修改许可证的那一刻起,这个许可证就已经失效了,因为 BSD 规定 “……
包括但不限于使用、复制、修改…… 软件的副本……” 而马克添加的禁止修改条件与前半段的 BSD
主许可冲突,一个自相矛盾的许可证是不被认可的,即使它只针对项目的部分代码。
而 simH 社区更是围绕 Mark 修改开源许可证一事展开了激烈讨论,相关帖子在社区首页已接近屠版。
同为核心开发者的 Richard Cornwell 直言自己大失所望,不想玩了,要求马克从仓库中移除自己开发的模块。
而另一位开发者 Paul Koning 对马克的行为作了非常中肯、一阵见血的评价:
面对众人的质疑,马克在一一反驳之后终于词穷了,最终表达了他的真实想法:
也就是说,这个标记为 “历史计算机模拟器” 的社区项目,或许将在 Mark 的一番骚操作之后分崩离析 ——
即使事情最终得到解决,也无法回到社区齐心的状态了。
随着事态一发不可收拾,已离开 simH 社区的原作者 Bob Supnik
出来收拾烂摊子。他在帖子中表示已与马克进行了沟通,马克仍坚持自己的许可证没问题,并决定将 simH 闭源。因此 simH 项目需要立即 Fork ,并在原始的
BSD 许可下进入一个新的存储库重新运作开源事宜。
免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删