我如何努力在不使用非自由软件的情况下毕业

作为一名大学生,和大家一样,我在疫情期间也经历了很多困难。许多人失去了家人,或者失去了工作。在波兰克拉科夫 AGH 科技大学学习信息学的过程中,我一直在进行另一场看似不那么重要的战斗,但我强烈地认为这场战斗对我们未来的自由至关重要。我将在下文中描述我的战斗,以鼓励和启发他人。

不道德的平台

软件自由是我们这个时代一个巨大但隐藏的问题。诸如视频会议之类的数字通信技术已成为我们生活中的中心,对许多人来说,使用这些技术是一种救星。他们没有注意到它工作方式中隐藏的危险:谁控制了这项技术,谁就控制了我们的生活。最近,我们已经看到了大型科技公司颠覆民主、控制言论、排斥群体和侵犯我们隐私的能力。

软件自由是一场将控制权归还给人民的斗争。这是一场反对“非自由”软件(也称为专有软件)的斗争,这种软件对其用户施加不公正和侵犯性的危害。为了追求我们解放的使命,像我这样的软件自由倡导者坚持使用自由软件。

向新一代传播这些理想尤为重要。不幸的是,我们经常看到相反的趋势。在我国大多数计算机教室中发现的默认操作系统是专有的 Microsoft Windows,一些大学甚至为学生提供其许可证。在某个时候,我意识到这种做法实际上只对专有操作系统供应商有利。同样令人恐惧的是,课程组织对非自由的 Google Sheets 和 Google Forms 的依赖程度。

在疫情期间,我们看到教育机构在他们所产生的网络的压力下,匆忙采用了诸如 Microsoft Teams、Zoom 和 WhatsApp 等专有工具。学校和大学随后试图将其强加给学生,学生们因此失去了使用用户无法控制的程序的自由,以及糟糕的安全性和侵犯隐私的问题。

因为我拒绝使用不道德的软件,所以完全依赖专有平台造成了伦理冲突。我的目标是通过说服我的教授[2]允许我只使用自由软件替代专有应用程序,来完成我的大学学位,而不是屈服于强加的非自由服务。我没有期望能赢得对抗如此强大力量的战斗,但现在,通过礼貌但坚定的行动,我认为我可能已经获胜了。希望这个故事也能帮助你抵制。

道德学习

随着时间的推移,我越来越决心避免使用非自由软件。在其他挑战中,这意味着获得一台 Libreboot 化的 ThinkPad 并切换到仅包含自由软件包的 GNU/Linux 发行版。有人可能会问

那学习呢?你难道不需要使用 Windows 吗?或者 MS Office?或者其他一些专有工具?

实际上,大多数课堂作业都可以使用自由软件完成。今天,我们有幸拥有出色的自由操作系统和用于大多数任务的自由工具。大多数流行的编程语言都有自由软件实现。在少数情况下,当严格需要某些非自由工具时,我能够说服教授让我进行替换——例如,使用 PostgreSQL 数据库而不是 Oracle 完成练习——或者在实验室的大学计算机上完成作业。我承认,在自己的计算机以外的计算机上运行非自由软件并不能完全解决道德问题。这似乎很公平,但这不是我引以为傲的事情。

我现在也更认真地对待浏览器内 JavaScript (js) 的问题。Web js 在一个隔离的沙箱中运行,这导致许多人认为它是可以接受的,即使它是非自由的。沙箱化可能确实解决了安全问题,但专有程序的真正问题在于它拒绝让用户拥有控制权。目前,在 Web 浏览领域保持软件自由并不容易。当 js 被禁用时,网站经常会发生故障。我不得不请同事帮我将与学习相关的数据输入到 Google Sheet 中,因为如果禁用 js,我就无法做到这一点。此外,js 代码还用于实现浏览器指纹识别,用于跟踪用户。

温和的说服

没有遇到严重问题,我完成了第五个学期的学习。在第六个学期开始时,疫情开始了。大学关闭了实体设施,因此大多数学生都回到了家,教授们开始组织远程课程。不出所料,他们都选择了专有平台。Cisco WebEx、Microsoft Teams、ClickMeeting 和 Skype 都是受欢迎的选择。我找不到任何这些平台的自由软件客户端。此外,由于没有意识到非自由 js 的问题,教授们希望每个人都能使用任何 Web 界面轻松加入视频会议。

