为什么程序不能限制运行它们的自由
作者:理查德·斯托曼自由软件意味着软件由其用户控制,而不是相反。具体来说,它意味着该软件附带 软件用户应该享有的四个基本自由。排在首位的是自由 0,即按照您的意愿运行该程序以实现您意愿的自由。
一些开发者提议在软件许可证中设置使用限制,禁止将该程序用于某些目的,但这将是一条灾难性的道路。本文解释了为什么自由 0 不能被限制。限制程序使用的条件不会实现其目标,但可能会破坏自由软件社区。
首先,让我们明确一下自由 0 的含义。它意味着软件的发布不会限制您如何使用它。这并不意味着您可以凌驾于法律之上。例如,在美国,欺诈是一种犯罪——我认为这是一项正确且合理的法律。无论自由软件许可证如何规定,使用自由程序进行欺诈行为并不会让您免受起诉。
在欺诈是犯罪的国家/地区,针对欺诈的许可证条件将是多余的。但是为什么不设置一个针对使用它进行酷刑的条件呢?酷刑这种行为通常在“安全部队”实施时会被国家认可?
针对酷刑的条件不会起作用,因为任何自由软件许可证的执行都是通过国家来完成的。一个想要实施酷刑的国家会无视许可证。当美国酷刑的受害者试图起诉美国政府时,法院会以他们的待遇属于国家安全机密为由驳回案件。如果一名软件开发者试图起诉美国政府,原因是其违反许可证条件使用程序进行酷刑,那么该诉讼也会被驳回。总的来说,各国都很擅长为他们想要做的任何可怕的事情找到法律上的借口。拥有强大游说力量的企业也可以这样做。
如果该条件是针对某些特定的私人活动呢?例如,PETA 提出了一项许可证,禁止使用该软件对脊椎动物造成疼痛。或者可能有一个条件禁止使用某个程序来制作或发布穆罕默德的画像。或者禁止将其用于胚胎干细胞实验。或者禁止使用它来制作音乐录音的未经授权的副本。
尚不清楚这些是否可以强制执行。自由软件许可证基于版权法,并试图以这种方式施加使用条件,这正在以危险的方式延伸版权法允许的范围。您希望书籍带有关于如何使用其中信息的许可证条件吗?
如果这些条件在法律上可以强制执行,那会是好事吗?
事实是,人们对可能使用软件进行的活动有非常不同的道德观念。我碰巧认为这四项不寻常的活动是合法的,不应该被禁止。特别是,我支持使用软件进行动物医学实验和加工肉类。我捍卫动物权利活动家的人权,但我不同意他们的观点;我不希望 PETA 通过限制软件的使用来实现其目的。
由于我不是和平主义者,我也不同意“禁止用于军事用途”的规定。我谴责侵略战争,但不谴责反击。事实上,我支持说服各军队改用自由软件的努力,因为他们可以检查其中的后门和监视功能,这些功能可能会危及国家安全。
由于我并不反对一般的商业活动,因此我反对限制商业用途。我们只能用于娱乐、爱好和学校的系统不适用于我们使用计算机所做的许多事情。
我在上面陈述了我对某些与自由软件问题无关的政治问题的看法——关于这些活动中的哪些是不公正的。您对它们的看法可能不同,而这正是关键所在。如果我们接受带有使用限制的程序作为 GNU 等自由操作系统的一部分,人们就会提出许多不同的使用限制。有些程序禁止用于肉类加工,有些程序只禁止用于猪肉,有些程序只禁止用于牛肉,有些程序则仅限于犹太食品。一个讨厌菠菜的人可能会许可一个程序,允许处理除菠菜以外的任何蔬菜,而一个菠菜爱好者可能会许可一个程序,只允许处理菠菜。有些音乐程序只允许用于说唱音乐,而另一些则只允许用于古典音乐。
结果将是一个您无法指望用于任何目的的系统。对于您希望执行的每个任务,您都必须检查大量的许可证,以查看您的系统的哪些部分对该任务是禁止的。不仅包括您明确使用的组件,还包括它们链接、调用或与之通信的数百个组件。
用户将如何回应?我认为他们中的大多数人会使用专有系统。允许在自由软件中使用限制主要会将用户推向非自由软件。试图通过自由软件中的使用限制来阻止用户做某事,就像用一根长长的、直的、柔软的煮熟的意大利面来推物体一样无效。正如一位智者所说,这就像“一个拿着一把非常小的锤子的人把每个问题都看作钉子,甚至没有意识到钉子对于锤子来说太大了。”
它不仅无效,而且是错误的,因为软件开发人员不应该对用户做什么行使这种权力。想象一下,出售带有关于您可以使用它们写什么的条件的钢笔;那会令人厌恶,我们不应该忍受它。对于通用软件也是如此。如果您制造出像钢笔一样普遍有用的东西,人们会用它来写各种各样的东西,甚至是可怕的东西,比如下令折磨异议人士的命令;但是您不能通过他们的钢笔来控制人们的活动。对于文本编辑器、编译器或内核来说也是如此。
您确实有机会决定您的软件可以用于什么:当您决定要实现什么功能时。您可以编写主要用于您认为积极的用途的程序,并且您没有义务编写任何可能特别适合您不赞成的活动的功能。
结论很明确:程序不能限制其用户使用它所做的工作。自由 0 必须是完整的。我们需要制止酷刑,但我们不能通过软件许可证来实现这一点。软件许可证的恰当作用是建立和保护用户的自由。