Google 在操作系统方面的成功,是可以复制的。

作者 | 徐 星
责编 | 唐小引

为什么学习 Google

随着华为、BATJ 在国内外市场获得了巨大成功,以及新秀摩拜单车等在业务模式的创新,让很多人以为我们的 IT 行业已经天下第一第二了。当然也有人一直在警告中国 IT 行业基础核心技术缺失,很容易受制于人。尤其最近中兴被美国禁止出口,把国内 IT 业最短的那块板——核心技术缺失,暴露给更加广泛的公众。

核心芯片缺失是全行业需要面对的问题。但是国内的基础软件尤其是基础操作系统也同样薄弱,而且国人早就认识到基础软件系统对企业和国家的战略意义。华为任正非为什么坚持自主研发芯片和 OS 操作系统[1],阿里马云做 AliOS[2],倪光南院士关于自主操作系统的评论[3],这些都是国内的行业精英们在为我们自主产权的操作系统呼喊行动 (基础软件包括操作系统、编译器、开发工具等等,本文讨论的基础软件主要指操作系统)。

在云计算和移动应用开发领域,国内外有很多成熟公开的研发模式,人才储备也很充分。但是,和云计算、移动应用开发不同,基础操作系统的研发并没有公开成熟的方法,对人才要求更高,研发周期长,资金投入大,产品还面临较高的失败的风险(譬如 Palm 的 webOS,微软的 Windows Phone)。

那么,基础操作系统的研发到底有没有具体可行的方法论?在国内,无论是 AliOS 还是其他 OS 或者 Android 衍生 UI,就目前的结果看,其采取的基础操作系统研发策略(主要是拿来主义)都是值得商榷的。Google 在 Android 和 Chrome 多年实践后,推出全新操作系统 Fuchsia,实现了一个量变到质变的过程,却让笔者意识到贡献比拿来更容易获得成长。

本文通过总结 Google 的这个量变到质变的过程,来探讨 Google 使用了什么样的方法和策略,从一个操作系统的门外汉成为一个操作系统的领导者。笔者认为,Google 在操作系统方面的成功,是可以复制的。

在国产核心软件缺失的这个大环境下,Google 在基础操作系统的蜕变能给国内基础软件系统从业者提供一些思路和方法。希望我们有企业能够复制 Google 的这个模式,从而带动国产操作系统的崛起。

先进的 Fuchsia 操作系统

为什么说 Fuchsia 是一个先进的操作系统呢?操作系统是否先进,最基本的一点是要适应新的硬件和用户需求的变化(当然,是否成功则需要经受住时间的考验)。苹果 iOS 之所以先进,是因为提供了非常好的用户体验。Android 之所以先进,是因为适应了当时移动芯片上 GPU 越来越成熟,移动应用越来越复杂的趋势,从而能够实现更加流畅的体验。Chrome 之所以能够在浏览器市场独占鳌头,和 Google 在多进程多线程,GPU 等方面的优化分不开。

简单来说:先进的操作系统,要能够适应硬件的变化甚至影响硬件的变化,同时还能够适应新的用户需求甚至创造出让用户着迷的用户需求。

下表列出来笔者认为先进的一些系统和它们先进的两大因素:对新的硬件和标准的适应和影响,满足用户的需求甚至创造出让用户着迷的用户需求(譬如苹果最先推出的手指触摸和视网膜屏幕,其实就是在没有被广大用户呼喊的时候创造出来的)。

综合网上的各种评论和笔者对 Fuchsia 源码的解读,Fuchsia 的先进之处主要有:

  • 实时系统;

  • 新的用户体验,虚拟现实成为一等公民;

  • 游戏成为一等公民;

  • Material UI(让界面更加真实的一种设计);

  • 底层图形引擎基于最新的业界标准 Vulkan。至于对 GPU 和多核处理器的优化,Fuchsia 一样都不会少;

  • 全新设计的语言 Dart。

Fuchsia 现有的体系结构虽然很先进,但是未来到底会如何,笔者现在没有能力去判断。我们能够知道的是,Google 已经具备了全新操作系统的设计能力。对于国内的业者而言,在这个十来年间,Google 是怎么从一个初入门者成为了一个可以自主设计全新操作系统的公司,这其实是可以学习甚至复制的,这才是值得国内企业需要深思和反省的。

