设万维读者为首页 万维读者网 -- 全球华人的精神家园 广告服务 联系我们 关于万维
 
首  页 新  闻 论  坛 博  客 视  频 分类广告 购  物
搜索>> 发表日志 控制面板 个人相册 给我留言
帮助 退出
 
思芦随笔  
思想之芦  
网络日志正文
杀器还是噱头?详解华为的操作系统 2019-05-24 10:21:52

华为消费者业务总裁余承东在朋友圈说最快今年秋天,最晚明年春天,华为自己的操作系统(OS)将可能面市。华为的OS打通了手机、电脑、平板、电视、汽车、智能穿戴,统一成一个操作系统。且华为OS还兼容全部的安卓应用和所有的Web应用,相关安卓应用在华为OS上重新编译后,运行性能提升将超过60%。

据传这个操作系统叫鸿蒙。鸿蒙本意是中国神话中的在天地开辟之前,一团混沌的元气世界。很奇怪,为什么华为的OS叫鸿蒙。等待开辟?还是一团混沌?

余承东别号余大嘴,朋友圈的话算不上正式发布,双重不靠谱。

这位老总一定是把操作系统混同于华为宣传的方舟编译器了。以前华为宣布方舟编译器的终极目标,是推出一个跨平台、跨系统、跨设备多种语言的软件开发平台。操作系统包括的东东比一个编译平台多得多。工作量也大得多。能够跨系统写应用软件不等于一统江湖的跨设备的操作系统。

根据现有信息,鸿蒙是一个基于安卓的,集成了华为对安卓系统的既往优化的操作系统,包括EMUI5.0 优化,方舟编译平台, GC 优化,EROFS文件系统等等。但主框架仍然脱不了安卓或者Linux的操作系统。由于安卓和Linux都是开放的,这样做没有问题。它让人想起了2014年被收购的红旗Linux。

当今手机操作系统领域,基本上是苹果和安卓的二分天下。苹果是先行者,谷歌是赶超者。先行者有先发优势。即使不开放,也能占领很大市场。安卓不同于苹果系统是它的开放性,它采用了跨平台操作的JAVA语言,支持不同硬件设备,环境对应用开发商开放。苹果手机使用自己的硬件,严格管控应用开发商。苹果的封闭环境,使它更易于高效,更容易优化,这就是为什么苹果手机使用规格较低的硬件还能让用户感受流畅的体验。谷歌为了培养生态系统,采用了开源的安卓,对效率和性能不得不有所牺牲。谷歌的开放,使很多新制造商(包括华为)可以快速进入智能手机领域。也使安卓的应用大量增加。据2017年年底统计,安卓的应用比苹果多了42%。全球范围内,安卓用户占86%,苹果用户占14%。

手机操作系统的后发者,还有诺基亚的塞班,Palm的Palm OS和微软的window Phone,都是由于没有杀手锏以及生态圈没做好,惨遭淘汰。

具体来说,安卓系统在两个性能上落后于苹果OS。一个是为了跨硬件操作,JAVA使用了虚拟机。功能是将各种硬件抽象成Java的运行环境,JAVA只管虚拟机。而虚拟机负责连接具体硬件。因此Java实现了跨平台——不管是X86,ARM,还是其他CPU的机器都没有问题。虚拟机里有一个解释器,将JAVA语言逐句翻译成硬件懂得的机器码。而苹果由于没有跨平台的问题,事先把整个程序编译成机器码,执行起来就快了。另一个瓶颈是安卓需要回收不再使用的内存,这个工作叫garbage collection (GC)。GC时,虚拟机要停止运行,判断哪些内存不再使用并释放。这个停顿会造成手机的卡顿。

谷歌和其他安卓手机制造商,也在持续优化安卓,一方面是硬件提升。由于硬件越来越便宜,手机上的CPU增至8核,速度也增加了很多。内存也由几百M增加到8G。软件上,谷歌采用了JIT(Just In Time)编译。当系统发现程序内有一段代码频繁执行的时候,下次调用就不用重复解释,直接执行上次解释出的机器指令。虚拟机进化到ART(Android Run Time)后,采用了AOT编译器(Ahead Of Time),就是运行之前,将部分代码静态编译解释为机器码,极大地提升了效率。但对于那些Java动态特性的部分,还有其他部分,仍然做不到直接编译,还是要解释执行。GC方面谷歌也做了优化,将GC的频率和时间都减少了。综合效果是,如果你用的是一个比较新的手机,硬件配置属于中高端,安卓版本比较新,基本上感觉不到卡顿,运行比较流畅。

