什么是开源软件,为什么它是重要的?

ubuntu-lucid-lynx-tux-android

Geeks经常把程序描述为“开源”或“自由软件”。如果你想知道这些术语是什么意思和它们为什么重要,请继续阅读。 (不,“免费软件”不只是意味着你可以免费下载。)

一个程序是否是开源的,不仅对开发者来说很重要,对于用户来说最终也是重要的。 开放源代码软件许可证为用户提供了他们本来没有的自由。

图片来源: 奎因多明布鲁夫斯基在Flickr

开源的定义

如果程序是开源的,其源代码可免费提供给其用户。 它的用户和任何其他人都有能力采取这个源代码,修改它,并分发他们自己的程序版本。 用户还能够按原样分发原始节目的许多副本。 任何人都可以将该程序用于任何目的; 没有软件的许可费或其他限制。 在OSI有“开源”更详细的定义在其网站上

例如,Ubuntu Linux是一个开源操作系统。 你可以下载Ubuntu,创建尽可能多的副本,并把它们给你的朋友。 您可以在无限量的计算机上安装Ubuntu。 您可以创建Ubuntu的安装光盘的混音和分发。 如果你特别积极,你可以下载一个程序的源代码在Ubuntu和修改它,创建自己的自定义版本的程序 - 或Ubuntu本身。 开源许可证允许您执行此操作,而封闭源许可证对您设置限制。

与开源软件相反的是封闭源软件,它有一个许可证,限制用户和保持源代码。

Firefox,Chrome,OpenOffice,Linux和Android是开源软件的一些流行示例,而Microsoft Windows可能是最流行的闭源软件。

开源与自由软件

开源应用程序通常是免费提供的 - 虽然没有什么可以阻止开发者为软件的副本收费,如果他们允许应用程序及其源代码的重新分配。

然而,这不是什么“自由软件”指的。 “自由”,在自由软件的意思是“ 自由的自由 ”,而不是“免费的啤酒。”自由软件阵营,由Richard Stallman和自由软件基金会的带领下,侧重于道德和使用软件的道德,可以由用户控制和修改。 换句话说,自由软件营关注用户自由。

richard-stallman

理查德·斯托曼。 通过图像Fripog在Flickr上

开源软件运动的创建是为了更加务实地选择这种类型的软件。 开源倡导者希望集中于使用开源软件的实际优势,这种软件将更多地吸引企业,而不是伦理和道德。

最终,开源和自由软件倡导者正在开发相同类型的软件,但他们对消息传递不同意。

许可证类型

许多不同的许可证由开放源代码项目,这取决于开发者更喜欢他们的程序中使用。

GPL或GNU通用公共许可证被许多开源项目(如Linux)广泛使用。 除了开源的所有上述定义之外,GPL的条款规定,如果任何人修改开源程序并分发衍生作品,他们还必须分发其衍生作品的源代码。 换句话说,没有人可以获取开源代码并从中创建封闭源代码程序 - 他们必须将其更改发布回社区。 Microsoft将GPL称为“病毒式”,因为它迫使包含GPL代码的程序发布自己的源代码。 当然,程序的开发人员可以选择不使用GPL代码,如果这是一个问题。

pidgin-license-agreement

其他一些许可证,如BSD许可证,对开发人员的限制较少。 如果程序根据BSD许可证获得许可,任何人都可以将程序的源代码合并到另一个程序中。 他们不必将其更改发布回社区。 有些人认为这比GPL许可更“自由”,因为它使开发人员可以自由地将代码合并到自己的封闭源程序中,而有些人则认为它是“自由的”,因为它取消了从派生程序的最终用户。

对用户的好处

这不是所有干燥,不重要的东西,只有开发人员。 开源软件最明显的好处是它可以免费。 上面的Ubuntu Linux的例子清楚 - 不像Windows,你可以安装或分发任意多的Ubuntu副本,没有限制。 这可能是特别有用的服务器 - 如果你正在设置一个服务器,你可以只安装Linux。 如果您正在设置虚拟化服务器集群,则可以轻松复制单个Ubuntu服务器。 您不必担心许可和允许运行多少Linux实例。

开源程序也更灵活。 例如,Windows 8的新界面令许多长期桌面Windows用户失望。 因为Windows是封闭源的,没有Windows用户可以采取Windows 7界面,修改它,并使其在Windows 8上正常工作。(一些Windows用户正在尝试,但这是一个艰苦的过程逆向工程和修改二进制文件。 )

图片

当像Ubuntu这样的Linux桌面引入了一个新的桌面界面,一些用户不是粉丝,用户有更多的选择。 例如,当GNOME 3发布时,许多Linux桌面用户同样被关闭。 有的拿着代码到旧版本,GNOME 2,并修改它,使之在最新的Linux发行版上运行-这是MATE 有的拿着代码GNOME 3并修改它,使之在某种程度上,他们的工作优先-这是Cinnamon 有些用户只是切换到现有的备用桌面。 如果Windows是开源的,Windows 8用户将有更多的选择和灵活性。 只是看看的CyanogenMod的Android的流行,社区驱动的分布,增加了功能和对新设备的支持。

开源软件还允许开发人员“站在巨人的肩膀上”并创建自己的软件。 Witness Android和Chrome操作系统,它们是基于Linux和其他开源软件构建的操作系统。 苹果的OS X的核心 - 以及iOS - 也是基于开源代码。 Valve正在努力将他们的Steam游戏平台移植到Linux,因为这将允许他们创建自己的硬件和控制自己的命运,在微软的Windows上是不可能的。


这不是一个详尽的描述 - 整本书已经写了这个主题 - 但你现在应该有一个更好的开源软件实际上是什么,为什么它对你有用。

赞 (0)
分享到:更多 ()