Google 模式

Google 是一家强大的公司。在 2005 年 Google 收购 Android 之前,就已经很强大了。但是这个强大,是指云计算的强大。在客户端和移动计算,谷歌还是初入门者。

我们知道,想要得到一件东西,就必须付出代价,或者钱,或者时间,或者两者都需要。Google 为了获得在移动和桌面系统的话语权,抗衡苹果微软在移动市场和桌面的垄断地位,先是在 2005 年收购 Android[4],接着 2008 年从苹果 WebKit 浏览器独立出来创建了 Chrome[5](本文不去刻意区分 Chrome 和 Chromium 两个项目的区别。另外 Chrome 实现了很多操作系统才有的功能,所以作者也把 Chrome 当作基础的操作系统),2009 年创建 ChromeOS 项目[6]。

之后就是我们看到了的,在过去的十来年里,Google 对 Android 和 Chrome 持续不断的更新。这个十年,Google 看起来很张扬(毕竟 Android 已经占领了移动市场的半壁江山,每年新系统发布会也吸引了足够的眼球),但在基础操作系统方面,其实非常低调。无论是 Android,还是 Chrome、ChromeOS,或是从别处买来的,或是基于其他开源项目并不断的给这些开源项目贡献代码,Google 并没有张狂到去创建一个全新的 OS。

收购 Android 的大把美金,默默贡献代码的十年时间,这就是 Google 为了获得移动和桌面操作系统的一张门票付出的代价。十年磨一剑,终于在 2016 年,Google 开始尝试全新的操作系统 Fuchsia。如果说 Android、Chrome、ChromeOS 是 Google 告诉世界,我想学习下操作系统是怎么做的。那么,Fuchsia 就是 Google 对外界发出的另一个信号,我们已经具有独立研发一个全新的先进的操作系统的能力了。

为了具备开发全新操作系统 Fuchsia 的实力,Google 其实是从两个产品齐头并进:

  • Android:收购。然后在过去的十年里持续演进。

  • Chrome:开始的时候基于 WebKit,从一点入手,引入多进程架构。扩散到面:积极参与 WebKit 其他模块的开源工作、多媒体、图形等等。2009 年发布 ChromeOS。2013 年宣布 Chrome 切换到全新的引擎 Blink[7]。Blink 是 Google 对业界宣告,他们已经熟练掌握了浏览器引擎的核心技术。

Google 在 Android 和 Chrome 项目上埋头苦干了十年左右,Android 版本从 1 升级到 7(最新是 9),Chrome 则从 0 升级到了 50(最新是 68),所有这些,十年磨一剑,终于在 2016 年,从头到脚全新设计的 Fuchsia 出来了。

总结下所谓的 Google 模式,就是“贡献”主义,就是长时间参与开源,给社区贡献代码,培养各个领域的技术专家。等人准备好了,就可以直接做起新的操作系统了。

为什么是参与开源而不是像苹果 iOS 或者 2005 年之前的 Android 那样闭门造车?因为当时 Google 是一个后入者。后入者需要跟着前人学习模仿。而参与开源,与业内前辈高手过招,是人才最容易成长的方式。如果 2005 年谷歌不收购 Android,2008 年的 Chrome 是完全从头开始做的,我认为 Google 今天很难有今天这样的底气去做全新的操作系统。

中国模式

谈好了 Google 模式,我们来谈谈中国模式。笔者认为中国模式主要是先拿来,然后修改优化。

在这十年,国内出现了各种 Android 版本,Android ROM,各类微创新的 Android 界面设计公司,也出现了号称面向多端的物联网操作系统 AliOS。但是所有这些,都是在现有软件的基础上修改和整合(笔者绝对不是说这些工作不重要没有价值,而是说这些还没有触及到操作系统最核心的部分)。

和 Windows 系统进入中国的时候相比,我们是进步了很多,起码我们能够看到 Android 核心的源代码,各大公司也培养了很多 Android 框架工程师。但是,真正能够从头开始设计一个先进的操作系统的公司或者团队,并没有出现。基础操作系统的设计团队,依然被牢牢的掌握在谷歌微软苹果等公司手上。