当不能得到谷歌GMS授权后,华为如果能很快推出新手机操作系统,而且这个操作系统有革命性的创新,且性能大大领先于现有的安卓,就会成为一个大杀器,挽回流失的用户。但是作为后发者的华为进入手机操作系统领域,除了为培育生态圈,必须开源之外,还要有一些杀手锏。方舟编译器似乎就是是鸿蒙寄予深厚希望的一个杀手锏。华为宣称,方舟编译器可让系统操作流畅度提升24%,系统响应速度提升44%,第三方应用编译后流畅度可提升60%!是革命性的优化,全程执行机器码,高效运行应用,彻底解决安卓应用“边解释边执行”造成的低效率。

根据目前公开的资料。方舟编译器不再使用Java的虚拟机,而是开发者在应用打包的时候就将所有程序,包括静态和动态的部分直接编译成机器指令。 这种编译会带来跨平台问题,java使用虚拟机解决的正是这个问题。方舟对跨平台问题的解决方法,是同时编译出所有硬件平台对应的二进制文件,之后在具体手机安装的时候选择针对当前硬件平台的二进制装入手机。因此会出现安装包容量大的问题(因为安装包包含所有硬件平台的二进制文件)。导致应用安装包和安装后的机器码占用空间增大。据估计,方舟编译器重新编译的安装包要比安卓大两三倍,手机安装后的机器码要大0.5-1倍。带来的问题是占用存贮和内存显著增加。用户下载安装包会消耗越来越多的时间和流量。这是一个用空间换取运行速度的策略。

方舟编译器会有严重的生态问题。首先华为必须将编译器代码开放,并让应用开发商免费下载,将其已发布的应用重新编译,再次对安卓的所有版本和所有硬件平台进行测试。改正Bug后,重新发布,在所有应用商店上架。这个工作必须让各个应用开发商自己做,华为不能代劳,因为安全原因,每个应用都要有开发者的签名。这基本上是一个不可能完成的任务。你可以在爱国情怀下忽悠国内的部分开发者,但不可能让全球的应用开发者来跟随。大多数的app开发商是中小规模的,甚至是个人,怎么可能有时间有精力开发编译测试如此多的版本?

当新的非华为(高通,联发科等)硬件平台发布后,方舟编译器必须及时跟进,并将新版本推送给所有的开发商。随着越来越多新硬件的发布,方舟编译出的安装包势必会越来越大。用户下载安装包会消耗越来越多时间和流量。同时开发商编译时间会越来越长,需要测试的硬件会越来越多。

这么大的麻烦换取的是最多44%的系统响应速度。而且这个提升很可能是在实验室特定条件下测得的。体现在用户感知上,很可能要大打折扣。根据用户感知测试,一般人对在0.2秒以下的速度提升没有感知。在这个区间,人的感知已经达到饱和。换句话说,把响应速度从0.2秒提升到0.1秒,大部分人感觉不到区别。据我的经验,目前中高端安卓手机的性能瓶颈不是CPU的处理速度。所以对这个方舟的优化,用户很可能无感。

另一个华为宣传的对安卓的优化是内存垃圾回收(GC),从全局统一回收改变为随用随回收,回收时无需暂停应用,宣称消除了因内存回收的卡顿。但问题是,安卓5.0版本,采用ART虚拟机,GC的次数和停顿时间已经大大改善,GC引起的卡顿几乎感知不到了。

最重要的是,华为这些对安卓的改善可以说都是工程方面的,没有技术的创新。消除JNI的开销,把Java和C在一起编译,来自于甲骨文的GraalVM和开源的LLVM;无需虚拟机类似于苹果swift语言的执行和谷歌的AOT;引用计数的垃圾回收也是业界已有的建议。所有的思路都是谷歌曾经想到的,但为了可移植性做了牺牲。

谷歌也在对安卓优化,开发下一代操作系统。项目叫Fuchsia。 Fuchsia基于微内核架构,用于嵌入式系统,主要使用C语言和C++编写。Fuchsia的设计目标之一是可运行在众多的设备上,包括移动电话和个人计算机。

比较谷歌和华为的操作系统,目标虽然相同。但谷歌的系统包含更多的技术创新,而华为的系统着重于工程集成。这反映了两个公司的区别。谷歌代表的是技术创新。而华为擅长的是工程能力,在技术上继承和抄袭多,创新少。华为主要是依靠中国人工便宜,加上996,搞人海战术。集成业界的一些好思路,蚂蚁啃骨头,做到工程实现。但要说是革命性的创新,远远谈不上。纯属噱头而已。

最后总结一下,华为所谓的手机操作系统备胎,会导致存贮和内存占用显著增加,带来的响应速度的提升很可能不会被中高端手机用户感知。并且给应用开发商带来极大的不便,生态系统很难扩展。这个操作系统新东西少,只是集成了华为对安卓的一些优化。最后结果就是自己玩,难逃塞班和Palm OS的命运,噱头而已。华为公司工程能力强,但不是一个技术创新的公司。


