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