主页

topics

开源

什么是开源软件?
借助 IBM 在开源基础上进行构建 订阅 Think 时事通讯
电脑显示器、服务器、云朵、点的组合拼贴插图
什么是开源软件?

开源软件是指通过开放式协作来开发和维护的软件。任何人均可按照个人喜欢的方式来使用、检查、修改和重新分发此类软件,且通常无需付费。

开源与专有或闭源软件应用程序(例如 Microsoft Word 或 Adobe Illustrator)形成鲜明对比。创作者或版权持有者会将专有或闭源软件出售给最终用户,而除非版权持有者另行规定,否则最终用户不得编辑、增强或重新分发该产品。

“开源”一词还泛指一种基于社区的方法,该方法可通过开放式协作、包容性、透明度和频繁公开更新来创建任意知识产权(例如,软件)。

利用 IBM® Z 上的 AI 揭开数据的神秘面纱

了解 AI 可以解决的常见客户痛点、目前可用的功能以及 IBM Z 为何是理想的 AI 平台。

相关内容 注册以获取量子安全分析报告
开源软件简史

直到 20 世纪 70 年代中期,计算机代码才被视为隐含在计算机硬件操作中,而非受版权保护的特有知识产权。组织会编写自己的软件,而代码共享则是一种常见做法。

版权作品新技术应用委员会成立于 1974 年,且总结认为软件代码是适用于版权保护的一种创意作品。此论断推动了作为一个行业的独立软件发行业的发展,而专有源代码则是其中的主要收入来源。随着个人计算将应用程序引入各大公司和众多家庭,软件市场竞争变得异常激烈,而软件发行商对其产权受到侵权的警惕性也变得越来越高。

对专有软件约束和限制的某种形式的反抗始于 1983 年。彼时,程序员 Richard Stallman 对用户无法以他们认为合适的方式来定制专有软件从而完成其工作的观念感到愤怒。Stallman 认为“软件应该免费提供—就像说话一样,而不是像啤酒那样”,同时他还倡导可免费定制软件这一观念。

Stallman 创立了“自由软件基金会”并继续推动 AT&T 旗下 UNIX 操作系统的开源替代方案以及其他应用程序的开发工作。此外,他还首创了反版权软件许可证(即,GNU 通用公共许可证 (GPL)),该许可证要求所有已增强其源代码的人员同样向所有其他人员免费发布其编辑版本。

Eric S. Raymond 于 1997 年发表的名为“大教堂和集市”的文章被视为自由软件运动的另一分水岭。Raymond 将专有软件开发典型的封闭、自上而下的方法(其中所有开发工作均由一个核心小组(他称之为“教堂”)来处理)与通过互联网来开放、自由共享的公共开发(“集市”)进行了对比。此后不久,Netscape Corporation 将其 Mozilla 浏览器代码作为开源软件进行了发布,而开源运动自此也实现了合法性。

由于很多人认为 Stallman 的“免费软件”一词不适当地强调了“免费”是软件的主要价值,因而在 1999 年采用了“开源”一词。“开源代码促进会”的创建便是为了倡导这一理念;此外,该组织还通过开源定义为行业建立了基本规则,同时还负责托管合规的开源许可证。如今,“免费软件”、“开源软件”、“免费开源软件”和“免费或自由开源软件”均指同一对象:源代码可供公众使用和定制的软件。

企业和个人计算中的开源

如今,开源软件已在计算领域发挥着至关重要的作用,而开源技术则为互联网、商业计算和个人计算打下了基础。现在,几乎所有计算设备均包含多种开源代码,而这些代码通常会由开发人员用于执行各种基本操作以及更高级的功能。

最流行的部分开源软件应用程序包括:

  • Linux 操作系统,它是 UNIX 操作系统的开源替代方案

  • Mozilla Firefox,一款最初基于 Netscape Navigator 的 Web 浏览器

  • LibreOffice,可与 Microsoft Office 媲美的一套办公自动化应用程序

  • GIMP(GNU 图像处理程序),Adobe Photoshop 的一款开源替代方案

  • VLC 媒体播放器,一款用于观看视频的跨平台应用程序

开源程序也广泛应用于网络、企业和云计算领域。IT 专业人员认为在其组织的部署中最常见的开源软件类别包括了:

  • 编程语言和框架

  • 数据库和数据技术

  • 操作系统

  • 基于 Git 的公共存储库

  • 适用于人工智能、机器学习或深度学习的框架

