聊聊华为和安卓、ARM、方舟编译器、自研操作系统


最近华为的事非常受关注,身边也有很多朋友问我“听说安卓不给华为用系统了,我的手机以后怎么办?”,“听说华为要搞自己的操作系统了,这个怎么样?”,“ARM不给华为授权了,有啥影响?”先说一下,我不是学软件的,也不是学计算机的,所以了解并不一定很深入,就是对这个比较感兴趣,我的信息也大都是从互联网获得的,也有自己想法在里面,文章通俗易懂(太深奥的我也不懂),欢迎大家批评指正。


Android

众所周知,国内各大手机厂的操作系统,都各有各的名字比如小米的MIUI、华为的EMUI、OPPO的ColorOS、三星的One UI,但他们都有一个共同的妈,就是Android(安卓),谷歌的手机操作系统。大家看到的各家手机厂商的系统界面各不一样,一些细节的功能也不尽相同,但其实都是基于安卓系统加上各自美化后的结果,通俗点说就是安卓提供毛坯房,各家厂商按照自己的想法装修。好在安卓手机系统是开源的,大家只要遵守开源协议,都可以使用,也可以修改。

这次谷歌禁令,宣布中止与华为的商业往来,包括了停止供应安卓系统服务。这里指的不是华为不能用安卓系统了,而是华为使用的安卓系统上不能使用谷歌服务(GMS服务)。

一是不能用谷歌的商业软件了,这个对国内用户没影响,本来咱也用不上。安卓上运行的Gmail,Calendar,YouTube,同步数据等功能都是谷歌的商业软件服务,这些虽然使用是免费的,但需要得到谷歌的授权才可以。这个对国内用户几乎没有影响,因为众所周知的原因,我们早就不能用谷歌服务了,所以国内的安卓手机先天就已经阉割掉了谷歌服务。但对于国外用户,这个影响就大了,因为国外手机用户,尤其北美和欧洲,都是重度的谷歌服务用户,大家在谷歌免费的云上存储了几乎所有个人数据,换一台手机只要登陆自己的谷歌账号,所有数据都能恢复到新手机上,非常方便。如果华为海外手机禁用了谷歌服务,那影响几乎是致命的。

二是国内华为手机系统可以正常使用,包括后续更新,就是慢点。由于谷歌的禁令,未来华为不能参与谷歌新版本系统的测试,这样便不能第一时间更新华为的手机系统,但仅限于不能第一时间,未来谷歌依然会在开源社区发布新版本的正式版系统,也就是所谓的谷歌ASOP源码,华为可以使用这个版本的系统制作EMUI,但效率上会落后其他可以参与测试的厂商,以往华为可都是第一时间适配新版安卓系统的厂商哦。


ARM


英国ARM公司是全球领先的半导体知识产权 (IP) 提供商,目前被日本软银公司收购,他们的ARM指令集目前在嵌入式、移动等领域应用很广。

CPU 芯片里的指令集,它是一颗处理器所能执行的所有指令的总和,也是处理器运行的关键。而除了指令集,生产一颗 CPU 芯片自然也会有对应的硬件规格,它被称为“指令集架构”,而 ARM 带来的就是“ARM 架构”。大家比较熟悉的另一家拥有指令集设计能力公司是英特尔。如今 PC 市场中大部分笔记本或台式机设备,都使用来自英特尔的处理器,同样是因为英特尔掌控了这些芯片的核心,即“X86 架构”。

ARM 和英特尔不同,它并不直接参与芯片制造,而是会把芯片设计方案、使用许可授权给其它公司使用,再赚取授权费用,意味着 ARM 并不掌控整个芯片生产流程。大家所熟知的苹果A系列处理器、华为麒麟海思、高通骁龙、三星猎户座、联发科P系列等等,都是基于ARM指令集,甚至ARM架构。

现在华为 P30 系列使用的麒麟 980 芯片,则是基于 ARMv8 架构开发的。作为业内首颗商用 7nm 制程工艺芯片,整体水准已经可以媲美高通苹果的同类产品。除了运用在智能手机上的麒麟芯片外,华为还有面向 5G 终端使用的通信芯片,以及面向服务器设备的鲲鹏芯片等,也均涉及到 ARM 架构的使用。

