最近几天在爱坛上鸿蒙是一个热议的话题。套用外交行话,大家就此进行了坦率交谈。领衔双方的都是大牛,所持观点都有一定的道理。但是好之中总会有更好,笔者不才,瞎说两句吧。 ' M p' Q/ I. `7 c @7 D% t1 J& D Y, u" D/ e
关于鸿蒙的一个热点是其微内核( microkernel architecture )的架构。微内核的优缺点是一个老生常谈的话题,到现在晨大跟老兵还对此有不同的看法。虽然晨大知识广泛,在很多工程领域都有很高的水平。可是计算机毕竟是老兵谋生几十年的本业,对该问题的认识要强于晨大。简单地说,微内核安全、容易剪裁,但性能(performance)做好不容易。道理其实很好理解:在微内核构架下,想要完成一件事往往需要频繁出入内核与用户空间,跨越不同安全等级区必然导致一定的系统开销。就像下图,你觉得哪一个办事效率更高呢?4 H4 Z9 ^0 f1 i) {
/ O! D- s" I: i3 |7 ?微内核 ; s+ M9 E2 E. r9 Z* ?2 [; Q5 G- g6 T% F5 X# v V' ?* T u6 a$ ]7 k+ L* o
monolithic kernel模式 8 e9 a! q9 |) w0 l6 f8 w5 b0 G; g* u
因此,微内核性能下降是必然。但是能否让这种下降止于某个可以令人接受的程度,从而生产出一个依然可用的系统呢? 这其实需要有天赋有理想的创作者, 裱糊匠肯定不行。老兵为了论证自己的观点,拉来Windows NT做例子。然而,微软是一家把实用主义融入基因里的公司,只要能用,任何时候都不介意做成一锅乱炖。当初微软为Windows开发搞了一个MFC框架,里面大量使用了宏定义(Macro),直到delphi横空出世人们才意识到原来Windows的封装可以那么清新,那么有条理。 4 m4 h0 Y& W; m% g& s / ^( ~) l7 ^0 G; o4 y, @# u有意思的是, 双方不知有意,还是无心, 这次微内核的讨论基本上都是在PC层面展开的,这对手机来说多少有点隔靴止痒的意味。其实到目前为止,在移动设备上做得最好的微内核的系统(鸿蒙依然在开发之中)就出自他们大湖北的一家公司(难道这就是传说中的灯下黑?)该公司在意气风发的时候它的名字叫Research in Motion,不熟悉的小伙伴们一提 BlackBerry也就全明白了。 BlackBerry手机用QNX(现在已经改用安卓, 时不利兮骓不逝),QNX是微内核的实时操作系统。曾经有一段时间,美国总统的智能手机只能用BlackBerry,因为那时候只有BlackBerry通过了特勤局的安全检测(iPhone和安卓都不行)。 4 Z! P. J3 S" Q: f+ o1 ^* j2 C/ M! m6 J0 z; N
另一方面,在对鸿蒙的前途和未来的展望上,老兵的观点未必能够胜过晨大。大概老兵长期处于IT高端,周围被专有(Proprietary)软件环绕,惯性使然。一开始,老兵没有注意区别安卓和GSF(Google Services Framework)以及谷歌全家桶(Chrome、YouTube等应用程序)。前者是开源软件(更精确地讲应该是 free software,从习惯) ,后者是专有软件。只有专有软件才限制别人分发、修改、以及二进制兼容。国内的软件都是在没有GSF的环境下长大的,所以除非将来谷歌修改安卓的许可证(那也只能适用于新版,现有安卓依然free),否则鸿蒙要保证国产软件的运行一点问题都没有。4 ~/ K5 t1 J! {8 L( O
: K7 m5 b/ m2 p8 F3 z
有一点老兵看到了,那就是鸿蒙的作用可以作为兑子,即用停止开发鸿蒙换取谷歌解除封锁。但有一点老兵忽略了,交换需要双方愿意,用来交换的东西必须自身拥有足够的价值才行。马换炮,想一想也就换了。但想要卒换车,高手肯定笑一笑走开了。如果鸿蒙像老兵说的那样不堪,那么兑子也基本上做不到。9 p/ q$ N6 l/ w# o! L) F2 N, K
8 x% m0 s6 B6 V" X5 ]9 S+ f7 M比之其他IT领域,移动设备更下里巴人,更接地气一些。以国内市场为例,国产手机中步步高系的市场占有率对小米具有压倒性优势。您没有看错,就是做学习机的那个步步高,OPPO、vivo、以及海外卖得很火的一加,都是由步步高出来的(甚至可以精确到段永平这个人)。在很长的一段时间里,步步高系的手机,配置比小米低,价格比小米高,而且依赖传统的店面销售(他们的网上直销到现在依然是个软肋)。那么他们凭什么战胜high-tech的小米?其中有一点就是销售人员同顾客做朋友。很多都生活在同一小区里,就这么说吧,如果大妈晚上九点手机遇到问题,销售人员都能上门服务,可能顺便还把老人搬不动的矿泉水带上楼。对这些顾客来说,手机有多大内存,CPU有几个核真的不重要,YouTube、Facebook、Instagram更是虚无缥缈,这与欧美的高端市场绝对是不同的世界。 . Z% }! Y( T0 x/ ~: V u, X P& k8 }/ w. F' q8 g Z& a0 o$ }0 V
万一,华为遭遇最坏情况,谷歌彻底撕破脸怎么办?很简单,三个字:活下去!凭借国内市场及亚非拉第三世界市场,华为不可能死。能坚持,就有胜利的希望。只要活的足够长,敌人都可能助你成功。3G时代,当中国拿着TD-SCDMA申请国际标准的时候,不要说产业化,就连很多基础性的实验都没有做,完全是白纸上画大饼去跟人家分,有谁能想到今天的局面? 时光倒退30年,有谁又能想到曾经拥有包括晶体管在内的九项诺级科研成果,共计14诺贝尔奖获得者的美国电话电报公司,在电信制造业上现在已血骨无存?电信是规模效益很大的一个行业,有时候客户数比利润率更重要,这是迂回前进,走农村包围城市道路的底气所在。
# C. h9 }( I. G% K @, c微内核系统的一个关键是要控制它的规模以及复杂度,在这样的前提下,性能还是可以保证的。但是这个要求意味着它不能是全尺寸的操作系统,而只能是个小型的特定用途的操作系统。这也就是为什么商界的主流操作系统没有什么微内核的成功案例,但是在特定市场领域却可以看到它成功的原因。
雨楼 发表于 2019-6-19 08:51& N* y Z5 R: m; X/ e1 _! _* A
天下武功,唯快不破。当cpu足够快时,神马内核都无所谓。# m4 V$ Y e( Y+ k( R# Q4 R! l
回头看看PC的发展历程。都是先拼主频,然后多核, ...
$ p# B x% f1 ?! q; w道理对,但是只要有竞争对手,性能差距就是要命的事情。 $ ~; I# S. b) b# B& @' i1 |8 I# p6 E O, C+ t8 f c; `# `% n
具体的例子就是金融业的玩trade那帮,按照理论,当CPU足够强的时候,编程语言的性能如何就无所谓了。但是现实中,C++依然吊打Java,而Java依然吊打JavaScript。
1 d4 i, Q% E, D6 h. U2 M- V2 U
Android编程是java吧?你非得扯到JavaScript。微内核是操作系统层面的,你说app编程干嘛?. N! J/ v5 ]2 |* B
应该比较的是 o8 s/ n; N' H7 U2 C微内核的操作系统, 和宏内核/混合内核的比速度,性能。 ( [# L. ~7 R& m3 {2 [ {3 e比编程语言速度?你咋不用汇编呢?