这是今天从一个饭局了解到一些好玩的"红旗"系统的历史。记录一下,一个是解答了,中国为什么做不出自己的操作系统。另一方面也是自己关于开源的一点反思。

  1. 这是最好的时代

早期的时候,那是一个 linux 最好的年代。百花齐放,中国也搞自己的国产的操作系统。红旗算是其中最具代表性的先驱之一。中国一条典型的路子,引进然后改造。先引进国外的技术,再自主改造,再到慢慢超越.... 比如在高铁这方面,就是值得我们自豪的一个案例。

那么 linux 呢?早期探索中,我们也走过这条路。内核拿过来,改!比如 linux 是英文的,我们要让它支持中文,要加汉化。对用户要友好嘛,外国返回 ok,error,我们要返回 「成功」「错误」... OK,我们拿了 2.4 内核,吭兹吭兹改好啦... 这时,官方的内核版本升到 2.6 了。我们的改动就白忙活了一场。没 merge 进去,工作都白费了!

除了汉化这种没多少技术活的,红旗其实也做过一些其它的优化的。然而这些个小的改动和优化,到下个版本官方一升级,跟人家一对比,我们做的东西完全是小儿科,被吊打,最后全部扔掉 -- 版本升级了,做的工作都白费了。

那我们为什么不把改动 merge 回上游呢? 合不进去呀!人家老外写的东西,人家说了算呀。在里面没自己人,说不上话,老外说不合,那就合不进去!

后来发现这么搞不行,这么搞法是国外的开源,不是我们的开源,根本参与不进去呀!当然内核也慢慢更完善了,语言的汉化这种,也可以丢到外围更上层去做了...不涉及到改内核... 于是红旗慢慢也就放弃去内核了这种路子了。只在外围的改动了。

当我们不再碰这些东西后,我们更没能力再碰这些东西了...

更可怕的是,这么过了许久之后,国内搞 linux 的这帮人已经断层了!搞不起来,就没人搞。没人搞更加没落,这几十年之后,早已经错过了最好的年代。所谓国产操作系统,也跟著这波浪潮夭折了。

我们可以获得教训:

  • 软体是一个动态变化的东西,固定到某个版本了改改改,是行不通的
  • 要真正参与进去开源,修改一定要 merge 回上游

2. 优秀的程序员

我知道有一类程序员,他们的事情就是专心做开源就行了。比如有某某内核驱动模块,对应的 maintainer 是 xxx,这种人好多公司是高价供著的!就比如红帽,给你钱,你还是维护你那块的代码,该干嘛干嘛。

再比如 XX 语言之父,这种也是被供著的。人家不缺钱... 这个世界也不缺码农,缺的就是这种顶级的程序员。

背后其实是有复杂的利益关系的。站在最顶端的程序员,他们是实现者,他们决定著某个「事实标准」。厂商必须尽量拉拢他们,使得实现对自己的有利!语言也是类似,就像聚积效应,一个大牛在这儿,公司就可以靠这个影响力吸引到更多优秀的人才。

优秀的程序员,早早被大公司包养了.... 他们也很满意:跟著自己的兴趣做开源就是了。

老一辈经历了最好的时代,却很少进入到真正的开源。大浪淘沙,国内大部分人,淘掉了。小部分人,钻研得比较深,这些人还继续写著汇编,写著 C...

市场很小,现在写内核已经没「价值」了。前面也说过,青黄不接。我们失去的,是一个整个时代。

3. 小米的故事

风云变换,沧海桑田。时间线跳到这些年,中国又在开源的世界中活跃起来了!华为,阿里,百度,腾讯...到处都有它们的身影。像华为这家公司还是很民族骄傲的!

早些年,单枪匹马做些事情是可以的,比如章文嵩lvs,比如云风的"风魂",这些都在曾经的年代书里写过传奇。但是系统越来越大,越来越复杂。轮子也足够多了。现在的开源,已经不是靠纯粹个人英雄主义的力量了。

做一个系统,一个人是不可能能完成的。投入 10 个非常核心的人员参与开发,也许就等于每年烧 1000w 的 RMB 投入。优秀的程序员很贵的 ... 开源也不能让程序员饿肚子呀。于是,开源发展到现阶段基本由大公司主导了。

回到正题:为什么这些年,我们又在开源的舞台上,看到中国的影子了呢?

我要讲讲小米的故事。大公司自己内部在用一个系统,随著使用的深入,也会慢慢可以改一些东西。就像早些年,红旗也先从边缘的东西开始改动。早期也许就改个拼写错误,改改注释。慢慢理解更深了,就可以做一些边缘的改动,再后面,一步一步地深入,到可以主导某部分模块的功能。

大公司养得起这些人,因为维护一个系统的回报是足够高的。于是一些人可以专注地跟上整个开源项目,把修改 merge 回主干,真正的参与进去。开源本质就是,谁做出的贡献大,谁就有话语权。小米在 hbase 可是有好几个 committer 的。

这个事情完成了一个正向循环。以前我们在 linux 内核没人,改动就合不进去。越是合不进去,就越是无法参与到开源。维护正循环之后,中国人终于可以扬眉吐气了!

4. 业界良心的 TiDB

参与一些开源项目的大公司倒有一些。但是老实说,真正由国人打造出来的具有国际影响力的项目,还不多。其中 TiDB 算是业界良心了。

TiDB 从一开始就是拥抱开源路线,并且真正用一个开源项目的标准来要求自己。按 github 开发流程,提交 issue,修复 bug,文档也是英文。

最难是建立社区和生态。闭门造车的,注定玩不下去。拿一个开源的版本改一改,我相信以不少大公司的实力,都是有能够维护起内部修改过的版本的,但是他们并没有能力建立好的社区和生态。后果是什么?这家公司独个跟全世界在赛跑。开源并不是把代码往 github 一放,就结束了,只有社区和生态建立起来,才能做好真正的开源。

开源离不开商业。只有商业公司在背后的支持,才能让程序员兴趣使然的去做开源工作。再一次,在商业角度,TiDB 同样做了一个典范,这居然是一家搞开源技术创业的公司!而且,还活下来了!

我是挺惊讶的。希望有一天,开源在中国的环境里面做得越来越好,诞生出最纯粹的土壤,让一批优秀的程序员,兴趣使然的写写开源项目,也就维持生计了。


推荐阅读:
相关文章