跳到主要内容

开源软件常见名词解释

  • 开源(Open Source):一种在软硬件开发、数据与信息共享中广泛采用的开放式协作模式,协作的产出物应符合开源许可证条款的要求。
  • 开源软件(Open Source Software,简称 OSS):源代码可以被公众自由使用、修改和分发的软件。
  • 自由软件(Free Software):强调用户自由使用、研究、修改和分发软件的权力,与开源软件理念相近,但侧重点不同。
  • 许可证(License):规定了开源软件的使用、修改和分发等条款的法律文件。
  • GPL(GNU General Public License):GNU 通用公共许可证,是一种常见的开源许可证,具有强 Copyleft 特性,要求基于 GPL 软件的衍生作品也必须使用 GPL 许可证发布。
  • AGPL(Affero GPL):强化网络服务的 GPL 变体协议。
  • LGPL(Lesser GPL):允许与闭源软件动态链接的 GPL 弱化版本。
  • Apache License:一种宽松的开源许可证,允许用户自由使用、修改和分发软件,同时保留原作者的版权。
  • BSD License:一种宽松的开源许可证,允许自由使用和修改代码,且允许闭源二次开发
  • MIT License:一种非常宽松的开源许可证,允许用户自由使用、修改和分发软件,只需保留版权声明。
  • Creative Commons(知识共享):一种非软件领域的开源内容许可协议,常用于文档、图片等创作共用。
  • 双许可证模式:同时提供开源和商业许可的盈利策略。
  • ASF(Apache Software Foundation):Apache 软件基金会,全球知名的非营利开源组织,管理 Apache 系列开源项目(如 Hadoop、Kafka)。
  • CNCF(Cloud Native Computing Foundation):云原生计算基金会,隶属于 Linux 基金会的子组织,致力于推动 Kubernetes 等云原生技术的开源项目。
  • FSF(Free Software Foundation):自由软件基金会,由 Richard Stallman 创建的组织,推动 GPL 协议和自由软件运动。
  • LFX(Linux Foundation):Linux 基金会,支持 Linux 及 CNCF 等重大开源项目的非营利组织。
  • ALC(Apache Local Community):Apache 本地社区。由 Apache 软件基金会支持的地区性开源社区组织,旨在推广 Apache 文化和开源协作模式。
  • CLA(Contributor License Agreement):贡献者许可协议,贡献者与项目所有者之间签订的协议,规定了贡献代码的使用权限。
  • DCO(Developer Certificate of Origin):开发者原创声明,替代 CLA 的轻量级贡献者认证机制。
  • Git:一种分布式版本控制系统,用于管理代码的版本和变更。
  • GitHub:全球最大的开源代码托管平台,基于 Git,提供代码托管、协作开发等功能。
  • Pull Request(拉取请求):在 GitHub 等平台上,开发者向开源项目提交代码变更请求的流程,需经审查后合并。用于将一个分支的代码合并到另一个分支。
  • Fork(复刻):在GitHub上,用户可以创建一个项目仓库的副本,用于自己的修改和开发。
  • Clone(克隆):将远程仓库的代码复制到本地计算机的操作。
  • Push(推送):将本地代码的修改提交到远程仓库的操作。
  • Pull(拉取):从远程仓库获取最新的代码变更并应用到本地仓库的操作。
  • Repository(代码仓库,简写为 Repo):存储和管理项目源代码和相关文件的版本控制单元(容器),例如 Git 仓库。其中,存储在本地工作空间的称为本地仓库,存储在远程服务器(如 GitHub)上的称为远程仓库。
  • Branch(分支):从主代码库中分出的独立开发线路,用于开发新功能或修复错误。
  • Merge(合并):将一个分支的代码合并到另一个分支的操作。
  • Commit(提交):将代码的更改保存到仓库中的操作。
  • Tag(标签):用于标记代码库中的某个特定版本。
  • Release(发布):通常指软件的一个版本发布,它可以是一个新功能的发布、错误修复、性能优化或者其他改进。当开发者完成了一系列的代码修改和测试后,会将这些变更整合到一个 Release 中,并发布给用户使用。
  • Contributor(贡献者):参与开源项目代码贡献、问题反馈或文档编写的参与者。
  • Committer(提交者):在开源项目中拥有代码仓库直接提交权限的核心贡献者。
  • Reviewer(审阅者):负责审查代码变更并决定是否合并的团队成员。
  • Maintainer(维护者):负责管理开源项目的整体方向、维护代码质量和协调贡献者工作的人员。
  • Owner(所有者):开源项目或组织的最高决策者(可以是个人或组织),通常拥有法律意义上的所有权。
  • PMC(Project Management Committee):项目管理委员会,Apache 项目中负责战略决策和社区治理的核心团队。
  • 开源社区(Open Source Community):由开源项目的开发者、用户和爱好者组成的社区。
  • 社会化编程(Social Coding):是一种开放、协作和共享的编程模式。其核心理念是将编程过程中的知识、经验和资源共享给更多的人,从而实现更高效、更优质的编程工作。这种模式通过网络平台(如 GitHub),使得全球各地的开发者能够轻松地协作、分享和讨论代码,也让开发者更加平等地参与和贡献开源项目。
  • Upstream(上游):指开源项目的原始代码库,衍生项目可通过贡献代码回馈上游。
  • 衍射作品(Derivative Work):基于现有开源项目修改或扩展而产生的新作品。
  • InnerSource(内部开源):在企业内部采用开源协作模式进行软件开发的方法。
  • 开源商业化:指将开源软件进行市场化运作,通过提供增值服务、技术支持等方式实现盈利。
  • SaaS(Software as a Service):软件即服务,一种通过互联网向用户提供软件服务的商业模式,开源软件也可以采用这种模式。
  • 软件供应链(Software Supply Chain):软件从开发到交付过程中涉及的所有组件、工具和流程的集合,涉及软件从开发到交付给用户的整个过程,包括代码的来源、构建、分发等环节。
  • 软件供应链攻击:通过篡改开源依赖库或工具链发起的网络安全攻击手段。
  • SBOM(Software Bill of Materials):软件物料清单,记录软件组成成分(如依赖库)的标准化清单,用于安全审计,以确保软件供应链的安全。
  • OSPO(Open Source Program Office):开源项目办公室,是一个企业/组织内部的部门,负责管理和指导该组织的开源活动,确保代码使用、分发、贡献等方面的合规性,并促进与开源社区的互动和参与。