本文已使用 Google Cloud Translation API 自动翻译。
某些文档最好以原文阅读。
开源软件 (OSS) 是以源代码形式提供的计算机软件,任何人都可以学习、修改和分发。 OSS 通常作为公共协作创建并免费提供。它通常以公开、协作的方式开发。 OSS 是开源开发最突出的例子,经常被比作用户生成的内容或开放内容运动。
“开源”一词指的是人们可以修改和共享的东西,因为它的设计是可以公开访问的。该术语起源于软件开发的上下文,用于指定创建计算机程序的特定方法。开源软件不同于专有软件,专有软件的版权受到限制,源代码通常对用户隐藏。
开源软件是以源代码形式提供的计算机软件,任何人都可以学习、修改和分发。它通常以公开、协作的方式开发。开源软件的源代码通常是免费提供的,任何人都可以查看、修改和重新分发代码。这使得任何人都可以为软件的开发做出贡献,并且软件可以随着时间的推移而发展。
开源软件通常是作为公共协作创建的,这使其与专有软件不同,在专有软件中,软件的版权受到限制,源代码通常对用户隐藏。开源软件通常以分布式方式开发,许多不同的贡献者在同一个项目上工作。
开源软件通常是使用分布式版本控制系统开发的,例如 Git 或 Mercurial。这使开发人员可以轻松地在同一个项目上进行协作,并轻松跟踪对源代码的更改。
开源软件通常在允许用户自由修改和重新分发软件的许可下发布。常见的开源许可证包括 GNU 通用公共许可证 (GPL)、MIT 许可证和 Apache 许可证。
开源软件的概念最早由计算机程序员和开源倡导者 Eric S. Raymond 于 1998 年提出。 Raymond 认为传统的闭源软件开发模型效率低下,并提出了一种基于开源理念的替代模型。
从那时起,开源软件变得越来越流行,许多大公司和组织在他们的项目中使用开源软件。在 2000 年代,随着流行的 Linux 操作系统的推出和 Apache 网络服务器的开发,开源运动势头强劲。
开源软件有几个关键特性,使其不同于专有软件。
首先,开源软件以源代码形式提供,这意味着任何人都可以查看、修改和重新分发代码。这使得任何人都可以为软件的开发做出贡献,并且软件可以随着时间的推移而发展。
其次,开源软件通常以分布式方式开发,许多不同的贡献者在同一个项目上工作。这使开发人员可以轻松地在同一个项目上进行协作,并轻松跟踪对源代码的更改。
第三,开源软件通常在允许用户自由修改和重新分发软件的许可下发布。常见的开源许可证包括 GNU 通用公共许可证 (GPL)、MIT 许可证和 Apache 许可证。
最流行的开源项目之一是 Linux 操作系统。 Linux 是一个基于 Linux 内核的开源操作系统,最初由 Linus Torvalds 于 1991 年开发。Linux 内核在 GNU 通用公共许可证 (GPL) 下发布,允许任何人查看、修改和重新分发源代码。
Linux 内核是 Linux 操作系统的核心,由庞大的开发者社区开发。社区不断改进和更新 Linux 内核,它被用于从智能手机到服务器的许多不同类型的设备。
开源软件有几个优点和缺点。
开源软件的主要优点之一是它通常比专有软件更可靠。开源软件由大型开发人员社区开发,这意味着可以快速识别和修复任何错误或安全问题。
开源软件的另一个优势是它通常比专有软件更易于定制。开源软件以源代码形式提供,这意味着任何人都可以查看、修改和重新分发代码。这使得用户可以自定义软件以满足他们的特定需求。
但是,开源软件也有一些缺点。主要缺点之一是很难找到对开源软件的支持。由于开源软件是由大量开发人员开发的,因此如果您对软件有疑问,可能很难寻求帮助。
#争议
开源软件一直是一些争议的主题。有些人认为开源软件不如专有软件安全,因为任何人都可以查看和修改源代码。其他人则认为开源软件更安全,因为社区可以迅速识别并修复任何安全问题。
此外,有些人认为开源软件不如专有软件可靠,因为它是由大量开发人员开发的。其他人则认为开源软件更可靠,因为社区可以迅速识别并修复任何错误或问题。
开源软件与其他几种技术密切相关,例如用户生成的内容和开放内容运动。
用户生成的内容是由用户创建的内容,例如博客文章、视频和图像。开放内容运动是促进内容共享和重用的运动,例如知识共享和自由软件基金会。
开源软件还与开源硬件相关,开源硬件是在开源许可下设计和发布的硬件。开源硬件经常用于 DIY 项目,并且越来越受欢迎。
开源软件经常被比作用户生成的内容和开放内容运动。但是,开源软件与这些其他技术之间存在一些关键差异。
用户生成的内容通常由个人创建,而开源软件通常由大型开发人员社区创建。此外,用户生成的内容通常根据版权许可发布,而开源软件通常根据开源许可发布。
最后,用户生成的内容通常是不可修改的,而开源软件通常是可修改的。这使得任何人都可以为软件的开发做出贡献,并且软件可以随着时间的推移而发展。