我是如何处理这些要求的?我会非常礼貌地给每一位宣布将使用有问题的平台进行操作的教授发送电子邮件,解释缺少合适的自由软件客户端。我经常附上一个关于软件自由和大学问题的流行的在线解释链接,自由软件基金会 (FSF) 创建的“Costumed Heroes”视频,以及其他一些指向 Jami 和 Jitsi Meet 等自由视频会议程序的链接。

尽管在这些集中式平台上存在许多有据可查的监视和安全问题,但我解释说,对我而言,软件自由才是令人担忧的因素。回复敦促我“在虚拟机中运行该程序”或说我“不需要源代码即可使用该服务”,这清楚地表明,我的一些教授并不理解,或者只理解了问题的一部分。如果我学习的不是信息学,我怀疑那些理解这个问题的人的比例会小得多。

错过

有两个明显的关注领域。第一个是访问和参与教学材料;例如,在机器学习课程中,我找到某人来转发教授说过的内容。第二个是关于注册和评估。对于某些远程课程,不会检查出勤率。我跳过了那些课程。将我的作业上传到 Moodle 也没有任何问题。

真正的问题出现在人工智能 (AI) 课程中。它是轮流授课的。第一位教授布置了需要专有 Framsticks 应用程序的作业,但允许我做神经网络练习代替。另一位教授同意我可以使用 Webots 而不是 Choreographe 进行模拟练习。还有一位教授要求我们完成需要非自由 js 的在线 NVIDIA 课程。那位教授没有回复我的邮件。

一份分布式系统作业应该通过 WebEx 提交,但那位教授同意让我改用 Jami。

不确定和疑虑

出现的另一个问题是在缺乏明确政策的情况下的持续不确定性。不知道大学是否会承认我的原则是造成持续压力的原因。尽管我早期取得了一些小胜利,但其他轮流课程意味着,如果我要通过,还需要另外三位教授分别同意,因此直到 6 月,我才能确定我会成功。3 月,系统编程课程开始了。那位教授不想浪费时间连接到自由平台来评价我的作业,他没有给我带来任何希望,所以我又要在复活节及以后的时间里生活在不确定之中。

我认为每一门课都应该至少提供与自由工具互操作的方法,以便学生至少可以在自由平台上阅读课堂作业,并从中上传他们的答案。除非大学提供互操作性,否则对专有软件的依赖会给学生和教授都带来时间和麻烦。有一次,我给两位教授发邮件,询问他们使用非自由平台进行讲座的情况。一位没有回复,另一位则粗鲁地回复。他们似乎不明白,但我怀疑他们是在逃避任何额外的工作。这对我的参与度产生了腐蚀性的影响,我不再关心讲座了。避免使用我认为会使我面临安全和自由风险的特定于语言的软件包管理器,花费了我大量时间并延迟了我的学业。时间对我们所有人来说都是宝贵的。

关于自由的摩擦

尽管压力很大,但到目前为止,事情进展还算顺利。但在复活节之后,软件工程课程出现了第一个大问题。这位教授先是无视我的邮件,但最终写了一封长长的回复,并威胁说如果我再错过一次会议,就会让我不及格。那封邮件的语气非常恼火,甚至可能带有愤怒。有人建议我寻求同事的帮助来参加会议。另一位同学和我通过 Mumble 连接,教授也通过 Mumble 进行中介——虽然不完美,但它奏效了!

软件自由的伦理问题必须与其他开源支持者经常优先考虑的问题区分开来。例如,开源倡导者避免将那些重要的自由问题摆上桌面,而只是说,通过社区的帮助,具有公开可用源代码的软件将获得更高的质量。与此同时,我们的反对者声称专有软件可以带来更高的收入,从而可以雇用更多的开发人员来改进它。

编译原理课程的考试将通过 Microsoft Teams 进行。同样,坚持我的原则,我认为我会不及格。有趣的是,正是 Teams 失败了。它无法处理数十名学生同时连接,因此考试改为通过电子邮件进行。另一方面,在 7 月与我的论文导师联系时,Jami 在会议期间崩溃了。没有软件是完美的。但使用自由软件,你至少可以在它崩溃时保留这两部分。

