什么是开源软件?了解允许您修改其代码的非专有软件

什么是开源软件?

开源软件是非专有软件,任何人都可以修改、增强或查看其背后的源代码。它可以让程序员在由不同团队、公司和组织创建的项目上工作或协作。

开源软件作者并不将他们的创作视为专有的,而是根据许可发布他们的软件,这些许可授予用户查看、复制、学习、更改和共享其代码的愿望和诀窍。

开源软件的工作原理

OSS 在公共存储库中共享,授予想要处理源代码的任何人的访问权限。然而,开源软件往往带有分发许可证,它确定了人们如何交互、修改和共享 OSS。

一旦对源代码进行了更改,OSS 应表明这些更改以及使用哪些方法进行更改。此外,根据许可,由此产生的 OSS 可能需要也可能不需要是免费的。因此,大多数开源软件都是免费的,但有些需要预付费用或订阅费。

开源软件示例

网上有许多开源软件的例子,许多流行的应用程序允许用户进行改进和修改。虽然并非程序员所做的所有更改和改进都会向公众开放,但使用这些源代码的能力对某些人来说可能具有教育意义和乐趣。

开源软件许可证的类型

虽然开源软件几乎允许所有程序员使用和修改它,但它确实带有分发许可证。有些可能要求修改程序的任何人无偿发布新代码。

最受欢迎的许可证包括:

  • 麻省理工学院执照
  • GNU 通用公共许可证 (GPL) 2.0
  • GNU 通用公共许可证 (GPL) 3.0
  • Apache 许可证 2.0
  • BSD 许可证 2.0(3 个条款,新的或修订的)

开源软件的优势

与专有同行相比,使用开源软件具有许多优势,尤其是对于刚刚涉足该行业的企业和组织而言。

  • 开源软件往往更加灵活,因为它为程序员提供了多种解决问题的方法并鼓励创造性的解决方案。
  • OSS 上的改进和错误修复发生得更快。由于开源软件允许协作,因此可以更快地实施问题和改进。
  • 这是划算的。一般而言,专有软件需要内部员工处理其源代码以保护信息的私密性。开源软件允许那些与项目无关的人访问,而其作者不必为进一步的开发付费。
  • 你可以吸引更好的人才。如果一家小型企业推出开源软件,所有程序员查看和修改它的能力可以让该组织招聘到特别有才华的员工。

开源软件的缺点

  • 开源软件可能更难使用,因为它们的用户友好界面或功能可能不是所有程序员都熟悉的。
  • 如果用于创建开源软件的硬件并非对所有使用它的程序员都可用,则可能会出现兼容性问题。这也可能推高项目成本。
  • 开源软件不具有与专有应用程序相同的保证和赔偿。这可能会成为一个问题,因为开源软件可能无法提供真正的侵权保护。
正文完