目录
第 1章 开源软件的起源 1
1.1 开端 1
1.1.1 啊,UNIX操作系统 2
1.1.2 不再有免费的午餐了吗 4
1.1.3 PC是一种不同的文化 5
1.1.4 打破社区 7
1.1.5 自由软件进入混战 8
1.1.6 建立自由的基础 9
1.2 零散的硬件和软件 10
1.2.1 垂直筒仓无处不在 10
1.2.2 筒仓转向自己的一边 11
1.2.3 大众市场的哪种操作系统将会胜出 13
1.2.4 Microsoft公司放手一搏 14
1.2.5 Windows NT操作系统蓄势待发 15
1.3 互联网进入主流 16
1.3.1 从纵向扩展到横向扩展 16
1.3.2 互联网服务器需要操作系统 17
1.4 加入Linux操作系统阵营 18
1.4.1 一个新的*NIX 18
1.4.2 Linux操作系统越来越流行 19
1.4.3 黯然失色的UNIX操作系统 20
1.5 Linux操作系统无可避免吗 20
1.6 开源加速 22
1.6.1 新的企业IT模型 22
1.6.2 诞生于网络 23
1.6.3 是构建还是购买 24
1.6.4 打破现状 24
1.6.5 从颠覆到创新发生的地方 26
1.6.6 生态系统的崛起 27
1.6.7 打破单体应用 27
1.6.8 Linux操作系统和开源已经到来 28
第 2章 从“自由”到“开源”,再到产品 31
2.1 单词的含义很重要 31
2.1.1 若为自由故 32
2.1.2 “开源”的诞生 33
2.1.3 实用主义和商业主义 33
2.2 项目和产品 35
2.2.1 上游和下游 35
2.2.2 项目与产品相互依赖 36
2.2.3 支持是什么 37
2.2.4 降低风险 38
2.2.5 支持完整的生命周期 38
2.2.6 通力合作 39
2.2.7 安全与风险的交集 39
2.3 确保开源安全 40
2.3.1 什么是信息安全 40
2.3.2 相同的商业服务机制——安全补丁和自动化部署 41
2.3.3 开源对安全性的影响是好是坏 41
2.3.4 代码会帮助坏人吗 42
2.3.5 或者“多眼”是秘诀吗 43
2.3.6 换个角度思考风险 44
2.3.7 确保供应链安全 45
2.3.8 进入DevSecOps 46
2.3.9 什么是DevSecOps 47
2.3.10 可信云 48
2.3.11 机器学习的前景 50
2.4 如何开始 50
第3章 法律相关的问题 51
3.1 版权如何运作 52
3.1.1 软件可以有版权吗 53
3.1.2 版权进入软件领域 54
3.1.3 开源软件也是有版权的 54
3.1.4 如何使作品进入公有领域 55
3.1.5 公有领域的替代品 56
3.2 许可证制度到底是什么 57
3.2.1 许可证(可能)不是必要的 57
3.2.2 为什么需要发放许可证 58
3.3 开源许可证如何运作 60
3.3.1 开源许可证的分类 60
3.3.2 保护共享知识 61
3.3.3 透过版权的泥沼看清本质 62
3.3.4 permissive许可证的收益 62
3.3.5 推动参与是关键 63
3.3.6 进入云端 64
3.3.7 谁可以使用 65
3.3.8 非开源许可证 65
3.3.9 道德许可证 66
3.3.10 许可证不是目标 67
3.4 保持开源的合规性 68
3.4.1 将控制措施落实到位 68
3.4.2 具体的政策是什么 68
3.4.3 一个持续的过程 69
3.5 商标 69
3.5.1 名称包含什么 70
3.5.2 项目或产品 72
3.5.3 商标所有权和注册 73
3.5.4 商标的影响力 75
3.6 专利 76
3.6.1 专利的权利要求 77
3.6.2 如何确定是否侵权 78
3.6.3 创建专利池 79
3.6.4 专利和许可 80
3.7 商业秘密 81
3.8 关联性和重要性 81
第4章 开源开发模式 83
4.1 开源也关乎开发 83
4.1.1 集中与分布式控制 84
4.1.2 不同的开源方式 85
4.1.3 一个警告 85
4.2 参与开源项目 86
4.2.1 启动一个开源项目 87
4.2.2 什么样的开源项目算成功 88
4.2.3 增加现有开源项目的数量 89
4.2.4 创建开源管理办公室 91
4.3 管理项目的模型 93
4.3.1 谁做决定 94
4.3.2 有哪些原则 98
4.3.3 开放治理 100
4.4 谁在社区中 102
4.4.1 领导者 102
4.4.2 维护者 102
4.4.3 提交者 103
4.4.4 贡献者 103
4.4.5 为什么你应该考虑比编码人员更多的事情 104
4.4.6 用户参与其中 106
4.4.7 用户成为贡献者 106
4.5 如何鼓励新的贡献者 107
4.5.1 保持控制——一个反面模式 107
4.5.2 降低工具的门槛 109
4.5.3 提供指导 109
4.5.4 文化的重要性 110
4.6 维护社区的步骤 111
4.6.1 快速响应 111
4.6.2 文档——一个简单的入口 112
4.6.3 模块化的重要性 112
4.7 沟通,沟通,沟通 113
4.7.1 在一起的极限 113
4.7.2 分布式团队的最佳实践 114
4.7.3 关于人 115
4.7.4 也关于工具 116
4.7.5 虚拟的极限 117
4.8 决定你是否成功 118
4.8.1 度量会改变事物 119
4.8.2 真正重要的是什么 120
4.8.3 数量不一定带来质量 120
4.8.4 这些数字意味着什么 121
4.8.5 各尽其能 122
4.8.6 了解社区柔性的一面 122
4.9 回到集市 124
4.9.1 这是一个有点自由散漫的过程 125
4.9.2 开源是重复的 125
4.9.3 社区让它发挥作用 126
4.10 为什么开发模式很重要 127
第5章 开源与过去的联系 129
5.1 驱动开源的多种因素 129
5.2 创新 130
5.2.1 通过“集体发明”进行创新 130
5.2.2 开放经济学 131
5.2.3 协同创新的优势 133
5.2.4 知识是如何被共享的 134
5.3 合作与交流 134
5.3.1 沟通的局限性 135
5.3.2 沟通如何影响软件架构 136
5.3.3 模块化通常更好 137
5.3.4 开源贡献者如何交互 138
5.4 参与 140
5.4.1 参与者如何开始 140
5.4.2 入职和指导 141
5.5 动机 142
5.5.1 开源动机研究 142
5.5.2 外在动机 143
5.5.3 内在动机 144
5.5.4 内化的外在动机 145
5.5.5 我们能从中学到什么 146
5.6 度量 147
5.6.1 为什么要度量 147
5.6.2 度量对行为的影响 148
5.6.3 直接度量的局限性 148
5.6.4 度量目标的迷思 149
5.6.5 理解社区运行状况 150
5.6.6 更多的文化之光 151
5.6.7 需要评估的12个领域 152
5.6.8 更广阔的生态视野 154
5.7 反思和告知 155
第6章 商业模式与加速发展 157
6.1 如何出售自己捐赠的东西 158
6.2 是否存在“开源商业模式” 159
6.2.1 商业模式的类别 159
6.2.2 寻找平衡点 160
6.2.3 用免费软件构建销售漏斗 162
6.2.4 这对开源意味着什么 162
6.2.5 核心开源与开放源代码 163
6.2.6 你是否从开源开发模式中获益 165
6.3 采用“开源开发模式”的企业软件 166
6.3.1 独立软件供应商的崛起 166
6.3.2 开源支持的出现 167
6.3.3 Linux发行版出现 168
6.3.4 订阅——不仅仅是“支持” 169
6.3.5 专注于“核心竞争力” 170
6.3.6 订阅与激励相结合 171
6.3.7 云服务带来的转变 172
6.4 从竞争到合作 172
6.4.1 合作竞争概念的产生 173
6.4.2 为什么合作竞争不断增长 174
6.4.3 开源——受益者和催化剂 175
6.4.4 合作竞争与标准 176
6.5 对速度的需要 177
6.5.1 从物理到虚拟 177
6.5.2 信息技术的消费化 178
6.6 DevOps的崛起 179
6.6.1 DevOps起源故事 179
6.6.2 DevOps——不仅仅是敏捷 181
6.6.3 将不同的关注概念进行抽象 181
6.6.4 站点可靠性工程师 182
6.7 开源和DevOps 183
6.7.1 平台和工具 183
6.7.2 流程 185
6.8 无处不在的开源 191
第7章 目前开源面临的问题 193
7.1 IT行业已经改变 193
7.1.1 “云”的兴起 194
7.1.2 AWS的故事 196
7.1.3 公有云服务是唯一的未来吗 198
7.1.4 将计算分布到(许多)边缘 199
7.1.5 为什么要分布式 200
7.1.6 混合云 201
7.2 环境的改变对开源意味着什么 202
7.3 用户想要什么 204
7.3.1 新的捆绑包 205
7.3.2 用户需要便利 206
7.4 维持正反馈回路 208
7.4.1 项目 209
7.4.2 产品和解决方案 210
7.4.3 利润和更广泛的价值 210
7.5 打破价值链 211
7.5.1 软件正普遍贬值 211
7.5.2 这在开源领域一直是个大问题 212
7.5.3 重心转移 213
7.5.4 软件和服务怎么办 214
7.5.5 这是个问题吗 214
7.5.6 精神食粮 216
7.5.7 生态系统很重要 217
7.6 这不仅仅是代码的问题 220
第8章 开源的机遇和挑战 221
8.1 开放数据 221
8.1.1 从数据中获取价值 222
8.1.2 一份开放的地图 223
8.1.3 通过数据实现透明度 224
8.1.4 数据的所有权 226
8.1.5 维护隐私 227
8.2 开放信息 229
8.2.1 可读写网络 230
8.2.2 维基百科 230
8.2.3 独立的贡献 231
8.3 开放教育 232
8.3.1 先兆 232
8.3.2 麻省理工学院开放课程 233
8.3.3 慕课 234
8.3.4 协作与消费 236
8.4 开源硬件 238
8.4.1 RISC-V 238
8.4.2 火腿电台开启创客文化 239
8.4.3 创客的变化 240
8.4.4 新创客 242
8.5 组织中的开源文化 244
8.5.1 组织到底为什么存在 244
8.5.2 开放式组织 246
8.6 总结想法 249