2020 年为软件自由过去十年糟糕的经历画上了句话。在本文中,我们就来讨论一下软件对于每个人生活的影响,软件自由的发展状况,以及为什么软件自由很重要,另外我还将解释为什么我认为自由软件开发人员应该将精力集中在新兴的语言生态系统上。
为什么软件自由很重要
在过去的 18 个月里,人们的行动、言论和交往自由受到了前所未有的限制。互联网在线互动成了许多人唯一的社交渠道,而他们使用的软件几乎全部是专有软件。 在澳大利亚,法律要求我们向一个或多个“接触人员追踪”平台报告我们的个人活动,就连去超市或其他正常的社交生活也需要汇报。人们被迫与大量专有监控软件进行交互。尽管最开始的时候他们承诺仅用于追踪联系人,但如今这些数据已被警方使用。这样的签到系统应该以保护隐私的方式构建,并接受公众的监督。设备上存储的定位历史记录,只有获得本人同意才能上传到联系人追踪软件中,并且只能用于响应联系人追踪的查询。PII(用于联系与疫情有接触的人)与用户ID(用于构建接触关系图)之间没有链接,而且单独保存。自由软件至少可以让我们放心该软件是以保护隐私的方式构建的。我们的生活受到了软件的支配,而且在新疫情出现之前就是如此,如下示例就与 COVID 毫无关系: 缺乏灵活性的自动化系统不具备人类的同情心与判断力。
自动追债系统 Robodebt 向领取福利的人征收不存在的债务,导致一些人自杀。
一般“智能家居”设备。所有软件都“闹鬼”,运行了这些软件的房子都变成了“鬼屋”。
能够按照条约检查、修改和运行软件,这对每个人来说都是很有价值的,而且关乎公共利益。自由软件基金会概述了“自由软件”程序的四项基本自由:
基于任何目的运行程序的自由;
学习和修改程序的自由;
分发软件副本的自由;
分发修改后的副本的自由。
四项基本自由还不够充分
如今,自由软件基金会提出的四项基本自由还不足以确保用户的软件自由:如果你无法实际部署和运行软件,那么即便拥有查看/修改/构建程序的源代码也没有任何用处:大量的 BSD/MIT/X11 许可软件允许将专有程序部署在电话、控制台和其他锁定设备上。现在锁定计算已被公众接受,且这种趋势正在蔓延到个人电脑。举个例子:x86/amd64 上的 Windows 认证过去要求计算机所有者能够禁用其主板的“安全启动”功能。而如今 Windows 11 上已没有这样的要求,而 ARM 上的 Windows 也从未有这样的要求。用不了多久主板供应商就会停止为用户提供该选项。运行在服务器或云上的软件永远不必“分发”或“传送”给用户,因此避开了除 Affero GPL 之外的所有 GPL 风格许可的保护。由机器学习模型驱动的软件的兴起意味着,完整的源代码毫无用处,除非你拥有足够的训练数据和计算能力来重新训练模型。
市场不会拯救你
多年来,隐私倡导者一直在说:“如果产品是免费的,那么消费者本身就会成为产品。”如今,即使付钱也无法得到保护: - Windows 10 整个操作系统内都包含广告,甚至包括扫雷。用户界面唯一能做的就是关闭你的“广告 ID”。
- Windows 催促用户尝试微软的 Edge 浏览器。
- Windows 有一个坏习惯,每次更新完成后都需要重启,实际上是在安装一些不需要的程序(或蹩脚的游戏)。
在这些问题上,Windows 不是唯一的“惯犯”。最近,Google 也在用户不知情或未经他们同意的情况下在他们的手机上安装健康通知应用程序。虽然是你的手机,但除了你之外的每个人都可以在上面运行他们的代码。如今你还能买到非“智能”电视吗?应该不能吧,而且如今“智能”电视的菜单系统中都植入了广告,谁知道他们泄露了哪些数据?廉价的电视通过广告和数据获得的收入与出售电视本身获得的收入几乎一样多,而且我敢肯定,即便是高端电视也会将这种“监视”作为额外的收入来源。公共版权软件不够吸引人
自由软件基金会提出的解决方案是在公共版权许可下发布软件,这样人们就可以互相共享公共版权的软件,同时保留用户自由。以前,GNU 项目的系统软件会在 UNIX 供应商专有软件的基础之上进行重大改进。如今 GNU 项目最知名的软件(比如系统级的软件 coreutils)已彻底商品化,人们并不是说“我真的很喜欢使用某个库,而是我的软件会使用公共版权,因为这样就可以使用某个库了。”
建议
我很想制定一个清晰而简单的计划,通过公共版权的力量解放世界。但不幸的是,我只能提供一些建议。我的总体思路是,壮大公共版权软件,方便每个人贡献代码,并加大对用户和开发人员的吸引力。第一,降低为公共版权软件做贡献的难度
最近,GCC 项目已经放宽了贡献的要求,从“需要向自由软件基金会分配版权”变为了“提供开发人员证书原件”。我很乐观,随着向公共版权项目做贡献的难度降低,做贡献的人就会越来越多。 如果运行一个项目并沿着这条道路向前发展,我认为最合适的方式是在为贡献者提供授权时,在授权中加入“以及任何后续版本”的字样。这种方法提供了一种改进项目许可的机制,而且不需要追踪每一个贡献者。第二,公共版权特有的软件
如果你发布了一个公共版权库,但该领域已有很多产品,则人们可能会退而求其次,找一个替代方案。如果构建一些独特且不同的库,则人们更有可能支付公共版权费用,因为替代方案非常少。 举一个相反的例子,libvorbis 从 LGPL 换成了 RMS 批准的 BSD 风格的许可证,因为语音库相关的产品太多。尽管 libvorbis 采用 LGPL 可以帮助其建立正常的公共版权,但也会损害其主要目标,即采用无专利保护的音频编解码器。第三,在开发中使用新兴语言
关于第二点,还有一种更极端的情况,因为与 BSD/MIT/X11 许可 FOSS 开发人员相比,公共版权的开发人员相对较少,因此公共版权开发人员必须更为强大,才能保持竞争力。使用 C 语言还不够,公共版权开发人员应该尽可能使用最强大的工具。 我认为,如果公共版权软件想在 2021 年独辟蹊径,那么就应该认真考虑一下新兴的语言生态系统: 新兴语言通常可以为开发人员提供更多功能,通过“更强大的工具”武装他们。开发人员工具是另一个潜在的目标领域,因为该领域非常强大且非常不发达。但是如果没有自由的话,就无法在公共版权项目上使用这些工具。如果工具要求开发人员将程序链接到运行时库,那么公共版权形式构建和发布可能更具战略意义。总体而言,使用新兴语言的开发人员一般都比较少,这意味着在“BSD 许可替代方案”参与竞争之前,公共版权项目有更多的构建时间。从事新兴小众市场的开发人员很乐意专心做产品,而对许可不管不问。(例如,自由软件基金会曾有机会获得 LLVM 版权,但不可思议的是,这项提议竟然在不经意期间丢失了。)新兴语言没有太多库,贡献一个 JSON 或 XML 库就可以帮助很多项目。 我们应该看一看,对于新兴语言来说,拥有高质量的默认版权保护生态系统,却没有 BSD/MIT/X11 许可默认生态系统,究竟会怎么样。也许这样的生态系统有助于提高公共版权开发人员的效率,从而让公共版权软件更具吸引力。第四,构建生态系统
概括一下第三点:单个公共版权库很容易解决。公共版权库生态系统会相互依赖吗?公共版权比重新发明轮子(以及车轴、变速箱和底盘等等)更容易。第五,如果战略允许使用更强的许可
尤其是对于公共版权特有的软件(参见第二点),使用能够为用户和开发人员提供更强保护的许可。我们可以从 AGPL 着手,利用大量新兴“以及任何后续版本”的公共版权软件强制执行与机器学习相关的保护,确保互操作性或确保可安装性。此外,为了抵御新的攻击(例如锁定引导加载程序),许可本身也需要不断发展,但是需要足够多的项目支持这些转换。
总结
我认为自由软件对公共社会至关重要,而公共版权软件仍然是确保自由软件继续存在的直接方式。但这类软件需要为用户提供更强大的功能,对开发人员更有吸引力,否则就永远也无法真正发挥作用。 原文链接:http://jackkelly.name/blog/archives/2021/07/09/free_softwares_relevance_in_2021/index.html
声明:本文由CSDN翻译,转载请注明来源。