用户和企业为何会选择开源

选择开源软件的原因可谓因人而异、因组织而异。很多情况下,最终用户完全不知道他们的计算机或移动设备上运行了哪些开源程序。最终用户下载 Mozilla Firefox 浏览器等免费应用程序或 Android 应用程序的情况也十分普遍。这些用户只想获取该软件的功能,而无意重写甚至查看源代码。

另一方面,公司可能会选择开源软件而非专有软件,因为前者成本低廉(或完全免费)、可灵活定制源代码,或是存在支持该应用程序的大型社区。专业或业余程序员可能会自愿将其开发与测试技能提供给开源项目,而此举通常旨在提升其个人声誉并与该领域的其他人员建立联系。眼下,各大公司为开源项目提供带薪员工以增添开源软件开发的活力并帮助确保产品的高质量已成为一种普遍现象。

虽然开源产品可为公司节省许可成本,但它们也可能会产生其他成本,而此类成本通常涉及网络集成、最终用户与 IT 支持以及通常包含在专有软件中的其他服务。尽管如此,很多公司却认为企业开源软件至少与专有软件一样可靠和安全,且对开源解决方案感到更为满意;这是因为,这些公司可检查程序代码并准确了解要添加到自身计算基础设施中的内容。

开源软件是如何开发的

开源开发模式涵盖了方方面面。大量开源程序均由独立程序员或小型程序员团队来发起。例如,Guido van Rossum 表示:他开始研究流行的 Python 编程语言的原因在于他在 1989 年的圣诞假期当周有大量空闲时间。同样,Apache Web 服务器最初也是由一小群程序员共同开发的,它旨在增强最初由 Robert McCool 在其本科生阶段在某一超级计算项目中编写的服务器软件。

随着这些项目以及其他类似开源项目的成熟,它们已涉及成千上万的程序员,而这些程序员则贡献了无数行代码且负责测试软件、编写文档、构建项目网站等等。

另一方面,Kubernetes 容器编排平台则由 Google 工程师发起,且作为最初用于平衡 Google 服务器工作负载的内部技术的一项开源实现。Google 通过在 Linux 基金会内创建了一个名为“云原生计算基金会”的新联盟,从而将该项目引入开源社区。自那时起,数以千计的开发人员便致力于这一不断发展的内核,其中包括各大计算机公司的代表。

随着时间的推移,生态系统必须能支持开源软件项目。GitHub、Bitbucket、SourceForge 和 Google Code 等代码托管服务可提供中央存储库、版本控制和其他功能,从而使不同的分散工作组能协作处理和管理开源项目。其中,仅 GitHub 便已注册 8,300 万名开发人员以及超过 2,000 万个开放项目存储库,且其中每个存储库均代表某一开源项目的一个特有分支。

如今,很多非营利组织(例如,自由软件基金会和开源代码促进会)等纷纷开始支持并资助开源项目的持续维护。此外,还有数十个特定于应用程序的基金会(例如 Linux 基金会)支持特定的开源程序以及支持这些技术的相关项目。

开源软件和知识产权

“开源”和“专有”代表某一应用程序中所含知识产权 (IP) 的所有权的替代方法。通过开源,IP 旨在使公众受益,而知识产权的所有权则不附带任何盈利动机。相比之下,专有软件可通过收取订阅费或专有许可费将知识产权的价值货币化。

然而,开源软件的背后思想主要并非传播反利润或反资本主义的信息,而是通过其用户社区的运作,该软件可通过为更多用户提供更大价值从而自然而然地发挥其最大潜力。作为历史上最大规模的开源项目,互联网最初被用于分享学术论文;而在此狭隘用例之外的一切都是无数人设想和实现新可能性所带来的结果。

虽然开源软件免费向公众提供,但开源软件并不属于公共领域公共领域是知识产权的其中一个法律类别,且不附带任何所有权。通过对传统版权的巧妙改造,开源软件创建者首创了所谓的“反版权”;该机制允许公众无限制地使用、更改和重新分发源代码,但禁止他人将基于此代码的作品制作成受版权保护的专有软件。然而,如今却有 100 多种不同类型的开源软件许可证,而其中某些则明确允许基于开源代码而构建的衍生作品获得版权并进行销售。此现象为那些创建开源软件的人群扩大了商业机会。

开源软件许可证