浏览(9042) (72) 评论(24)
发表评论
文章评论
作者:思芦 回复 双不 留言时间:2019-05-31 06:50:56

如果你能活得只够长,等到它出来,别忘了分享你的感受。

回复 | 2
作者:双不 留言时间:2019-05-30 18:52:30

还是出来了再说。现在说的都是胡扯。

回复 | 0
作者:思芦 回复 枫华客 留言时间:2019-05-30 17:18:09

一厢情愿,一个手机也能扯到国家安全?华为的手机就卖不到欧洲去了。

回复 | 3
作者:枫华客 留言时间:2019-05-30 17:04:09

看了半天, 没人说到点上。

华为一家搞os加生态圈肯定难。但是你忘记了,现在中国已经醒了, 国家安全。什么意思? 就是所有卖给中国人的手机必须安装鸿蒙。安装其他的os是对中国国家安全的威胁。只是跟川普学的。 中国10亿人的手机市场, 90%的app开发者不敢忽视。鸿蒙的生态圈3-5年建成。

回复 | 2
作者:talkswitch1 留言时间:2019-05-29 13:27:57

华为进入手机行业,拉长了战线。在一般的商业环境中,这个决策不成问题。但遇到政治困扰时,手机业务就变成了一个大包袱。如果技术封锁长期持续,华为必须尽快放弃手机业务

回复 | 0
作者:思芦 回复 索额图 留言时间:2019-05-26 13:32:37

安卓并不完美,谷歌也在开发Fuschia。虚拟机会被改革,但是华为的改革会带来很多问题。包括维护。硬件的升级已经解决了大部分性能问题。为了44%的改善,搞得太麻烦,业界不会跟随。大部分用户都是小白,不可能做下载时的选择。

回复 | 5
作者:思芦 回复 techonly 留言时间:2019-05-26 13:15:53

你不懂什么叫生态系统。没有大量的app支持,手机OS的用户发展不起来

回复 | 4
作者:techonly 留言时间:2019-05-25 17:14:16

作者强调了谷歌要维持生态系统的难度。但这个问题对华为来说根本上就不存在。华为只需支持它自己的供应链就同苹果一样。

其实三星,索尼等等很早以前也试图提供自己的开发环境来得到一些自己的控制权。华为现在的安卓的积累加上压力,解决自己的手机系统问题只是7成难度的题目。

纯软件公司希望跨平台,有强大的硬件背景的公司对跨平台就没有那么大的热情。总之是因为公司位置,资源优化所决定。

回复 | 1
作者:索额图 留言时间:2019-05-25 10:32:32

好像作者少考虑一个因素,运行稳定性。虚拟机带来的portability 有用很好,但与native 交互产生的问题很多,典型一个是native memoryleaking,在高质量程序不能处处时时有保记的情况下,极大影响系统稳定性,维护成本较高。为了解决这种问题Erlang 走了一条不同的路,microprocess , 消除了虚拟机那一大坨东西,效率和稳定性极大提高,速度大大提高,微信就是Erlang写得吧。从文中表述,我猜Hm思路也是这个,至于customization overhead或成本,这是可以预见可控算得出来,下载尺寸其实是无大碍的事,先查系统再下载合适版本不是已很普遍了吗?是个共性问题。从纯技术上讲,JAVA Android 都是技术进步路上的中间态,远未完美,需要一种新思路,国人聪明,应该不至做个四不象出来,鸿蒙指鸿大包容,一切都装进来,暗示这个系统从最低层解决问题,基础架构功能增强,尽量从根上提高效率和稳定性。只是不知要多少辛苦智慧做到这一点, 方向和精神都是可嘉的。JAVA android 不可能永远,这是肯定的,将来也许会是三国之势。拙见

回复 | 2
作者:qhr 留言时间:2019-05-25 06:52:34

至少现在的鸿蒙还是一只‘哄蒙’。一支软件只有在用户群的使用中才能有效的debug,和从用户反馈中改进升级。没听说大杀器束之高阁,锁在保险箱里的。

回复 | 6
作者:破棉袄 留言时间:2019-05-25 01:55:23

OS的技术上不是很难。除了上面讲的生态链问题,是致命的,华为已经错过了建立自己生态链的时机。另外一个重要因素就是维护和更新换代。任何新的硬件出来,都必须和OS合作,更新OS。美国的硬件供应商不会跟华为OS合作,这样华为只能和中国的供应商(大多都是低端部件供应商)一家闭门造车了,不会有未来。

回复 | 7
作者:浪费时间是可耻的 留言时间:2019-05-24 22:33:34

