什么是开源软件? [MakeUseOf说明]

对于用户而言,如果一个程序有效,那么它就可以工作-很少关心谁创建了程序以及程序背后的原理。但是就像我之前说过的那样,开源软件是一种哲学,它对您作为用户具有真正的影响。

什么是开源软件?

当普通用户下载程序(例如iTunes)时,他们通常会下载一个安装程序文件,该文件将程序解压缩并将其安装到用户的系统中。从那里,用户将使用可执行文件(.EXE)或该可执行文件的快捷方式访问程序。这些可执行文件是由数千行源代码创建的。

在上面的示例中,您将看到以Python编程语言编写的程序的一些基本源代码。在未经训练的人看来,以上内容可能看起来很复杂,令人困惑,甚至完全无法理解。但是,此源代码包含一堆命令和语句,这些命令和语句最终被编译到程序可执行文件中。创建可执行文件后,您将不再需要源代码。

因此,当您运行iTunes之类的程序时,您将看不到用于创建iTunes的源代码。您只会看到最终产品。对于大多数人来说,这似乎还不错。

另一方面,开源软件是与发行版中的源代码捆绑在一起的程序。有时,开发人员会从源代码编译可执行文件,然后将它们一起发布;有时开发人员将只发布源代码,然后将其留给用户来编译最终产品。

无论哪种方式,这就是开源软件:源代码为 open <的软件/ em>(公开),而不是已关闭(私有)。

为什么要使用开源软件?

想象一下最近建造的房屋,完整且可供公众居住。您可以购买房屋并搬进去。拥有房屋时,您可能几乎看不到房屋的实际基础–墙壁,电线,管道布局,木结构本身。

继续该示例,假设您的水在某些时候出现故障,需要对其进行修复。或者,也许您想在某个房间中添加一些额外的插座。或者,您可能想要完全扩展房屋,并使用车库或附件对其进行扩展。如果您无权访问房屋的内部空间,则将无法进行任何操作。

类似地,在安装程序时,通常无权访问源代码。使程序运行的管道,电力和结构–您看不到任何东西。如果您想更改程序以执行尚未执行的操作会怎样?如果有一个需要修复的严重错误该怎么办?

就像一所房子,您必须等待承包商,电工或水管工来解决问题一样,在开发人员修复之前,您的程序不完善还很不走运

现在,许多人可以在自己的房屋上工作(称为“自己动手做"),但这仅是可行的,因为他们拥有房屋的设计图。使用这些蓝图,他们可以对自己的房屋进行修改。这就是开源软件的作用–它为您提供了运行程序的蓝图,以便您可以根据需要自己查看和更改它们。

开源软件的优点

此时,您可能会想:如果我不是程序员,那么这对我来说真的不重要。但是,即使您不能编写一行代码,也应该仍然是 support 开源软件。

这是您应该使用的一些原因。

当源代码公开时,新手程序员可以阅读它并从中学到东西,这增强了他们自己的编程能力。就像一个开放知识的图书馆可供任何愿意去获取知识的人使用,开放源代码软件可以帮助培养教育,创造力和灵感。

如果专有软件中发现错误,用户就必须等待公司来查找并实施修复程序,有时需要花费 long 的时间。使用开源软件,您会花数千倍的精力查看源代码,这意味着可以更快地发现并修复错误。

有多少种Linux? Mozilla Firefox分支了多少个浏览器?您是否知道Google Chrome浏览器基于名为Chromium的开源项目?当某人可以接受一个项目并用他们自己的想法对其进行调整时,最终得到的产品不止一个。

当您看到源代码时,可以确定开发人员没有在做。使用计算机程序时对计算机有害的任何内容。例如,KeePass是一个开源密码管理器,这意味着您可以检查源代码以查看开发人员是否在窃取您的密码(他不是)。

问责制很重要。例如,考虑使用电子投票台。大多数(如果不是全部)投票程序都是封闭源代码。当您无权访问该代码时,就无法保证该程序确实按照其声称的方式工作,从而以选举欺诈的形式表现出来。您只有通过检查代码才能完全保证。这在专利侵权的情况下也很重要,可以将程序之间的源代码进行比较以检查软件盗窃。

有更多的理由支持开放源代码软件,但我将止步于此。如果我现在还没有提出要点,那么多余的单词将无济于事。希望您对开源世界有更好的了解,以及为什么有这么多人支持它。如有任何疑问,请随时在评论中提问!

标签: