开源意味着什么?

A business owner showing a customer the QR code for receiving payment.
开源概念允许任何感兴趣的人修改源代码。Cravetiger / Getty Images

要点

  • 开源软件包含源代码和编译版本,允许修改和自定义。
  • 开源软件的标准包括免费分发、包含源代码以及允许修改和再分发。
  • 开源软件的例子包括 Linux、Mozilla、Apache、PERL 和 PNG。

您购买或下载的大多数软件只提供编译后的即用版本。编译意味着开发者创建的实际程序代码,即源代码,已经通过一个称为编译器的特殊程序运行,该程序将源代码转换为计算机能够理解的形式(有关编译器的详细信息,请参阅C 语言编程如何工作)。修改大多数应用程序的编译版本极其困难,几乎不可能确切地看到开发者是如何创建程序的不同部分的。大多数商业软件制造商将此视为一个优势,可以防止其他公司复制其代码并用于竞争产品。这也使他们能够控制特定产品的质量和功能。

开源软件则处于光谱的另一端。源代码包含在编译版本中,并且实际上鼓励修改或自定义。支持开源概念的软件开发者认为,通过允许任何感兴趣的人修改源代码,该应用程序从长远来看会更有用且更少错误。

广告

要被软件开发行业视为开源软件,必须满足某些标准:

  • 该程序必须可以自由分发(尽管它可以是作为已售出软件包的一部分,例如 Red Hat 在下面的例子中对 Linux 所做的那样)。
  • 必须包含源代码。
  • 必须允许任何人修改源代码。
  • 修改后的版本可以再分发。
  • 许可证不得要求排除其他软件或干扰其他软件的运行。

让我们看一个开源软件的实际例子。1991年,芬兰赫尔辛基大学的学生 Linus Torvalds 基于 Minix(Unix 的一个派生版本)开发了一个新操作系统,他将其命名为Linux。Torvalds 根据 GNU 通用公共许可证发布了 Linux 0.02 版本,该许可证提供了开源软件的良好法律定义。世界各地有很多人下载了 Linux 并开始使用它。其中许多用户本身就是程序员,他们对 Torvalds 包含的源代码进行了修改。在接下来的三年里,Torvalds 收到了其他程序员修改的版本,并将许多更改整合到基准版本中,并于1994年发布了 Linux 1.0 版本。

希望使用开源软件的最终用户普遍担心缺乏保修和技术支持。由于软件的许可证鼓励修改和定制,因此几乎不可能提供支持。这就是为什么成立于1994年的红帽软件创建了“官方红帽 Linux”,并能够销售这种通常“免费”的软件。红帽为该软件包增加的主要价值是保修和技术支持。对于大多数企业而言,技术支持的保证是决定购买 Linux 而不是简单地免费下载它的关键因素。除了红帽,还有其他几家公司也打包了 Linux,通常附带额外软件,用于转售。

除了 Linux,Mozilla(网景浏览器核心)、Apache(Web 服务器)、PERL(Web 脚本语言)和 PNG(图形文件格式)都是非常流行的基于开源的软件示例。

以下是一些有趣的链接

广告

常见问题

为开源项目做贡献有哪些好处?
为开源项目做贡献有助于开发者提升技能、在社区中获得认可并与他人协作完成有意义的项目。
开源许可证与专有软件许可证有何不同?
开源许可证允许用户自由使用、修改和分发软件,而专有许可证则限制这些自由,通常需要购买或订阅。

广告

加载中...