同样,Stallman 的 GPL 规定所有人均能以其认为合适的方式重写他的软件,只要由此产生的代码是免费发布以供所有人使用的。通过此方式,GPL 反版权许可证创建了一种新的准公共领域知识产权,但由原始版权所有者向其施加了可通过法律途径来执行的限制,以免他人在后续提出针对限制性所有权的主张。

从那时起,很多开源软件许可证便应运而生,而“开源促进会”则推出了 100 多个已批准的开源许可证。其中部分许可证允许通过开源代码来创建专有产品。

开源许可证有时会被归类为“宽容型”,即允许用户对自己的作品进行版权保护。或者,有时它们也被归类为“保护性”,如同“反版权”。MIT 和 BSD 开源许可证是最常用的宽松型许可证,而 GPL 则仍是最常用的保护性反版权许可证之一。很多替代许可证均与 GPL 或 MIT 兼容,这意味着根据此许可证编写的软件代码可在使用 GPL 或 MIT 许可证的其他应用程序中使用。

开源商业模式

创建开源软件虽然看似是一项高尚的事业,甚至可谓慈善事业,但对其进行创建、维护和发展却涉及若干工作,而完成这些工作则关乎金钱。幸运的是,开源项目以及围绕它们来打造的公司可通过多种方式实现蓬勃发展。

其中一种途径是向基金会进行慈善捐款。企业有兴趣为开源软件提供支持,因为开源软件可提供非常重要的功能从而节省大量成本;同时,企业还会频繁捐款,甚至派遣带薪员工前去参与开源项目。但是,此举的主要目的是长期维护该技术,但无法为开源项目带来利润。

更常见的商业模式则是向客户收取享受支持和专业知识的费用。1993 年,Red Hat 开始销售其 Linux 操作系统的企业再发行版,以便向客户收取享受支持和附加功能的费用,从而专门用于解决企业在部署未经策划且持续更新的操作系统时可能遇到的问题。2012 年,Red Hat 成为首家营收突破 10 亿美元的开源软件公司;2019 年,IBM 以 340 亿美元的价格收购了 Red Hat,而这也是历史上最大宗的软件收购案。

WordPress 最初是一个博客平台,现在则被广泛用于构建、管理和托管网站。在运作方面,WordPress 是一个基于云或软件即服务的平台,并会向客户收取针对网络托管、支持和附加站点功能(例如,电子商务功能或 SEO 工具)的分级订阅费用。

其他开放软件创建者不会向其软件收取任何费用,但却会因其软件产生的流量而获得可观收入。例如,GitHub 通过其站点上显示的广告来赚取收入,而 Mozilla Firefox 则会通过其支持的搜索引擎而获得收入。

相关解决方案
IBM Cloud 上的 Red Hat 软件

IBM 与 Red Hat 解决方案可提高工作效率、降低成本并改善业务成果。

深入了解 IBM 与 Red Hat 解决方案
IBM LinuxONE

IBM LinuxONE 是一款企业级 Linux 服务器,它融合了 IBM 在构建企业级系统方面的丰富经验,以及 Linux 操作系统的开放性。

深入了解 LinuxONE
Linux on IBM Z 

IBM Z 大型机平台上的 Linux 操作系统可在混合多云上提供数据隐私与网络安全功能。

深入了解 Linux on IBM Z
Enterprise Linux on IBM Power

借助 Enterprise Linux on IBM Power,您可通过行业领先的云原生部署选项来放大开源技术的诸多优点,其中包括可靠性、安全性和可扩展性。

了解 Linux on Power
资源 IBM 的开源技术

从区块链到容器,再到 AI 和操作系统,我们的开发人员正在创建新兴的开源项目,并围绕这些项目提供代码、文档和支持材料。

您的开源软件是否安全?

提升您的软件供应链可显著降低被入侵的风险。

IBM watsonx 的开源生态系统

开发人员、架构师和系统管理员选择 IBM watsonx 等基于开源的产品来体现他们在关键战略性开源社区中的需求。探索助力 IBM 的 AI 平台成为高性能云原生平台的核心开源技术。

采取后续步骤

借助 Red Hat OpenShift on IBM Cloud,开发人员能够以快速、安全的方式在 Kubernetes 集群中构建和部署容器化工作负载。减少涉及安全管理、合规性管理、部署管理和持续生命周期管理的繁琐、重复性任务。

深入了解 Red Hat OpenShift on IBM Cloud 免费试用