红色中国网

 找回密码
 立即注册
红色中国网 首页 群众文艺 查看内容

详解华为的操作系统 —— 杀器还是噱头?

2019-5-27 04:57| 发布者: redchina| 查看: 12686| 评论: 5|原作者: 思芦

摘要: 华为公司工程能力强,但不是一个技术创新的公司。华为所谓的手机操作系统备胎,会导致存贮和内存占用显著增加,带来的响应速度的提升很可能不会被中高端手机用户感知。最后结果就是自己玩,难逃塞班和Palm OS的命运,噱头而已。

杀器还是噱头?详解华为的操作系统

 (2019-05-23 16:47:48)
下一个

华为消费者业务总裁余承东在朋友圈说最快今年秋天,最晚明年春天,华为自己的操作系统(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的命运,噱头而已。华为公司工程能力强,但不是一个技术创新的公司。

1

鲜花

握手

雷人

路过

鸡蛋

刚表态过的朋友 (1 人)

相关阅读

发表评论

最新评论

引用 laobing 2019-5-29 00:16
抽空在github上下载了fuchsia,还没看出大的创新。操作系统本自就是个实践性极强的东西,没有时间浪费在复杂算法和结构上,微内核是三、四十年前的学术热点,现在重新翻出来,google把别人写的一个开源实现拿过来是没有问题的,但是在冯诺依曼结构下,没有什么挖的了。有愿意看综述的爱好者可以参见Minix(我曾读过它的内核)作者 Tenenbaum 和Linux几个作者的辨论。我现在知道华为也是微内核,是谁写的我不知道。华为的搞法,你想快一点就编成可执行码,你想省事就用Java中间码,对这东西没啥可非意的。老实讲,噱头多了,Java、C#,有群众跟风就不是噱头,明天有人想推别的了,再回来打就又是了。看吧。有了google对华为这一刀恐怕跟风的人会谨慎的,网上千百万不为钱而供献的程序员,大多不相信政治干预和金钱第一这一套的。对华为的期待也是开源,接受内行的批评健议和贡献,平心面对类似这篇文章作者不那么内行的断言。昨夜在网上看到一"媒体人"评价华为生态系统是异想天开的文章,说"任何一个有基本技术常识的人都知道,搞一个操作系统是很容易的",天那,真叫一个指点江山激扬文字,无知者无畏呀。 ...公平竞争,优者胜,是为王道。耐得住寂寞,脚踏实地者,加油。
引用 马列毛 2019-5-27 15:45
“华为公司工程能力强,但不是一个技术创新的公司”,这话说到点子上了。其实,私改之后,中国的一切行业都是这样:引进、倒卖、制假的能力超强,其余当然就都完戏了。为什么我们可以放心地买电脑?因为里边的芯片中国不会造;近几年买了U盘为什么要检测?因为中国人学会了制造USB接口。
引用 laobing 2019-5-27 13:09
查过了,微内核zircon的来龙去脉,UI SDK 兼容Android和iOS等, 开源,知道google在想什么了,比这个综述详细点。没有华为这件事试试没商量,有这回事三思吧,美国人这一刀对开源运动杀伤不小,从各种角度全方位教育人。好像听说华为也是微内核。我倒不认为微内核多好,最要命的是慢,当年学生Linux和权威Tenenbaum有个辩论,我以为Linus完胜。这一把,等等看吧。再找找华为的搞法。
引用 laobing 2019-5-27 10:46
这是一篇干了二十几年板子的人士的综述,对操作系统和语言环境给我们科普,不详细,最后下一个不小的断言。我有一点想法。

看来Google把钱赚够了,Java噱头玩够了,技术上要回到common sense,从技术上是好事。不知Google的Fuchsian的内核是一切推到重写还是走和OS X类似的路,如果Google从头写内核,从头写编译程序,从头写应用层,有干劲,有大牛,不管写不写得过Thompson和Linus,别人没啥说的。我不知华为编译程序的细节,是不是也用了LLVM之类的,但是你说的机器码大小和下载问题,对Google新操作系统也是一样的,任何一个本科生都会知道。

我比较喜欢编译程序,我有一个想法能解决你说的尺寸和速度两难:App源程序编成某个中间码放到服务器上,目标机上装一个编译程序,下载后编译成可执行码,怎么样?我实现过几个小语言,都是这个路子。谁知道呢,说不定Google和华为都这么干呢?类似这玩意都能专利,这就叫资本主义,创新吗,什么都不是。

我也最后总结一下,
1. ”华为的所谓操作系统备胎“,Google的Fuchsia,Apple的iOS, 或不管谁的操作系统,走可执行码这一条路,相对与中间码的解释执行,都导致下载量、存储和内存量显著增加,带来的响应速度的提升很可能不会被中高端手机用户感知。
2. 不一定带来商用极大的不变和生态系统难扩展,看有没有人跟风而已。
3. 不了解华为和Google的新操作系统,不敢像这个综述者这样下断言。
4.  开不开源和有没有人跟风有关系。今天Google摆华为这一刀,对人影响不小,对开源运动影响不小。
5. 这东西是纯技术,看不出有多大的“创新”。
6. 作为一个喜欢内嵌和实时系统和编译程序的人,篇文章不是”详解“,再补点什么或找一个华为干这个而且同样不满的技术人员来讲吧。
引用 林林 2019-5-27 08:14
请redchina 把思芦的追忆逝水华为(四)登出来吧。 我还等着看呢!然后我可以去请教其他原华为员工的看法。

作者你不是搞了华为原罪吗?至于是杀器还是噱头,用得着你费心吗?

查看全部评论(5)

Archiver|红色中国网

GMT+8, 2019-8-21 15:23 , Processed in 0.015838 second(s), 12 queries .

E_mail: redchinacn@gmail.com

2010-2011http://redchinacn.net

回顶部