开源、闭源与代码可见

开源、闭源与代码可见
阿呆前言
作为非码农的我来说,第一次从开源软件了解到Github。,从而错误的将Github里所有项目都默认视为开源,免费。但随着不断的了解我意识到这是错误的,所以写下这篇文章对新的认知总结,其中可能也会存在错误。积极欢迎各位指出问题。
认识开源、闭源与代码可见
开源(Open Source)
代码不仅公开,还通过OSI认证的开源许可证(如 MIT、GPL(GPLv3、GPLv2)、Apache)明确赋予用户四大自由:
- 使用自由:可免费用于任何目的(包括商业)。
- 修改自由:可根据需求调整代码。
- 分发自由:可分享原始代码或修改后的版本。
- 衍生作品自由:允许基于原代码开发新项目(需遵守许可证规则)。
特性 | MIT | GPL | Apache 2.0 |
---|---|---|---|
自由度 | 最宽松,几乎无限制 | 强约束(Copyleft) | 较宽松,但有专利保护条款 |
衍生作品要求 | 无需开源 | 必须开源(同 GPL 协议) | 无需开源 |
专利授权 | 无明确条款 | 隐含专利授权 | 明确专利授权 |
版权声明保留 | ✅ 必须保留原协议和版权声明 | ✅ 必须保留协议和版权声明 | ✅ 必须保留协议、版权和修改声明 |
代码公开(Source Available)
仅表示代码可以被任何人查看(如 GitHub 的公开仓库),但未明确授予用户使用、修改或分发的法律权利。
- 示例:某公司公开了旧版软件的代码,但声明“仅供学习参考,禁止商业使用”。
闭源(Closed-Source Software)
也称为专有软件(Proprietary Software),源代码不向公众开放,且用户的使用、修改、分发等权利受到严格限制的软件。
结论
- 协议决定性质:开源或闭源是软件的法律性质,由协议(许可证或 EULA)定义。
- 代码公开是技术状态:独立于法律授权,仅说明代码是否可见。
- 关键区别:
- 开源 = 代码公开 + 许可证赋予自由。
- 闭源 = 代码可能公开/私有 + 限制性协议。
- 代码公开 = 纯技术可见性(无法律授权)。
在Github上进行区分
开源/代码公开 VS 闭源
- 公开仓库(Public Repository):代码对所有人可见
- 私有仓库(Private Repository):代码仅对特定用户可见,通常是闭源的(用户无权限访问)。
开源 VS 代码公开
- 检查根目录的
LICENSE
文件:大多数开源项目会在仓库根目录包含一个LICENSE
、LICENSE.md
或LICENSE.txt
文件,明确声明授权条款。 - GitHub 自动检测:在仓库主页的右侧边栏,查看 “About” 栏,如果有许可证信息(如 MIT、GPL-3.0、Apache-2.0 等),则为开源项目。
- 无许可证文件:即使代码公开,若没有明确许可证,则默认受版权保护(视为闭源或“仅代码可见”)。
评论
匿名评论隐私政策
✅ 你无需删除空行,直接评论以获取最佳展示效果