华为操作系统28年史
一部华为发展史,也是一部可歌可泣的操作系统发展史。
本文转载自公众号:最牛博弈(ID:zngame),作者老兵戴辉
8月9日,东莞松山湖沸腾的一天,华为消费者业务CEO余承东发布了鸿蒙操作系统,中文来自山海经,英文叫HarmonyOS,不是以前传说的OakOS。
余承东在介绍鸿蒙OS开发初衷时表示:“随着全场景智慧时代的到来,华为认为需要进一步提升操作系统的跨平台能力,包括支持全场景、跨多设备和平台的能力以及应对低时延、高安全性挑战的能力,因此逐渐形成了鸿蒙OS的雏形。鸿蒙应未来而生。”
最振奋的消息是,鸿蒙OS开源,方舟编译器也开源,整个业界将参与进来,一起发展。
操作系统成为一个火热的话题,是从去年4月的中兴事件安卓禁供之后开始的。
老兵戴辉访谈了倪光南院士,全网率先对中国各门类的操作系统总结了一把。
过去这些年,中国操作系统的进步其实还是挺大的,在服务器和云的OS、嵌入式OS(如通信设备就大量采用)、物联网和车联网OS上与全球的差距并不大,PC的OS也有长足的进步。
智能手机的操作系统在生态上的差距确实很大。老戴和倪院士讨论之后,在文中提到了一个想法:既然国内手机用的APP基本都是国产的,那么国产手机OS+微信小程序一起,在国内完全可以作为安卓的备胎。
不幸而言中!13个月之后,今年的5月15日,华为被列入了所谓“实体清单”,谷歌操作系统对华为禁供。关于华为鸿蒙OS和方舟编译器的话题一下子变得火热。
东吴证券火伞高张策略会上老戴发言、中国标杆邀请老戴去广药集团讲课,朋友们都激动地说:这是千载难逢的好时机啊,可以搞定中国的智能手机OS。
智能手机操作系统是信息技术的制高点,谷歌出于企业利益,争取在安卓和Fuchsia上和华为继续保持合作,但GMS权限并没有放开,华为手机在海外的销售也还会受到压力。未来华为和谷歌将会怎么合作,还要等待时间来告诉我们。
诗兴大发,遂来整理华为的OS发展史。不整不知道,一整吓一跳。
华为自研OS的渊源要追溯到28年前,而且贯通了华为业务全部三大BG和两大BU!
第一章:难忘1991
1991年,南海之滨的南山半岛上,有了划世纪的故事。
1991年,徐文伟(大徐)领衔开发出了华为第一颗芯片——忘记取名字,就叫它ASIC。
在1991年,华为探索进入电信运营商市场,在争取准入(开发JK1000)的过程中,也开始开发自己的操作系统,徐文伟也正是研发负责人!
不禁好奇地问:怎么老是你!(歪译How old are you!)答曰:有“心”(芯片)也有“魂”(操作系统)啊!
差不多时候,遥远的北欧,有了大动作。
芬兰,是有极光和有诺基亚的地方。
1991年,芬兰打通了全球第一个GSM电话。中国的移动通信产业现在是世界最强,十大手机品牌中国有六大。无论是基站还是手机,都是从GSM开始发展的。这个话题本文就不发挥了。
就在这一年,21岁芬兰赫尔辛基大学计算机科学系的学生林纳斯·托瓦兹(Linus Torvalds)编写了磁盘驱动程序和文件系统——成为了Linux第一个内核的雏形,可以在采用Intel386 系列CPU的电脑上运行。
林纳斯通过新生的互联网(BBS)采用开源模式对外公开了这个Linux内核。在全球无数人的努力下,Linux操作系统当之无愧地成为了历史上最伟大的开源软件。
当时,全球开发者都迫切需要一种免费的、开放的、可以根据需要修改的操作系统。而当时,Windows和Unix都要收费,而且闭源。
Linux生逢其时。与其说是“人定胜天”,不如说是“时势造英雄”。“星星之火,可以燎原”,“干柴烈火、风起云涌”,“时运到了,挡都挡不住”,“Right time, right person”。
今天,Linux操作系统无处不在,无论是嵌入式、PC、服务器还是云,兼容了多种形态的CPU,包括intel的x86架构、ARM、MIPS、Power、Alpha(神威)等等。
林纳斯被誉为“Linux之父”。此称号当之无愧!他有句名言:Talk is cheap. Show me the code!
在后来的28年里, 华为和Linux有过不少交集。
第二章:孔雀东南飞
华为的今天,是十几万人集体奋斗的楷模。但是创业之初就没有几个人,个人的能力就非常重要了。
工作三年后,徐文伟在87-90年间,重新回到东南大学深造,读自动控制专业的研究生,师承衣承斌教授。“一个书包,两个碗,教室宿舍图书馆”。
衣教授在南京的工业界影响挺大,横向合作项目甚多,门下弟子大徐负责干具体的活,一方面设计单片机硬件,一方面用机器语言和汇编语言写嵌入式软件。
大徐的生活就是“操作系统”。读书和实践两不误(“多任务系统、并行计算”),每个月有例外的几十元津贴,吆三喝五去成贤街那有着漂亮老板娘的的林燕餐厅(“内存管理”),将鸭血粉丝转化成燃烧的激情和动力(“编译系统”),冰冷的啤酒侵入到身体的五脏六腑和九曲回肠(“输入输出 I/O”;“文件结构”),喝多了对着月亮讲些阿里不达的胡话(“高级语言”),回沙糖园宿舍一头躺倒在书丛中(“数据库”)。
计划经济时代,南京是中国最重要的自动控制和电力电子研发重地,很多部委都在这里有研究所和企业。记得当时有个部属的自动化所给每人发了一万多的年终奖金,让大家垂涎万丈!现在有南瑞、南自、东大金智为代表的众多电力电子企业。
东南大学是民国时期中央大学工程类学科衣钵的正宗传人。
有部名片叫《无问西东》。抗战期间,中央大学从东向西顺江而上去陪都重庆的沙坪坝与重庆大学共校址,却是真正的“无问西东”。1924年,大文豪泰戈尔去清华之前,先来南京,在后来是舞厅的老体育馆里讲话。徐志摩挥一挥衣袖登台翻译:“余乘轮船(从上海)溯扬子江而上.....及船近金陵,晨光熹微,鸟声杂树,无数帆船,顺风直驶,稳渡中流,又觉得此种光明浩大现象,即将来世界人类,经过混沌状态,由牺牲奋斗所得结果之比例。”
图注:泰戈尔访华期间与徐志摩(右一)、林徽因(右二)等人合影
闲话少说。大徐心已有所属,不花心思在莺歌燕舞中。他有空就去夫子庙的废旧电子市场,一堆堆来自国外的废旧电路板和电子元器件,按斤卖,可以找到有价值的芯片和器件,“寻宝游戏”。挑选三极管要用到舌头。先用万用表的两个表笔先分别接触好发射极和集电极来检查漏电流,再用舌尖舔集电极和基极,看看指针的变化以来看放大倍数。
大徐后来写过一篇《如何用万用表和示波器调试程控交换机》的指导书,不知道也要用舌头不?
计算机房里还有1980年进口的霍尼韦尔小型机,在纸带上打孔标记“0”或者“1”来做程序和数据的输入,CPU可以直接照此执行,这就是最最最底层的机器语言(machine language)。
知名外企亿利达来南京招聘。1990年初,高材生徐文伟偕家人来到了“文化沙漠”深圳,住进了农民房,在港企亿利达的高科技部研发高速激光打印机。差不多时候,倪光南在联想也开发了激光打印机,还做了芯片。
1990年,鬼才黄霑写了首歌曲,传唱到今天,正好描述那个年代:沧海一声笑,滔滔两岸潮,浮沉随浪,只记今朝。苍天笑,纷纷世上潮,谁负谁胜出,天知晓。
第三章:1992年,华为开发出了第一套操作系统
亿利达隔壁的深意工业大厦里,华为正在做用于企业用户的小交换机(俗称小总机),底层的软硬件设计能力迫切需要补强,挖空心思到处撬人,大徐就加入了这个充满着革命豪情的startup。从亿利达同来的还有他的小伙伴,中科大85级少年班的软件天才聂建林。
阿宝(郑宝用)主持研发的小总机上,华为有了第一桶金。不过好景不长,这个领域逐渐成为红海,国内出现了上百家同类型企业。中国最擅长的就是:将价格做烂,大家都没有钱赚。
图注:1994年访问美国,左起刘启武、李一男、杨汉超、徐文伟、郑宝用、黎健、毛生江
邮电体系使用的程控交换机,七国八制,利润高企,是蓝海。
有核心研发能力的国内厂家也都在努力进入。老戴的老领导李祥庭毕业于解放军信息工程学院的计算机系,他说本系的年轻教师邬江兴不知天高地厚地“口出狂言:“程控交换机不就是计算机+传统交换机吗?”就好比李书福的名句:“汽车不就是四个轮子加两排沙发吗?”
邬江兴拿了邮电部300万元就开干了,还真的做出了巨龙!华为侯金龙早年就安装和维护过巨龙的机器。邮电部十所背景的大唐也做出来了,倪光南也带领联想也开发出来了。
深圳是改革开放前沿阵地,好几家也在使劲。动作最快的是中兴。侯为贵是南京人,利用乡情和国企背景找到了南京邮电学院的陈锡生教授和糜正琨教授,这两位可是中国程控交换技术的领军人物啊。他们派教研室里三位年轻老师来到大梅沙,为中兴半导体开发出了500门程控交换机。两位老师因为家眷在南京因此回去了,单身汉殷一民留了下来。长虹的技术源自长春邮电学院(现在并入吉林大学)。央企中国电子旗下的桑达也是名噪一时。
现在的华为很强大,但当时的华为,却只是一个“草台班子”。学暖通搞过建筑还养过猪的任正非能找到的开发人员都不是程控交换科班体系毕业的,大多是出茅庐不久的毕业生,学生味还没有散尽呢!郭平挖了郑宝用来华为,阿宝带着大家和街上的小混混打过几架,福建农村出身的他,有着粗壮的胳膊。
据老戴所知,第一个加盟的通信科班毕业生应该是来自北邮的王诚。老板一看简历:什么?北邮的,要了!于是王诚就背着挎包找同学和校友帮忙去了,后来他担任过国内市场部总裁,老戴做过他的销售小兵。
要进入邮电局系统,首先要有国家发的生产牌照。华为要搞的时候,500门的已经没有指标了,只有1000门还有机会。时间还很紧,过了这村还就没有这个店了。
为了防止一哄而上的恶性竞争,国内经常用牌照来进行限制。如98年发了GSM和CDMA手机牌照,华为因为心头有痛,没有去拿,搞得后来好多年都进不了手机行业。后来的卫星机顶盒、支付牌照都是一样的故事。
1991年冬,华为成立了只有很少人员(10人左右)的项目组来试着做运营商的设备,从此走上了与世界各国之“狼”共舞的不归之路,这是一种“不成功、则成仁”的悲壮过程。
马修·连恩在加拿大育空地区创作的忧郁专辑《狼》里的主打歌正好应了此景:You would be a sweet surrender,I must go the other way,and my train will carry me onward。请你轻柔的放手,我必须远走他方,我的列车会载我到天涯。
时间很紧,如果赶不上在1992年底关闸,就没有“门票”进入邮电系统,那也就没有今天的华为。任老板也许就真的去“养猪”去了,说不定能搞个“任我行土猪”。
交换网络是空分还是数字,对于通过邮电部的鉴定,并没有任何影响。模拟空分技术做到500门之上就很难了,大徐就组织开发了两个500门的模拟空分模块合在一起做成了1000门。
网络一些文章认为JK1000没有采用数字网板是失误,并以讹传讹,这个观点是错误的。回到1991-92年,华为并没有几杆人枪,电信的门都没有踏进去,首要目标是要抢“门票”,要解决的自然是关键需求。
要进入邮电体系,核心是要实现电信运营商级别的“程序控制”,也就是主机系统,能有效地进行管理、计费和提升新业务。在极其有限的人力物力下,核心的主机系统采用什么技术路径能最快实现目标?当时有4个选项。
1、华为之前的HJD48用户机是基于单片机和汇编的控制方式。尽管对外也吹牛叫“程控”,但主要是打电话的功能。然而邮电部入网的要求甚多,在传统单片机上用汇编语言是无法满足的。(谭云飞:有老华为告诉我,HJD48的CPU是Z80,软件也是用的Z80汇编语言)
2、采用RISC(精简指令)的CPU芯片,如当时颇为流行的摩托罗拉芯片。难以用高级语言(如C)编写软件,编写操作系统和提升新业务也会很辛苦。
3、采用市场上可买到的基于386的PC主板(攒机爱好者最为熟悉了),达不到邮电部要求的可靠性,各种接口也不匹配,更没有办法做热备份。
4、自主设计基于386芯片的高可靠性主控板(不用市场上的通用PC主板),支持热备份,自己开发BIOS,用高级语言(C语言)+汇编的混合编程方式来编写主机软件。
JK1000最终决定采用了方式4。这个新开发的主控板也取名叫MPU(主处理单元)。
大徐是硬件开发者和汇编高手,聂建林是C语言高手,双剑合璧,和大家一起锻造了JK1000的主机软件系统。采用了C语言+汇编的混合编程方式。
图注:C&C08的主机软件结构,最核心的就是操作系统
图注:C&C08主机软件各部分功能
JK1000主机软件系统的核心是一个原生态的基于命令行的嵌入式操作系统,都是自己从头一句一句来开发的。它初步具备了操作系统的基本特征,如对全部软、硬件资源的管理和分配、任务调度,控制、协调并发活动等。
软件测试是一个难题。最初,主机软件系统动不动就吊死了(停止运行或者陷入无限循环),为了检查到底问题出在哪里,花了很大精力在程序中设计了不少计数器,并存储在内存的某个特定位置。死机后,通过去查计数器的数值,来分析判断问题在哪里。有没有谁玩游戏的时候直接去内存里改生命值的吗?
任正非经常晚上九点来给大家送面包牛奶,跟大家吹嘘“未来要在阳台上晒钱”,很好的“政委”和“教导员”。
十多个素人,只用了几个月,在1992年下半年,就开发出了JK1000(邮电)局用程控交换机。华为当时真的没有什么钱,任正非本人也只是租了个小房子住。
这也是大徐第一次带领团队打仗,完成了从闷头苦干到抬头看路的大“转身”。JK1000的研发人员中,老戴还认识滕云芳(曾担任新加坡代表)和何志强(曾任电信系统部部长和海思销售负责人)。
1992年下半年,浙江海宁的某镇开通了JK1000局用交换机。大徐、聂建林和研发同仁们在现场修改软件、编译、加载、运行,这都是当年的土办法。
浙江海宁局的局长非常nice,每到阴历的十五就拉着华为的全部人马出去看钱塘潮。看得大家心潮澎湃,思绪万千。
就这样,JK1000局用程控交换机赶在最后关头,通过了邮电部的鉴定,拿到了入网证,可以销售了!可以说,这是一把“金钥匙”。天佑华为,从此华为开始了一路开挂的征途。
让我们花些时间来赞美一下于贝尔实验室诞生的C语言。C语言是一门伟大的高级语言,大大降低了程序员写汇编的痛苦,还可以创造大量的软件功能模块,并进行灵活的调用。
用C语言写好软件,通过C语言编译器产生汇编代码,通过汇编器再转成二进制执行代码。程序员要理解汇编代码以及与它的源C代码之间的联系,因为编译器隐藏了太多的细节如:程序计数器、寄存器(整数、条件码、浮点)等。这正是大徐的强项。
在这里埋下了编译器的伏笔,今天的华为已经有了方舟编译器,可以手机跑得更快。8月9日,华为宣布方舟对外开源,造福整个业界。
老戴的C语言是清华生陆李启蒙,他后来也到了亿利达,现在是中国迷你对讲机之王。不过,老戴的嘴皮子更厉害,所以荒废了武功。
JK1000的主机系统用着用着就变得越来越慢(早期的安卓也是一样)。大徐就设置在每天半夜2点,没有什么人打电话的时候,系统自动重启,释放掉所有资源,全部重新来过。美名其曰“半夜鸡叫”。
开局成功后,应力释放,大徐住进了医院。这才有时间静静地看讲通信原理的书籍,感慨:原来通信是这样一回事情,自己还一直当做是自动控制设备来开发呢!华为的风格是“先结婚,后恋爱, 在枪林弹雨中成长”。
华为在全国各地邮电局大张旗鼓地去卖JK1000。当时西方公司非常牛X,价格昂贵。全国2000多个县,每个县的邮电局都有决策权。
深入一线,从农村包围城市,是华为的发展之路。在主要的省会开设了办事处,初步建立了覆盖全国的市场体系,但是也很简陋。姚福海到了山西太原,找了个旅馆住下,打电话告诉公司自己住哪个旅馆哪个房间。太原办事处,就这样成立了!
深圳的企业,销售手法丰富多彩,此处略去一万字。
JK1000在一年多里,就卖了近两百台,赚了不少快钱。
网络上很多文章说,因为JK1000是空分制式,所以逼得华为不得不同时启动数字制式C&C08的开发,搞得企业差点崩盘,任正非差点“跳楼”。
真实的情况刚好是相反的。如果没有JK1000卡在时点获得了”入场券“,华为就进不了电信运营商的门。如果没有JK1000卖的近200套,华为也支付不起开发数字机的费用,更加重要的是,没有底气真的去干电信这个活。
水平不行,服务来凑。“华友会”会长 俞渭华94年进华为,开始是去东北做服务。有过著名保卫战的黑山在一个乡镇有台JK1000因受雷击导致冒青烟了,工作人员英勇抢救却被薰晕了。他紧急赶赴现场,发现难修。主任苏伟指示:别留下“罪证”,马上发新机!立马找台车全拉走,“挖坑深埋”!后脚新机就到了。防雷与阻燃是工艺问题与通信技术无关,当年的乡镇机房的避雷与接地也实在不好。华为用深入到黑山白水的快速响应来获得了立足之地与客户的理解。避雷是个共性问题,华为用了一些年才最终艰难地解决。
第四章:适度创新,稳打稳扎,步步前行
JK1000开发胜利在望的时候,华为启动了数字机C&C08 A型机的开发。主机系统完全承接了JK1000的技术路线,硬件上则聚焦解决数字网板的技术难题。大徐作为器件室负责人,也冲在了最前线。
1993年,A型机开发成功后,又继续启动了万门机的开发(C型机和后续定型的B型机)。这次主要解决的技术问题是两个,一是通过自己设计芯片来提高数字网板的集成度和容量,二是通过光模块来实现多个模块之间的连接。
可以看到,华为的成功经验是:将每次产品开发的创新工作量控制在一定的比例里,确保每个产品都能商业销售。步步为营,稳打稳扎,层层推进,而不是指望一口吃成一个胖子。
后来,任正非在《创业创新必须以提高企业核心竞争力为中心》的演讲中说到: 我们提出了在新产品开发中,要尽量引用公司已拥有的成熟技术,以及可向社会采购的技术,利用率低于70%,新开发量高于30%,不仅不叫创新,而是浪费,它只会提高开发成本,增加产品的不稳定性。
人老了,最近的事情不一定记得,尘封已久的往事却时不时浮上心头。
早年里,主机软件就是一个大包,每次都是整体升级,复位重启。不像西方公司,可以通过打补丁的方法来进行错误的修正。为了解决网上问题,有时候一个下午都会出几个版本,如三点钟版、五点钟版、七点钟版。
为了能实现整个系统的快速复位重启,大徐使用了FLASH闪存技术,在备份的MPU的闪存上先LOAD上新版本的主机软件,重启该MPU,然后进行主备MPU切换,一秒钟整个系统就复位成功了,堪称“光速”!这个技术,老戴后来卖移动GSM的时候也经常吹嘘。
老戴的同班同学邹孟睿,97年毕业到中兴通信做程控交换机内核的开发,中兴上市前突击分了一把股票。1997-11-11光棍节中兴上市,他以迅雷不及掩耳之势赚了一把快钱。为庆祝他发财,老戴也去莲塘热闹了一回,听他嘀咕道:内存管理是程控交换机主机系统最头疼的技术问题。
和老戴一起97年进华为的王迎军,一起租住粤海门村的农民房,后来他成为华为核心网几巨头之一。 98年,大家一边兴致勃勃地交流香港的小电影,一边谈技术。他将所有的主机软件代码全部都读了一遍,是C语言编写的,核心是一个基于命令行象DOS的操作系统。他说,最可怕的是有一堆全局变量,追踪起来极其痛苦。作为核心测试人员,他有次和中兴通信去PK,连夜修改内部参数连夜编译,使得同样负荷下的CPU的占用率更低。CPU占有率是个核心指标,老戴敲字的电脑现在CPU占有率是77%。
王迎军是学化学的,不过对这个专业一点不感兴趣,就去考了个高级程序员,从此掉到了“01010101“的坑里。前些年我们在西丽的农庄一起种过菜,他再也不和我谈香港小电影了,谈的是诗与未来,做了领导,就是不一样。
南京邮电大学糜正琨教授的弟子曾浩文是殷一民的师弟,他于1997年毕业后却来到了华为,从开发工程师做起,在世纪之交成为C&C08最后一个版本128模的研发负责人。号称可以支持百万用户,华为第一次在窄带数字程控交换这个单品上做到了世界销量第一。曾浩文记得当时有句话:华为不想成为世界第一,却不得不走在成为第一的路上。
有意思的是,128模第一版推出后,发现了众多 bug,修修改改很麻烦,就重写了一次整个系统代码。同样的事情,GSM也干过。
有没有Windows什么事?
核心的前台主机软件(含操作系统)确实是从来没有Windows什么事的,但C&C08上还有一个BAM模块(后台管理单元)可以用。即使关掉了BAM模块,C&C08的前台主机软件也是照样运行。BAM后来演进为OMC,华为云BU负责人郑叶来就是当时OMC的开发负责人。一线OMC应用软件偶尔有点小瑕疵,老兵戴辉去反馈,OMC接口人答得让人啼笑皆非:是你们国外Windows版本的兼容性问题,与我们并没有什么关系!
李泓:当年进华为就接手CC08B型机的计费和告警模块。后来想跳槽到智能业务部下面的互联网研究部(后来被撤销了),交换部的总经理张顺茂不放人,说交换部的部门任意选并建议我去32模块(那时128模块还没开始呢),把我弄到了测试部去负责BAM的测试,跟王迎军一样做了个小Leader,没想到他现在是核心网的巨头了。看了你的文章,勾起了好多当年在华为做螺丝钉的回忆。
最后说一下软件销售的商业模式,和主机软件密切相关。
早年主机系统软件中并没有做license控制,升级和软件服务也是免费的。只要客户持续不断地买华为设备,什么都好商量。
04年我去印尼运营商那里,发现西门子的服务人员每个月都过来一次,看网上增长了多少用户,就给运营商开张发票,再收一把份子钱,可西门子确实什么都没有干啊,怎么就可以收钱?
徐直军(小徐)成立的战略与MKT有个商业模式部,研究行业惯例,开始搞“存量收费”,按用户、按功能进行license控制,每年的软件维护和升级合在一起也要收取软件服务年费。华为的技术支持部门因此获得巨大收益。曾祥森和王海君先后担任了这个部门的负责人。
当年主要是靠卖硬件赚钱,没有想到到了今天,软件license才是真正赚钱的东西。因为核心网全部云化后,底层硬件就是x86通用服务器了,谁都能卖,毛利变得象纸片一样薄。
第五章:核心网的OS成为整个华为发展的基础
最近中美贸易摩擦中,大家注意到了”5G核心网“这样一个名词。美国对核心网给与了很多关注,可见这是非常重要的网络设备。
核心网从功能上讲,不仅服务于座机(固定电话),也服务于移动电话,包括2G/3G/4G/5G等。特定服务5G的时候,就叫5G核心网。
核心网从硬件和操作系统上,这些年有了很大的变革。
1、TDM(时分复用)的架构,传统上叫数字程控交换机。当年刘江峰做GSM开发的时候,MSC(相当于移动的程控)和BSC(基站控制器)都是基于C&C08的平台。
2、IP化。基于IP的软交换架构,也叫NGN(下一代网络)。硬件上有cPCI(框式)和ATCA(刀片式)两代。
3、IP+IT化。IMS(IP多媒体系统)架构。硬件从此变成了x86通用服务器,软件架构变化很大。
4、全面云化,NFV(网络功能虚拟化)。
华为核心网的实时操作系统前后有了四次技术变革。
1、28年前,大徐他们是从底层开始一点一点自研的操作系统。
西方做RTOS(实时操作系统)内核的那些小公司从八十年代才刚刚从两三个人的规模起步,尚未影响到中国。价格昂贵,还要是美刀,小公司华为也根本支付不起。
2、九十年代中后期,融入全球先进技术潮流,C&C08也在基于pSOS和VxWorks微内核的基础上开发了嵌入式实时操作系统。
C&C08 128模块的主机系统里,SPC模块用的是pSOS,PPC和CPC模块用的是VxWorks。
拥有VxWorks内核的美国风河公司,也收购了pSOS,最后一起并入到了Intel公司。华为的主处理器,也因此长期使用Intel的x86架构。大家看到了CPU和操作系统内核之间的强锁定关系。
诺基亚和爱立信也是采用类似的做法,都是VxWorks的客户。
思科则是基于QNX的内核,是QNX在汽车领域之外最大的客户。老戴今天就在渥太华,QNX的总部就在这里。QNX于1980年成立,一群人哼哧哼哧做了几十年,不停地去适配各种场景,实时性稳定性兼容性俱佳,QNX在传统汽车的OS中市占率非常高,达到了80%左右。QNX后来卖给了黑莓,就是那个曾经无比辉煌的手机品牌。
华为5G的基础理论研究也是华为5G首席科学家童文博士带队在渥太华来干出来的。
图注:老兵戴辉于华为渥太华研究所前
3、2007年开始,华为成功基于开源的Linux内核来实现实时操作系统。
这是Linux阵营和华为的一个大的进步。
实际上,风河公司自己也在大力推广嵌入式Linux内核了。
核心网平台首席架构师姚弋宇写了一篇文章,叫《从泥坑里爬起来》。
2007年,核心网在软交换硬件架构上,从cPCI平台切向ATCA平台,但都还是用Intel的x86 CPU。最大的改变在操作系统上,从ATCA架构开始,在Linux上进行了大量优化开发实时操作系统,并替换以前的基于pSOS和VxWorks内核开发的嵌入式实时操作系统。
优化解决Linux的时延时,一点一点地抠,最终成功将时延降低到非常低的水平。上次听无人机公司讲开发经验,也是要一克一克地去降低机体的重量。
这是一个伟大的胜利,最终成功打造了第一个公司级的电信Linux操作系统,后续延伸到了数据通信产品线的VRP上。省了钱不说,还大大提升了能力。华为对国际Linux开源阵营也做出了巨大的历史贡献。
任宝刚点评:我2009-2012年是核心网平台项目经理和开发代表,当时和爱立信比拼ATCA的刀片硬件架构加基于开源Linux内核的软件平台(之前是cPCI专有硬件+VxWorks嵌入式平台),一开始大家问题都很多,每天开车从东莞往回拉日志分析,被客户骂刀片架构是“刀刀见血”。好在我们最后胜了。ACTA平台的第一个全球商用的版本就是当时我们搞的。尽管最终的结果是好的,但是过程都是极其艰辛的,所以对待那些创新和失败,要有足够的耐心,没有神话,火候到了才能出来。
按任正非的理念,如果一个技术的核心是算法和逻辑,华为是可以通过努力来搞定的,所以华为在汽车BU里,做电池管理BMS(核心是算法和逻辑),却不做电池(核心是化学和材料)。任正非大力呼吁国家培养更多数学家。
4、新引入了一个层次:云计算,新架构叫NFV(网络功能虚拟化)。原有的RTOS不变。
这与华为的Fusion Sphere云计算操作系统是一脉相承的,采用了采用了KVM虚拟化引擎(也属于Linux阵营)、Docker容器、K8S(Kubernetes)等各种技术。
云技术为CPU的切换、在核心网中引入ARM服务器带来了机遇,后面将会讲到。
第六章:鸿蒙RTOS诞生
大家看到了,华为的OS经过了独立开发、基于pSOS和VxWorks微内核开发RTOS、基于开源的嵌入式Linux宏内核开发等多个历程,这为鸿蒙的诞生奠定了雄厚的技术基础和理解。
有个人很关键,他叫王成录。他先是核心网产品线总裁,核心网OS上积累了经验(实现了基于嵌入式Linux的RTOS)。随后调任2012实验室中央软件部总裁,并启动了鸿蒙的研究。网络上有任正非2012年与2012实验室员工的对话,表明华为开发手机操作系统是为了做“备胎”。提问的李金喜来自2012试验室下的中央软件院欧拉实验室终端OS开发部,负责面向消费者BG构建终端操作系统能力。
王成录最后到消费者BG任软件总裁。他的文章《华为手机操作系统往事》提到华为优化的F2FS文件系统克服了安卓传统的碎片化缺陷,已经为谷歌的安卓系统所吸收。“天生快,一生快”。文件系统是手机和PC操作系统的一个重要组成部分。
图注:8月9日开发者大会上,王成录发布EMUI 10
任正非先生关于鸿蒙操作系统有精辟语录:我们有数千块(注:种类)电路板,电路板都要有操作系统。鸿蒙操作系统是一个面向确定时延系统的操作系统,实现系统端到端处理时延是精确到 5 毫秒,甚至更低的毫秒级乃至亚毫秒级,控制只有这么小时延,对物联网自动生产有用。比如无人驾驶,齿轮转过来时延是几毫秒,如果是不准确的,不然这个齿轮来了,那个齿轮还没有来,就咬合不上了。我们是为了万物互联、将来走向智能社会所做的一个操作系统。
从任正非先生的言语中可以看到,鸿蒙未来也可能用到系统设备上。
第七章: 华为操作系统群芳谱
在核心网的OS基础之上,华为的操作系统百花齐放,贯通了华为业务全部三大BG(运营商、企业、消费者含手机)和两大BU(云计算、汽车)。
在我去年描述的中国操作系统群像里,已经列举了华为的系列化操作系统,增补总结如下:
1、路由器和数据通信交换机操作系统:VRP(通用路由平台),这是华为OS的另外一条主线
1996年,华为的C&C08卖得热火朝天,华为仓中有粮,在北京研究所开始了数据通信的研发。
华为的VRP应该基于美国风河公司的VxWorks 微内核开发了实时操作系统。Tornado 是风河公司推出的一套实时操作系统(RTOS)开发环境,类似Microsoft Visual C,但是提供了更丰富的调试、仿真环境和工具。另外还有一家同行pSOS,后被风河收购了。
2003年1月23日,思科公司在美国指控华为侵权。诉讼过程之中,发现华为的VRP系统比思科的IOS体积小多了,效率也更高。
无独有偶。思科的IOS实际上是基于QNX内核开发的实时操作系统。
前些年,核心网OS采用了开源的Linux内核实现了RTOS以后,华为数据通信的VRP也已经采用嵌入式Linux内核了。
在移动通信中,有一个很重要的领域:PS域(分组交换系统),如GGSN/SGSN等,功能是在3G/4G/5G系统中处理IP数据打包和交换。现在大家用手机基本上都是走流量而不是打电话,所以PS域也就越来越大。PS与RAN(无线接入网络,基站等)密切相关,所以华为内部常年将PS直接归类在无线产品线(RAN)内。
华为3G/4G/5G的PS域是基于自己的数据通信交换机,所以也同样采用过VxWorks 的微内核。
2018年8月英国对华为系统的安全审查中,认为华为采用的VxWorks系统在 2020 年后将无法获得安全补丁和升级,有安全隐患。
但实际上,这并不是什么问题。
一方面,华为的数据通信交换机已经开发了自己的基于嵌入式Linux内核开发的RTOS。即使对于风河,官网上也介绍了英国电信的RAN(无线接入网)采用风河的嵌入式Linux的成功故事。另外一方面,鸿蒙的微内核,也可以做备胎。
2、云计算操作系统:Fusion Sphere。最初采用XEN虚拟化引擎,现在走向KVM。
3、服务器操作系统:欧拉EulerOS,即将开源,和全世界共同进步。
4、物联网嵌入式操作系统:LiteOS。超轻量级,已经开源。
通信泰斗邬贺铨认为:“AIoT是IoT的发展方向,IoT需要AI来提升其价值。5G是连接AI与IoT的桥梁,其高带宽、高可靠低时延、大连接开拓了AIoT更广阔的应用领域。”
5、汽车和无人驾驶操作系统:鸿蒙。余承东宣布鸿蒙开源,通过开源来吸纳全球智慧,是最好的办法。
6、智能手机、电视机操作系统:鸿蒙。这个大家说得很多了。
7、方舟编译器。方舟编译器并不是操作系统本身,但是一方面可以提高编译后操作系统程序的运行效率(手机跑得更快),另外一方面,大大方便APP业务移植到鸿蒙,原来的安卓应用(APP)只要做很小的改动,就可以通过方舟编译器编译后,在鸿蒙上运行。
一花独放不是春。华为30年,为社会培养了不少人才,创业系中也有好些做操作系统的。
A、季昕华创立的UCloud,是唯一一个没有依靠大产业背景而独立做大的公有云,因为“刀塔传奇”手游云业务而一炮走红。UCloud在公有云中是第一个基于开源的KVM引擎进行开发的,甚至早过了阿里云。
B、华三是从华为体系分离出去的。VRP操作系统从此“花开两朵,各表一枝”。华三体系的OS命名为Comvare。
C、宇视又是从华三分离出去的,Imos Inside是宇视安防OS的商标。Intel认为Imos Inside侵犯了Intel Inside的商标,但并未能获得法院的支持。
D、曾浩文创立的京华科讯是国内第一个自主桌面云OS,第一个采用KVM虚拟化技术路线,成功进入了海陆空三军。
第八章: 掌握了操作系统,就不怕CPU卡脖子了
5月15日,华为被列入了实体清单,Intel的CPU一度对华为断供。
老兵戴辉大胆预测这对华为不会有什么大的影响。因为华为控制了操作系统之后,下层的CPU就可以灵活切换了。
在数据中心(和云)服务器领域,Intel占领了超过95%以上的市场份额。
由于历史原因(本文已经介绍了这个历史),目前全球的电信核心网都是采用Intel的x86架构通用服务器。
因为电信核心网操作系统为华为所控制,再上层的业务和生态也是为华为所控制,所以这个领域的服务器完全可以从x86架构转成Arm架构。
华为不得不做这个事情。今年1月7日,华为发布首款ARM架构服务器CPU鲲鹏芯片及泰山服务器,发布人就是徐文伟。通过容器技术,可以将多台泰山服务器(采用Arm CPU)构成大的服务器集群,从而在电信核心网上使用。
回头看Linux,最早一版也只基于x86,后来也跨平台支持了Arm、Power,MIPS等各种CPU架构。
我们将眼光投向腾讯。微信的服务器集群,上边都是跑的基本都是安卓和IOS生态,在技术上,也完全可以采用Arm服务器集群,而不是以前的x86服务器集群。
在电信的计费领域,华为已经有了成功案例。
2019年7月19日凌晨,经过紧张而有序的割接,山东移动计费CRM系统的软硬件成功实现替换升级,成为首个在核心系统中采用国产自研全套软硬件解决方案的运营商,在自主可控的道路上迈出坚实一步。华为自研系列IT软硬件:基于鲲鹏920的TaiShan泰山服务器,GaussDB高斯数据库、服务器操作系统欧拉EulerOS。
更早一些时候,2017年底,倪光南院士披露,航天科工集团“商密网”是当时规模最大的全国产软硬件构成的信息系统,已部署了2万台全国产桌面电脑,由包括“航天昆仑数据库一体机”在内的国产服务器提供云服务,并引入了采用航天元心移动操作系统的安全手机支持移动办公。
对于个人电脑而言,Intel也面临Arm的挑战。去年夏天在硅谷的微软店里,看到了采用高通基于Arm的CPU,加上微软的Windows,由联想Lenevo打造的支持always on的笔记本电脑。海思新近也在开始做基于Arm架构的用于笔记本电脑的CPU了,期待中。
结语:创新永无止境
2019年的东南大学毕业典礼上,曾锻造华为第一颗芯片和第一套OS的徐文伟发言:
“华为从创立以来一直在坚持的,就是创新。过去30多年以来,华为的成功是基于客户需求的技术创新和工程创新,帮助客户成功的解决方案创新,实现商业成功,这样的创新,我们称之为华为创新1.0。而信息产业超过50年的高速发展,理论和工程都遇到了发展瓶颈,我们需要理论突破,我们需要从0到1的创新。
“华为正式宣布进入创新2.0,创新2.0的核心是基于愿景的理论突破和基础技术的发明,而理论突破和基础技术发明源头之一是学术界,在大学里,在座的各位之中。”
后注:老兵戴辉已经系统整理并发表了华为的芯片史、无线史、手机史、光传输史、华电-华三创业系史、操作系统史,新的作品正在路上。请叫老兵戴辉为“华为科技史之始作俑者”。
最后,记得关注微信公众号:镁客网(im2maker),更多干货在等你!
硬科技产业媒体
关注技术驱动创新