我看开源这些年
崔宝秋
小米科技首席架构师,小米云平台负责人
1
2016-3-27
提纲
1. 我和开源
2. 开源主要人物和事件
3. 对开源的一些个人看法
4. 开源的玩法
2
我和开源
1995: 开始接触 GNU, FreeBSD, Linux, Emacs
(⾃自由软件信仰者)
1996-2000:⾃自由软件 XSB (博⼠士研究项⺫⽬目)
(⾃自由软件贡献者)
1995-2010:Emacs
(⾃自由软件爱好者、贡献者)
2010-2012:SenseiDB (LinkedIn公司开源)
(开源软件贡献者、项⺫⽬目管理者)
2012-现在:制定并⼒力推⼩小⽶米开源战略
(开源倡导者、战略制定者) Open-Falcon ……
⾃自由软件信仰者 开源倡导者
开源关键人物
Richard M. Stallman
(RMS)
Founder of GNU & FSF
Linus Torvalds
Creator of Linux
Eric S. Raymond
(ESR)
Advocate of Open Source
里程碑事件
1983-9-27: GNU
(GNU’s Not Unix)
1985-10-4: FSF (⾃自由软件基⾦金会)
(Free Software, Free Society)
1991-8-25:Linux
(Hello everybody out there using minix - …)
1998-2-3: Open Source (开源)
(让⼯工业界更好地接受⾃自由软件)
重要基金会
1985-10-4: ⾃自由软件基⾦金会(FSF)
2007:Linux 基⾦金会
1999-3-25: Apache软件基⾦金会
2012:OpenStack 基⾦金会
重要开源软件时间表
1983-9-27: GNU
(GNU’s Not Unix)
1991-8-25:Linux
2006-1:Hadoop
2007-11:Android (Alpha)
2009-11:Go
2010:Spark
2010-7:OpenStack
2013-3:Docker
1987-5-23:GCC
1993-11-1:FreeBSD
1995-5-23:MySQL
1995:Apache HTTP Server
1998-2-28:Mozilla
版本控制系统(VCS)的演进
• 第1代:RCS (1982年) - 单文件,个人,锁定
• 第2代:CVS (1990年) - 集中控制,多文件,多人(merge before commit)
• 第代:SVN (2000年) - 较 CVS 有多项优化和功能改进
• 第3代:Git (2005年) - 分布式,多文件,多人,革新性的改变
– 感谢 Linus! (也感谢 BitMover ;-)
代码管理平台的演进
1999: 2008-4:
自由软件 vs 开源软件
- 理想主义
- 被上升到了政治、哲学和道德层⾯面
- 强调“使⽤用和提供⾃自由软件是好的、
道德正确的、应该作的事情”
- 早期推动了⾃自由软件运动
- 后期阻碍了⾃自由软件发展
- 现实主义
- 较少涉及政治和道德
- 强调“使⽤用和提供开源软件对你和
你的⽣生意有好处”
- 促进了⼯工业界对⾃自由软件的接受
- 在某种程度上推动了⾃自由软件发展
⾃自由软件 开源软件
开源的三种力量
个⼈人爱好者 ⽆无开源商业模式组织 有开源商业模式组织
例如:
Emacs Org Mode 作者
Prof. Carsten Dominik (天⽂文学教授)
例如: 例如:
国内开源的几个阶段
• 1995年前:“与世隔绝”
• 1995-2005:初级阶段
• 2005-2010:逐步成熟
• 2010后:大步追赶
– GitHub
– 工程师数量
开源在国内的几个问题
1. 只进不出:拿来主义,无回报社区意识
2. 不与社区共成长:注重短期利益,涸泽而渔
3. 社区较多,还没有成合力
4. 英语水平阻碍了与社区的交流
5. 缺乏创新(但未来肯定有机会)
中国开源
Linux 软件 社区 公司
中国开源软件推进联盟
Linux 和中国: 近20年来的一个变化
No matter that such official
Chinese government
sponsorship might add a
quarter of the planet’s
population to our user base;
if this is “world domination”,
we’ll want none of it.
Eric Raymond
Linux Today, 1999-11
“
”
公司对开源的常见态度
• 拥抱开源
– 有选择的拥抱
• 技术领先:闭源
• 赶超竞争对手:开源
– 有开源商业模式的拥抱
• 多方位投入,万无一失
• 闭源为主,不相信开源软件
• 开源是恶魔、癌症(早年微软)
微软的改变
2001-6-1: Steve Ballmer, Chicago Sun Times
Linux 是癌症:“Linux is a cancer that attaches itself in an
intellectual property sense to everything it touches.”
1998-8: Halloween Documents
FUD targeting Linux, Open Source
2006-5: CodePlex
Open-source project hosting
2009: Open sourced Hyper-V-supporting patches to Linux
2010: Open sourced F# Compiler
2012-4-12: Microsoft Open Technologies, Inc.
推进开源和开放标准
2016-1: Open sourced Chakra (JavaScript engine)
开源的玩法
个⼈人爱好者 ⽆无开源商业模式组织 有开源商业模式组织
例如:
Emacs Org Mode 作者
Prof. Carsten Dominik (天⽂文学教授)
例如: 例如:
热爱
理想
业务时间
可盈利
义务
社区
参与
多⽅方位跟踪
公司投⼊入
盈利
⽤用户需求
标准制定
社区
为什么要拥抱开源
• 站在巨人的肩膀上
– 快速创新、快速推出产品
• 共享技术,回报社区
• 有助于吸引人才
• 有助于吸引外来贡献
• 有助于提高软件质量
19
小米在开源上的五大原则
快
不重造轮子
不用则已,要用则精
永抱开放和共享的态度
极力推出自己的 committer
20
业务驱动
21
业务第一
开源第二
保障开源
上的投入
如何平衡在社区和业务上的投入
22
如何积极有效地回报社区
积极交流
参与讨论
清晰描述
想法和算法
坚持自己
正确的观点
为自己提交的
代码负责
如何推出 Committer
23
提高
技术水平
提交
足够代码
保持社区
长期活跃度
保持良好
沟通渠道
展示团队和
公司投入
如何开源软件产品
24
1. 不为开源而开源
2. 确保软件的价值和通用性
3. 保证代码和文档质量
4. 遵守公司开源流程(安全扫描、IP等)
5. 积极营造社区
25
开源是软件的未来
谢谢!
崔宝秋
26