1.什么是开源软件?
免费和开源软件
• “免费”是什么意思?
• 提供源代码是否使其开源?
• 谁制作 FOSS? 他们为什么这样做?
• FOSS 是否仅适用于狂热者和爱好者?
• 你能用FOSS 赚钱吗?
• FOSS 是否可以制造更好的软件?
我们在这里给出官方的定义
开源定义
介绍
开源不仅仅意味着访问源代码。开源软件的分发条款必须符合以下标准:
-
免费再分发
许可证不得限制任何一方将软件作为包含来自多个不同来源的程序的聚合软件发行版的组件出售或赠送。许可证不得要求此类销售的版税或其他费用。 -
源代码
该程序必须包含源代码,并且必须允许以源代码和编译形式分发。如果某种形式的产品没有与源代码一起分发,则必须有一种广为人知的方法来获取源代码,其复制成本不超过合理的复制成本,最好是通过互联网免费下载。源代码必须是程序员修改程序的首选形式。不允许故意混淆源代码。不允许使用中间形式,例如预处理器或转换器的输出。 -
衍生作品
许可证必须允许修改和衍生作品,并且必须允许它们按照与原始软件许可证相同的条款进行分发。 -
作者源代码的完整性
只有当许可证允许在构建时使用源代码分发“补丁文件”以修改程序时,许可证才能限制源代码以修改形式分发。许可证必须明确允许分发由修改后的源代码构建的软件。许可证可能要求衍生作品带有与原始软件不同的名称或版本号。 -
不歧视个人或群体
许可证不得歧视任何个人或群体。 -
不歧视奋进领域
许可证不得限制任何人在特定领域使用该程序。例如,它可能不会限制该程序用于企业或用于基因研究。 -
许可的分发
程序附带的权利必须适用于程序重新分发的所有人,而无需这些方执行额外的许可证。 -
许可证不得特定于产品
附加到程序的权限不得依赖于该程序是否是特定软件发行版的一部分。如果程序是从该发行版中提取的,并在程序的许可条款内使用或分发,则程序被重新分发的所有各方都应具有与原始软件发行版一起授予的权利相同的权利。 -
许可不得限制其他软件
许可证不得对与许可软件一起分发的其他软件施加限制。例如,许可证不得坚持在同一介质上分发的所有其他程序必须是开源软件。 -
许可证必须保持技术中立
许可证的任何规定都不得基于任何单独的技术或界面风格。
关于开源的几个概念:
1.分叉
分叉权
• 几乎是 FOSS 的定义
• 必须保证独立性
不愿分叉
• 如果需要分叉,则说明有问题
• 分叉通常表示对项目不满意
2.
分支——临时分叉
• 分支是用于合并的分支
• 一些分支是长期存在的,大多数是短暂存在的
• 与分叉不同,鼓励分支
新的操作系统发行版是分叉吗?
• 取决于共享代码的意图
3.信用
高度重视信用
• 不赞成擅自获取代码
• 信用系统内置于大多数 FOSS 许可证中
• 与专有项目形成鲜明对比