小米公司和谷歌苹果公司的差别,和十年前我们大多数 Windows 应用开发者和微软的差别并没有太大的区别:我们仍然基于别人的架构和接口做进一步的开发。我们在基础操作系统的设计上,还是没有话语权。

结语:复制 Google 模式

笔者认为基础操作系统,我们是能够自己从头造出来的。和芯片设计制造,AI 等学科不同,随着开放源代码和越来越多算法的公开,基础操作系统的设计本身需要的知识已经可以通过互联网和书籍等来获取了。所以这是一门工程性很强也没什么秘密的学科。国内有些同行已经花了很多时间和精力来做这些事情,但是并没有取得怎么样的成功,笔者认为这是方法论的问题。这里想要给大家分享的就是谷歌模式,谷歌的方法论:“贡献”主义。我们要想实现自己的操作系统,目前可行的一个方法就是复制谷歌的模式,复制“贡献”主义。

重申下所谓的 Google 模式:参与开源贡献代码,培养各个领域的技术专家。等人准备好了,就要等风,然后就可以做新的操作系统了。什么是风?就是时机。旧系统体验不好是好时机,新的用户需求出来是好时机,硬件本身发生了变化,也是好时机。

往简单了说,就是需要从业者参与开源,在一个个领域持续深入,最后在合适的时机才可以厚积薄发,在系统结构上有所突破。已经在 Android 和 Chrome 耕耘了很长时间的谷歌,选择在 2016 年重新设计一个全新的 Fuchsia OS,笔者揣测是“风”来了,同时谷歌的人才已经准备好了。

具体表现在三点:

  • 第一,新的用户需求譬如虚拟现实,为了实现更好的用户体验,要求更高的性能,要求高达 90 以上的 FPS。对于一开始就把用户体验放在首位的谷歌公司,用户体验是不能打折扣的,而旧的系统已经很难满足新的需求对性能的要求,这是第一阵风。

  • 第二,新的标准 Vulkan 得到更多硬件的支持,也要求对现有的软件系统进行一次重构。硬件和标准的变化,是第二阵风。

  • 第三,Google 的人才已经准备好了。对 Google 而言,它已经花了十来年的时间去学习操作系统的核心原理了,是时候去检验一下自己学习的到底如何了。综上三点,与其在原来的系统上进行重构,不如另起炉灶。

Google 模式的本质,其实还是先把人培养起来,然后等时机。国内企业已经培养了很多技术专家了,尤其是云计算的。但是在基础操作系统方面,我们习惯于把别人开源的系统,加上我们自己闭源的修改,做成我们自己的产品。拿别人的东西关起门来优化,是因为大多数企业要求产品快速见效益,这也无可厚非。

但是如果做基础操作系统,拿来主义会导致我们和业内最先进的技术脱节,也就失去了先进性,从而很难持续的投入。另外,很多专家做的东西不够专一深入,精力过于分散,我们就很难把东西做好。

而 Google 培养人的方法,就很重视工程师参与贡献优秀的开源项目。开源看起来是赔钱的买卖,但是对于一个后入者,这是能够快速接触到业界最新成果的方式,因而这也是培养锻炼人才的好方式。Google 这么热衷开源,绝对不仅仅是为了借助社区的力量来对抗苹果微软,更加不会是为了所谓的慈善,而是可以借助社区的力量,来壮大自己的力量。

参考文献:

[1], 华为,http://www.ccidnet.com/2016/0504/10128344.shtml

[2], AliOS,http://www.alios.cn

[3], 倪光南院士,http://tech.ifeng.com/a/20170414/44573008_0.shtml

[4], Android 的历史,http://digi.tech.qq.com/a/20170922/009468.htm

[5], Chrome,https://baike.baidu.com/item/chrome

[6], ChromeOS, https://zh.wikipedia.org/zh/Chrome_OS

[7], Blink, https://en.wikipedia.org/wiki/Blink_(web_engine)

声明:本文为 CSDN 「畅言」栏目独家投稿文章,作者独立观点,不代表 CSDN 立场。

Logo

20年前,《新程序员》创刊时,我们的心愿是全面关注程序员成长,中国将拥有新一代世界级的程序员。20年后的今天,我们有了新的使命:助力中国IT技术人成长,成就一亿技术人!

更多推荐