你在屏幕上看到的一切都是由语言组成的。 某个地方的某个人写下了供你的计算机理解的单词。 这些词,这种语言,被称为代码。
为了让我们的计算机知道该做什么,它需要理解这些代码。如果它理解了,它就可以行动。但是,为了让我们了解我们的计算机实际上在做什么,我们也需要阅读代码。
开源软件让你看到这些代码。闭源软件则不会。那么,这两种软件是什么类型的软件,为什么这两种方法都存在?
什么是开源软件?
免费开源软件是一种软件,你不仅可以自由使用程序,还可以查看、编辑和共享其源代码。
源代码是指一个人(或者,在某些情况下,是一台计算机)在创建程序时键入的代码。 这与二进制代码不同,二进制代码是计算机使用的实际语言。 当程序员写完程序后,他们将源代码编译成二进制程序。
人类知道如何阅读源代码。 计算机知道如何读取二进制代码。
当有人发布一个程序时,他们通常为你提供一个二进制文件,你可以在你的电脑上运行。除非他们还为你提供了源代码,并允许你自由地使用这两个文件,否则这个程序就不是自由和开源的。
什么是闭源软件?
闭源软件是指使用有限制的软件,主要是不能看到源代码。你只能接触到二进制文件。
闭源软件也被称为专有软件。这是因为软件开发者把源代码看作是私人的、专有的信息。在他们看来,向任何人提供对这些代码的访问,就等于给其他人提供了竞争优势:能够自由地复制和编辑一个程序,而不需要雇用一个开发者或开发者团队来做同样的工作。
除非你是使用Linux长大的,否则你所熟悉的大多数软件很可能是闭源的。这种类型的软件更容易盈利,使其对小型应用开发商和巨型企业都有吸引力。
另一个明显的迹象是,在第一次使用程序时,你是否需要同意最终用户许可协议或 EULA。
EULA 和 自由软件许可证
电脑和大多数工具不一样。你可以移动鼠标或抚摸触摸板并不重要。你可以按键盘上的按钮或看屏幕是必要的,但同样不是重点。
重要的是代码。代码可以被修改。代码可以被复制。对某人修补和复制代码的能力没有固有的限制。电脑制造商不必要求你不要复制你的笔记本电脑,因为这根本不是大多数人能够做到的。但是,复制和重新分配计算机上的软件并不特别困难,所以这就是限制性的EULA的作用。
EULA通常是巨大的文本墙,用法律术语描述您对即将使用的软件可以做什么和不能做什么。它们通常会阻止你查看代码,认为复制是非法的,要求你购买许可证或激活密钥,并且通常会详细说明违反服务条款使用软件的方法。
自由软件许可证不需要你的合同同意,而是告诉你,在大多数情况下,你可以对程序和它的代码做任何你想做的。一些自由许可证,如GNU通用公共许可证,被认为是自由复制的许可证。他们对你的行为的主要限制是要求你使用GPL下的代码开发的任何程序也要在GPL许可证下提供。
其他许可证,如 MIT 许可证,被视为许可许可证,不附带此要求。 如果你愿意,你可以获取 MIT 许可的代码并使用它来创建专有程序。
这对你有何影响
你所使用的软件的许可决定了你可以在你的电脑上做什么。
如果一个专有程序有一个错误,或者你希望它有某种功能,你唯一的办法就是通知软件开发商,希望他们能做些什么。对于自由软件,如果你有技术知识,你可以自由地自己做出改变。很多时候,即使你对代码缺乏了解,网上也很有可能有人想做同样的事情,或注意到同样的问题,并提供如何调整程序的说明。
但绝大多数人都没有阅读代码或修改程序的愿望。那么,这是否意味着这个问题对大多数人没有影响?很难说。有几个日益受到关注的主要领域,闭源软件和开源软件对待你的方式非常不同:
1. 成本
开源软件:几乎总是免费供您使用,无需支付任何费用。
闭源软件:更可能花钱。免费提供专有软件时,通常存在风险。开发人员和发行商通常以不同的方式通过该程序获利,无论是通过展示广告、跟踪你的行为、将不需要的(有时是恶意的)软件偷偷带到你的计算机上,还是三者的某种组合。
2. 隐私
开源软件:通常是你可以使用的最尊重隐私的软件。如果有人试图共享一个侵犯你隐私的开源程序,其他人会注意到并共享一份副本,并删除所有跟踪。争议和声誉损害的风险通常足以阻止开发人员甚至无法收集在专有软件中被认为司空见惯的基本诊断数据。
闭源软件:经常跟踪你如何使用该程序。在移动设备上,应用程序通常会密切关注你的位置以及您在手机上安装的其他应用程序。有些人会查看你的联系人列表或扫描你的文件。
3. 安全
开源软件: 受益于许多眼睛可以看到代码的事实。虽然这并不能保证当漏洞利用时,很多人确实看到了代码,但任何具有技能的人都可以提供修复,并且你可以确认问题已得到解决。
闭源软件:闭源软件通常依赖于一种称为security through obscurity的安全模型。这并不能阻止不良行为者发现漏洞并创建漏洞利用。如果软件开发人员让您意识到这些漏洞,由于你看不到程序的代码,你无法确认问题是否已得到解决。
4. 更新
开源软件:更新可能需要更长的时间才能到达,因为软件开发通常依赖于志愿者。另一方面,应用程序和发行版往往支持硬件多年,甚至几十年。
闭源软件:有时会更快到达,因为通常会有一组员工全职从事项目工作。然而,当公司倒闭或决定某个软件不再盈利时,软件支持可能会突然终止。新版本不太可能在旧硬件上运行。
你应该使用哪种软件?
你在大型商店中找到的大多数电脑都带有闭源软件,手机也是如此。更多有技术倾向的人可以用一个开放的替代品来取代他们被锁定的操作系统。对于其他人来说,在网上购买一台Linux驱动的笔记本电脑或下载任何操作系统的开源应用程序仍然相对容易。
但是,免费和开源软件没有同样程度的资金,而且一般都是 "按原样 "提供。虽然它对许多(如果不是大多数)用例来说是绰绰有余的,但在其他一些情况下,工作的最佳工具只能以专有形式提供。
版权声明:文章仅代表作者观点,版权归原作者所有,欢迎分享本文,转载请保留出处!