并非一定是软件的功能方面导致了缺乏软件自由的摩擦。在夏季,我必须做一份实习。在得知雇主将使我的代码变为非自由后,我放弃了一份有报酬的邀请。我最终做了另一份无报酬的实习。

因此,在经历了所有挣扎之后,我终于通过了夏季学期,甚至获得了不错的成绩。在某些时候似乎几乎不可能的事情,现在变成了现实。

专有软件在各个层面被强加

在冬季学期之前,教授们收到了一份符合数据保护法的允许使用的视频会议平台清单。其中包含 Microsoft Teams、Cisco WebEx、ClickMeeting 和 Google Meet。您肯定会看到这里的讽刺之处!

一位教授同意在他的所有课程中使用 Jitsi Meet,并建议我请学生会向院长推荐它,但学生会从未回复我的电子邮件。在教育机构中,似乎存在腐败的企业捕获案例,高质量的、提供更好数据保护功能的软件被故意搁置一旁,而选择了商业的非自由解决方案。自由软件没有获得批准,教授继续通过 WebEx 与其他学生交流。

误解

正如我之前提到的,尽管许多学者都是知识渊博的计算机科学家,并且在信息学方面经验丰富,但他们对软件相关的政治和伦理的理解普遍较差。

在研讨会上,一位教授声称,由于自由平台也是在别人的服务器上运行,“它不可能更安全”。我回应说,Jitsi Meet 允许创建独立的实例,这消除了依赖单一公司的必要性。我还指出,其他服务的主要问题是缺乏自由客户端。令人遗憾的是,如此水平的教授,他们完全理解中间加密和端到端加密之间的区别,却会在课堂上教授这些知识,而不是在日常工作中实践它们。

另一次,我反对使用 Windows 虚拟机进行渗透测试练习。教授说,如果只限制测试自由服务器,就无法成为一名优秀的渗透测试员。我放弃了回应他,但我认为,由于例如专有平台可能存在后门等问题,应该默认认为它们是不安全的。

下定决心

在某个时候,我和我的导师发生了争执,他给了我最后通牒,我必须使用 Microsoft Teams。我没有同意,我的导师本应通知院长他将不再指导我。也许院长没有读那封邮件?我只是猜测。无论如何,几周后,我甚至还从我的导师那里借了一些电子设备——仿佛争执从未发生过。

后来,一位不同意我在不使用 Teams 的情况下通过课程的教授,想以我“缺席”为由让我挂科,尽管我整个学期都上传了作业。经过一番冗长的争论后,我被提供了在 1 月 8 日在线会面的选项……在 Teams 上!我再次礼貌地拒绝了,并重申了我的观点。这位教授最终在邮件中抄送了副院长。与此同时,我上传论文以参加一月份答辩的截止日期也过期了。在多次催促邮件之后,终于得到了回复,通过院长的干预,我获得了成绩,通过了第七个学期,并在三月份成功地进行了论文答辩。

结论

回顾过去,我为自己的行为感到自豪。我冒着学习失败的风险,最终得到的最终成绩会比我屈服于使用不道德和不安全的软件产品要低。但我对此感到满意。我不认为屈服于非自由平台会带来任何长期利益——只会带来更多的妥协。

我们可以看到有些人对软件自由原则不容忍,但最终这些只是少数人,大多数 AGH 大学的教职员工实际上对我很友善。感谢他们,我现在有了证明,证明有可能在不依赖专有软件的情况下学习、毕业……甚至生活。经历过这一切艰难的经历后,我感到比以往任何时候都更加独立,甚至收到了著名的 RMS [3] 的赞赏。希望我的故事能帮助更多的学生到达我现在的位置。

努力只运行自由程序迫使,并且将继续迫使我,去获得新的技能。我现在对 Web 技术有了足够的了解,可以使几个网站在没有 JavaScript 的情况下正常运行。但我的经历中最棒的是,我将能够与他人分享我的修复,并最终使万维网的一部分能够在自由的环境中使用。


[1] 感谢 Andy Farnell、Andy Oram 和 Richard Stallman 的帮助。

[2] 在本文中,我用通俗的说法称所有大学教师为我的教授,尽管只有一部分人拥有正式的学术头衔。

[3] 理查德·M·斯托曼博士,自由软件基金会创始人兼 GNU 项目的首席 GNUisance。