但这种授权也不尽相同。以高通最新的骁龙 855 芯片为例,它在CPU 部分的 Kyro 架构,其实基于 ARMCortex-A76 公版架构微调而来;至于苹果只供自家使用的 A 系列芯片,则早已经脱离了公版架构,算是自己画图纸,但依旧支持 ARM 的指令集。而目前华为的麒麟芯片,仍然基于 ARM 的公版架构进行设计生产非自研架构,意味着华为仍然要和 ARM 保持紧密联系,也很难绕过它进行调整。通俗点解释设计处理器芯片就像是盖楼,如果连图纸都没有,地基也无从打起,之后的楼层搭建乃至是装修工作更是虚无缥缈。

好在华为之前就买下了ARMv8架构的永久授权,今后处理器依然可以生产,但一旦ARM更新v9架构,如果禁令仍然有效,那么华为就拿不到最新的架构设计,新款处理器设计生产就很难了

PS.最新消息,5月27日,ARM公司推出了第三代高端CPU架构Cortex-A77以及全新的Valhall GPU架构Mali-G77。这是ARM面向新一代的,包括智能手机在内的移动设备应用推出的更新更强的产品。好在这代产品还是基于ARMv8架构,华为还可以使用。


方舟编译器

虽然方舟编译器是在 2019 年 4 月 11 日发布,但是华为早在 5 年前就开始布局,但大家都没有太重视这个东西,直到最近谷歌禁令后,大家才开始关注它。

编译器是什么?简单来讲,我们平时使用手机软件都是由程序员们用Java、Python等等高级语言编写的,但这种语言手机的硬件不能理解,这时就高级语言和手机硬件之间交流还需要个翻译在,把人的直观操作,转换成硬件可以理解机器语言,这个就是编译器的作用。但高通的处理器和华为的处理器又不认同一套机器语言,你又不可能要求软件程序员编写适合不同处理器的软件版本,这个工作量太大。

现在的安卓不是在你安装了软件之后把整个软件都翻译成机器语言,而是根据你的运行情况,一边优化、一边编译,这就像手机里有个同声传译器,你一边使用软件,编译器一边翻译,你用的越多的软件功能,编译器翻译的就越熟练,你根本用不到的功能,干脆不翻译。

方舟编译器不是这样,它是把用高级语言写好的软件,直接全部翻译成华为处理器可以使用的机器语言,高通、三星的处理器都不能使用。

这么做的好处就是有针对性的对华为处理器进行优化,肯定要比现阶段安卓针对所有处理器编译的效率更高。打个比方就是写好稿子去念,肯定比同声传译的准确性和效率更高。


自研操作系统

基于最近恶劣的外部环境,安卓、ARM、WIFI、SD等的禁令,导致华为自研操作系统受到了广泛关注。

手机操作系统早起是百花齐放,诺基亚的Symbian、微软的早期的WindowsMobile、后来的WindowsPhone、谷歌的Android、苹果的iOS、Palm的WedOS等等,但如今只剩下谷歌的Android和苹果的iOS两家,诺基亚和Palm的衰落暂且不谈,软件实力强如微软也没能搞定手机操作系统,究其原因主要是系统基本功能缺失,更新速度极其慢、软件质量偏低,缺乏杀手级应用、合作伙伴看衰,投入太少。所以这就是个负反馈的过程,软件质量低、数量少——用户少——没有开发者开发软件——软件质量低、数量少。

所以做操作系统相对容易,难的是说服开发者在你的系统上开发高质量的软件,体验上不输现有系统,并且软件足够多,可以涵盖绝大多数人的需求,也就是所谓的生态环境的建立

。这一点华为应该有这个实力,毕竟坐拥国内第一的销量,这个装机量足以说服开发者在华为系统上开发软件。接下来要看的就是华为系统到底好不好用,能不能媲美目前主流的系统了


结论

当前无论是半导体产业还是其他产业,都很难摆脱上下游供应商的技术,在这个时代,几乎没有任何一家公司需要自己包揽所有的环节,也没有那个必要。如今,我们只能寄希望于华为可以在部分环节找到同等品质下的替代方案,但无论如何,供应链条的调整需要重新投入成本,自研技术的开发也需要时间