GCC编译器本来效率就狂低,跟芯片原厂的编译器比起来,差了好几倍,可为啥linux坚持使用GCC编译器呢,作者给我解释解释。

回复 | 2
作者:鱼囊 留言时间:2019-05-24 21:01:56

有专业人才解惑就是好,感谢。

回复 | 4
作者:杰克一 回复 中道 留言时间:2019-05-24 19:31:48

你给我弄一个系统出来试试看? 我看你真是图样图森破Too young too simple. 没有Unix哪来的Linux. Linux就是在x86系统上的Unix. Unix是经过了多少年的技术积累. 关键是操作系统的设计系统的思想. 没有Unix的构架怎么可能一个人轻轻松松就可以搞出一个Linux来.

回复 | 2
作者:花蜜蜂 回复 花蜜蜂 留言时间:2019-05-24 18:35:04

中国智库估计贸易战大概拖二年,到时候推波助澜让特朗普下去,也许可以转圜。《论持久战》那时候不是打了八年,贸易战再也不能比吧?中国经得起。

回复 | 2
作者:花蜜蜂 留言时间:2019-05-24 18:31:20

任正非的备胎说是不得不跟自己壮胆。他在中国政府拿了那么多钱,无论如何要在党中央面前挺住。

贸易战中国接招也是一个样,那么容易就投降在全国人民面前说不过去。

反正就只有这样挺起,抗起,拖到特朗普下台再说。

嘿嘿!

回复 | 8
作者:中道 留言时间:2019-05-24 17:36:10

作者自己就在玩噱头。如果当年 Linus一个人就可以完成 Linux的OS开发,现在任何一个有规模的公司完全可以搞出自己的OS来。搞技术的人总是喜欢玩弄一下文人相轻的小把戏,真正制约华为操作系统,可以说跟技术无关。以LinuxOS的开源下的技术而言,基本上不影响使用,加上现在芯片计算能力和网络带宽,增加40%,减少40%,对普通用户而言,都看不出什么太大差别,也许玩游戏时会有点区别。

真正制约华为操作系统的是生态,2011年微信刚出来时,百度有一个类似APP“集结号”,阿里巴巴有一个类似的APP“来往”,还中国电信的APP“易信”,这些功能上大同小异,易信应该跟微信基本一样的功能,但是谁也没有腾讯的生态建设得好,微信凭着 QQ 已经建立的生态,微信9个月后,用户达到1亿,随后每周发两次更新,到了2013年基本上,其他人都不玩了。

回复 | 11
作者:老豆子 留言时间:2019-05-24 17:27:13

专业水准的文章,赞!

linux 是当年那个挪威还是瑞典的老兄乘他老婆回娘家一周时间在家里发奋写的。脱胎于unix。 是不是? 据说苹果的系统也和unix有关。

我觉得现在手机和电脑应该分开发展。 电脑就是向专业化发展,走极为强大的运算能力为主,比如游戏、设计、控制等等。 手机就向享受玩乐方向发展。

回复 | 1
作者:思芦 留言时间:2019-05-24 13:07:58

不能改帖。有个typo。应该是“来自于甲骨文的GraalVM和开源的LLVM。”

回复 | 3
作者:转个帖 回复 北京土话3 留言时间:2019-05-24 12:23:35

这是业内高手的文章,非CS/CE/Telecom/Internet/System Engineering浸淫多年写不了这么全面准确。

小粉红们要是把发五毛帖的时间花在踏踏实实的工作学习上倒真有可能给厉害国横行天下做点实事,嘴炮无用。

回复 | 18
作者:转个帖 回复 摩诃笨蛋 留言时间:2019-05-24 12:16:22

哈哈哈!正想着“这一盆冷水能不能浇醒贾瑞大爷呢”,看来“情种们”就是爱做梦,红楼梦,厉害梦,哄蒙梦,梦梦梦。

就这么把人的美梦惊醒了,好像不太厚道吧?

回复 | 9
作者:摩诃笨蛋 留言时间:2019-05-24 12:04:37

曹雪芹曰:开辟鸿蒙,谁为情种?余承东估计只是看了前面四个字就兴奋地为这个所谓操作系统取了名字,却忘了后面四字很不吉利。没有人用的操作系统等于不存在。所谓落花有意流水无情,放在这里再合适不过!

回复 | 16
作者:北京土话3 留言时间:2019-05-24 11:45:34

内行,而且客观中立。学习了。

回复 | 10
作者:liucarl 留言时间:2019-05-24 10:27:07

回复 | 8
 
关于本站 | 广告服务 | 联系我们 | 招聘信息 | 网站导航 | 隐私保护
Copyright (C) 1998-2017. CyberMedia Network /Creaders.NET. All Rights Reserved.