近日,华为的鸿蒙操作系统成为了业界关注的焦点。什么是操作系统?直接给出定义太无聊了,我举个例子说明一下。在移动互联网时代,应用最为广泛的两大操作系统是:安卓操作系统和苹果操作系统。如果打个更直接的比喻,操作系统就像是人的基本功能,如吃、喝、睡,而应用软件就像是人所具有的各种高级能力,如唱歌、跳舞、弹琴、等等,而硬件设备可以直接看成是人体部位。我们回顾操作系统的发展历史,发现操作系统已经发展了将近半个世纪,其涵盖范围包括:个人电脑操作系统、工业应用操作系统和移动操作系统。其中,个人电脑操作系统包括大家熟知且常用的微软Windows操作系统、苹果Mac操作系统,以及门槛相对较高的Linux开源操作系统。移动操作系统目前是Android和Apple操作系统之间的二分法。至于工业操作系统,因为离大众比较远,这里就不分析了。本文重点回顾个人电脑操作系统的发展历程。所有现代操作系统的鼻祖都可以追溯到AT&T和贝尔实验室联合开发的MULTICS(MultipleInformationComputingSystem)。此后,整个操作系统的演进大致可分为以下三个阶段:Unix初始系统诞生。此时的操作系统主要面向专业人士,没有可视化界面,非专业人士无法使用。可视化操作系统的演变。以苹果Mac、微软Windows为代表的可视化操作系统的诞生,降低了用户使用门槛。开源Linux的诞生和演变。全世界软件人员共同开发的自由开源操作系统的诞生和快速发展。下面,我们就以操作系统在这三个阶段的发展为主线,来简单回顾一下计算机端操作系统的发展历程。01.最初的Unix系统的诞生计算机操作系统的鼻祖来自MULTICS(MultipleInformationComputingSystem),我们这里简称为M系统。M系统于1964年由贝尔实验室、麻省理工学院和通用电气公司联合开发,其目的是开发一种安装在大型机上的多任务操作系统。因为那时候计算机一次只能接受一个任务,多人的任务需要排队执行。后来,原M系统设计成员肯·汤普森(KenThompson)因为无聊,想把一套叫《太空旅游》的游戏移植到他们实验室的一台机器上,开发了一套软件。这套软件是参考了M系统的思想设计的,但是功能和用途比较单一。实验室里的人戏称这个软件为Unics(SingleChannelInformationComputingSystem)。由于当时的Unics,每次移植到新的机器上,都需要在机器上反复处理,需要针对不同的机器设备进行额外的编程。对于懂电脑的人来说,连驱动都要自己写配置。当时该系统的传播受到硬件和用户能力的限制,只能被极少数人使用。1971年,肯·汤普森和丹尼斯·里奇(DennisRitchie)为了让当时的Unics更加便携,适合不同的硬件设施,创造了C语言。1973年,他们用C语言重写编译了Unics的核心,正式命名为Unix,形成了Unix的第一个版本。这个版本是用当时看来是高级语言的C语言改写的,缓解了对底层硬件的依赖问题,因此可以在各种机器上广泛使用。第一代Unix使用了200多个程序命令。内核虽小,但功能却极为精简和强大。那时,传统上需要100到1000行代码的程序在Unix中可以用不超过10个命令来解决。由于其极高的效率,它在AT&T内部迅速而广泛地传播开来。不懂软件编程的人可以想象,在当时的Unix下,可能需要一天才能完成的工作可以在几分钟内完成。这种神器能不能快速传播?计算机软件的发展是一个不断优化和提高效率的过程。Unic的发明是为了简化复杂的任务。同时,为了简化软硬件的关联处理,重新创造了一种新的语言(C语言),从而实现了软硬件分离,为现代操作系统(Unix)的发展打下了坚实的基础。).需要指出的是,当时的Unix属于美国AT&T公司旗下的贝尔实验室,但该公司与学术界合作开发(加州伯克利大学),并迅速在各大高校中普及。然后在1977年,伯克利大学的BillJoy获得了Unix的核心源代码后,开始修改成适合自己机器的版本,并增加了很多功能软件和编译工具,最后将其命名为BerkeleySoftwareDistribution(简称BSD)。).这个BSD是Unix的一个很重要的分支,Apple的操作系统其实就是从这个分支衍生出来的。1979年,出于商业考虑,AT&T收回了Unix的版权。因此,在1979年AT&T发布的第七版Unix中,专门提到了“不能向学生提供源代码”的严格限制。这导致了学术界的自力更生。安德鲁·塔南鲍姆(AndrewTanenbaum)教授参考Unix的功能,写了一个Minix系统来教给学生操作系统。该系统于1986年完成并发布,次年出版了一本关于它的书。这就是著名的林纳斯·托瓦兹(LinusTorvalds)能够构建第一代Linux的基础。02、可视化操作系统的演进1984年以前,所有的操作系??统都是基于企业大型机或大学研究机构设计和使用的,还没有普及到普通人都能使用的地步。当时,大多数计算机系统都基于没有图形用户界面的命令行终端。这样的操作系统只有极少数高级专业人士和学术界师生使用。然后在1984年,一切都变了。1984年前后,操作系统的发展发生了哪些变化?VisiCorp首款可视化操作系统VisiOn发布。Apple的第一个可视化操作系统MacOSSystem1.0发布。Microsoft推出Windows1.0(1985)。日本NEC宣布率先实现基于ITRON/86规范的ITRON操作系统。几乎无一例外,世界上几个重要的操作系统都在这个时间段发布了基于该操作系统的商业版本,而且都是图形界面。这四种操作系统近40年的演变几乎影响了我们现代生活的方方面面。VisiCorp的操作系统是为大型企业设计和使用的,普通人无从知晓它是如何演变而来的。我们不会在这里详细介绍。Apple的MacOS其实是从Unix(免费BSD版)衍生而来的,是Unix阵营向普通消费者进军的主力军。图形界面和应用程序降低了系统和机器的使用门槛。微软之前一直在使用MS-Dos命令行系统。看到苹果的可视化界面后,马上开发Windows系统,共同抢占普通消费市场。恨杀战。ITRON与日本精密机械工业的结合,使日本在数据系统、工业机器人、办公机器等领域处于世界领先地位。例如,日本本田汽车的发动机控制系统就是基于ITron。03、开源Linux的诞生与演进20世纪80年代中后期,大量基于可视化操作界面的系统问世后,操作系统才真正流行起来。而可视化操作系统直接安装在机器上,既降低了用户使用门槛,又封闭了本来就复杂的软件设计。对于具有黑客精神的学术师生来说,很难看到隐藏的具体设计。于是,Linux这种基于开源的操作系统应运而生。1991年,在赫尔辛基上大学的LinusTorvalds参照Unix和Minix重写了一个最初的Linux系统,并于10月5日发布了第一个0.01版本。1993年,大约100名程序员参与了Linux的编写/修改内核代码,核心团队5人。此时Linux0.99的代码约10万行,使用人数约10万。到了2019年,最新的Linux内核发布了,这个内核大约有2500万行代码。与Unix的闭源(代码不可得)不同,Linux系统遵循开源协议,这意味着任何人都可以获得代码并对其进行编辑和修改。因此,Linux得到了极大的重视和应用推广。由于全世界系统爱好者和用户的参与,到Linux内核4.9.2版本时,Linux内核源代码超过1800万行(目前最新版本超过2500万行)。我们使用微软的Windows系统研发对比来评估这些代码的研发投入。微软的WindowsVista有大约5000万行代码和超过65亿美元的研发费用。几千万行代码的时间投入是什么概念?以国产金山办公软件WPS为例。WPS的代码量约150万行,开发时间耗时3年。从这个研发成本来看,我们的系统采用的是完全自主研发的方式。不如直接拥抱Linux开源社区。毕竟,站在巨人的肩膀上更有效。这时候读者朋友们可能会好奇的问,目前市场上主流系统的分布情况是怎样的?下图给出了答案:Windows系统依然是市场的主流。Linux的发展虽然很精彩,但市场份额实际上只有1.61%(如果将谷歌的ChromeOS也算作Linux的一部分,则合计为2.78%)。那么微软为打造这款占据市场主流的操作系统付出了多少代价呢?下图是微软从2002年到2018年的研发费用。需要注意的是,微软的研发包括三部分:操作系统的开发、支持操作系统的各种应用程序、驱动程序等围绕系统的生态建设成本.其中,2018年支出超过147亿美元,折合人民币约1020亿元。另外需要指出的是,尽管微软的Windows系统占据了主要的市场份额,但每年投入的研发费用仍超过1000亿元,这也为市场上的系统竞争设置了超高的门槛。04.中国电力的崛起当前开源社区中中国电力的现状如何?首先,早在1999年7月,几位年轻的创业者就在中国版蓝点Linux(BluepointLinux)上做出了第一个framebuffer(Linux为显示设备提供的接口)。但由于没有坚持在操作系统方向上不断深耕,最终导致蓝点公司的Linux系统消亡。此外还有红旗Linux(1999年8月诞生)和中软Linux(1999年9月发布)。但由于在用户体验上不如Windows,没有市场支持,最终也没有成熟和强大。但是,随着我国庞大的IT从业者的崛起,情况发生了根本性的变化。以Linux5.1内核的贡献为例:我们拉取了Linux内核贡献超过1%的国家的统计数据,发现:美国第一,中国第二(注:第一名是未知类别,不是真实有效的国家)。从公司的角度来看,中国华为对Linux的贡献位列第三(注:第一名属于未知类别,不被认为是有效的公司名称,其排名见下图)。财报显示,华为2018年的研发投入也超过1000亿元人民币(1015亿)。可见,面对谷歌的系统封禁,华为是有底气的。从另一个角度来看,我们公司还有很长的路要走,希望有更多的公司上榜。只有这样,我们的独立操作系统才算稳定。05、华为鸿蒙系统的诞生前面我们提到,日本在1984年提出了Tron系统规范,目的是打造一个开源可用的操作系统,从而减少对美国Windows系统的依赖。Tron系统的原型于1987年完成,但该系统并没有像预想的那样成为类似Windows的替代品。日本Tron操作系统的发展受到美国政府的打压,导致其在人机交互场景中未能继续发展。也许你会问:为什么日本的Tron操作系统会被打压?要弄清楚这个根本原因,首先要了解另一个基础:芯片。我们知道操作系统就像人的灵魂,而芯片就像大脑。软件和硬件的结合才能产生真正的生产力。80年代的日本,“芯片产业正处于鼎盛时期,占全球DRAM(俗称电脑内存)近80%,硅谷的英特尔、AMD等科技创业公司在该领域被日本人追赶半导体存储领域,继而反超并赶下王位,半导体芯片领域(当时主要是半导体存储占主导地位)成为日本企业的后花园。(摘自《魔铁的世界》《30 多年前,日本是如何输掉芯片战争》)日本的芯片实力已经开始碾压以美国为首的西方世界了。如果此时软件也有所突破,西方世界的科技市场将面临全面碾压。当时日本提出的波场系统是美国完全不能接受的。因此,在美国对日本实施的超级301法案中,Tron系统是不允许在学校安装的。因为它很可能带来另一个版本的Unix发展史。现在来看,美国打压日本芯片和软件,和现在禁止华为使用美国芯片和软件是一样的吗?我想这也是华为提前规划鸿蒙系统开发的主要原因。纯操作系统技术,相信国内有能力看懂,看透。然而,如何在保持原有消费市场的同时开发出新的系统,才是考验企业能力的地方。在这方面,华为的策略是相当惊人的。华为如何回应?华为的系统改动让普通用户毫无察觉,因此不会影响用户对系统的体验。华为EMUI系统的开发迭代,深耕多年。Android系统深度解耦、碎片化、更替,系统优化逐步升级。比如华为贡献给Android开源社区的EROFS文件系统就是其中的一部分。华为的系统同样采用了随飞随换的策略,让用户在每次升级过程中都可以在不知不觉中更换一个优化过的模块,而这些模块是鸿蒙系统经验总结的一部分。在这里,也不得不提一下华为的方舟编译器。方舟编译器对于普通人来说只是一个编译工具,但实际上对于一个新系统来说却是至关重要的。操作系统是否健壮取决于它对底层硬件的利用程度。以汽车来类比,系统构建就像汽车发动机的构建,编译器就像制造汽油的装置。一个好的编译器就像直接生产98号汽油一样,让你的机器飞得越快越好。编译器能不能设计好,就看你对手机硬件的了解了。从这个角度来看,华为在系统建设上是有信心的。然而,这些还不够。华为的鸿蒙系统如何能够顺利兼容安卓生态,是一个需要深思的问题。与30多年前相比,中日两国的情况虽然相似,但市场和外部环境却大不相同。未来鸿蒙系统的发展让我们拭目以待。作者:郑庆政简介:苏宁金融研究院数据风控实验室首席研究员
