鸿蒙与安卓:技术架构与互联网史的深度解析

发表时间: 2021-11-19 16:54

如果把造操作系统比作造汽车,那么Unix就是蒸汽汽车,Linux是内燃机,而谷歌的贡献就是电子屏,但华为不仅造车、还修高速公路。


操作系统发展史

什么是操作系统

操作系统是配置在计算机硬件上的第一层软件,是对硬件系统的首次扩充,其他系统软件和应用软件都依赖于操作系统的支持。操作系统主要实现进程管理、存储管理、文件管理、中断处理和网络管理等功能。

操作系统可以简单的分为两类,一类是Unix系统,如iOS、Linux、Android,都是此类;另一类是非Unix,典型的就是windows系统。


Unix

如果把造操作系统比作造汽车,那么Unix就是最早的蒸汽汽车。

UNIX操作系统由AT&T(贝尔)公司在1969年开发,早期UNIX版本完全免费,而且可以轻易获得并随意修改,所以很快得到了广泛的应用和不断完善。UNIX的设计原则是:简洁至上;提供机制而非策略。


Linux

1991年,芬兰学生林纳斯·托瓦兹(Linus Torvalds)根据Minix(用于教学的小型Unix操作系统)编写了Linux系统内核。Linux系统包含Linux内核和桌面图形环境,Linux是遵循GNU(开源软件项目)和GPL(通用公共许可协议)规范的操作系统。

一个典型的Linux发行版包括Linux内核、GNU程序库和工具、命令行shell、图形窗口X-Windows系统、图形桌面环境(如KDE或GNOME),并包含办公套件、编辑器、文本编辑器,以及各种应用软件。Linux的发行版本大体可以分为两类:一类是商业公司维护的发行版本,以著名的RedHat Linux(红帽)为代表;另一类是网络社区组织维护的发行版本,如Ubuntu、CentOS、等。

如果Unix是蒸汽汽车,那么Linux可以认为是内燃机,是现代交通工具和工业机器的动力,它不仅可以用于私人汽车(类比PC个人电脑),还可以用于公共汽车(服务器)、机床(专用设备)等领域。


windows

1975年,美国人爱德华·罗伯茨(MITS公司创始人)利用各个厂商的硬件组装出一台PC——Altair 8800,还在上大学的比尔·盖茨和保罗·艾伦编写了用于8080机器的BASIC,并获得MITS订单。后来这俩哥们开了微软公司,专门做操作系统和软件。

Window可以看作是专门为私人汽车打造的内燃机和仪表系统(视窗),与Linux不同的是,Linux公开了自己的产品设计方案(开源),而windows则是闭源系统,视窗还可以修改,但内核层则是黑匣子,人们根本不知道里面装着什么。


Mac OS

苹果公司的乔布斯是个弄潮儿,1977年,他采用摩托罗拉M6502芯片等组件,造出来最漂亮的私家车(Apple Ⅱ苹果电脑),并基于Unix改造封装了自己的内燃发动机——Mac OS,苹果Ⅱ大获成功,推动了PC产业走向普及和繁荣。


聊安卓之前,我们先聊聊互联网发展史。


互联网发展史

广告——媒体与互联网业的基石

人们打开手机app、电脑、电视,总是被各种弹窗、嵌入式广告搞得不厌其烦,但很多人也许不知道,广告是媒体与互联网业的主要资金来源,没有广告,就没有这些产业的发展和繁荣。不管是早期的广播、报纸,过去的电视、互联网,现在的抖音,还是未来的元宇宙,无不如此。


谷歌——一家卖互联网广告位的公司

早期的互联网公司,如雅虎、搜狐,做的一件事就是开拓了新的媒体渠道,把报纸、电视内容逐步搬到了互联网上,顺便也把他们的客户——广告商,拉到互联网做广告。

谷歌搜索

后来,互联网信息日趋繁多,变成汪洋大海,人们为了更快捷的获得信息,诞生了搜索引擎——如谷歌、百度。谷歌在搜索页面的上部、下部、右侧都放入了广告位,(百度创造性的发明了搜索引擎竞价排名——搜索结果即广告);谷歌还发明了广告联盟,任何一个网站都可以从谷歌获取一段代码,这段代码负责展示广告,谷歌拿到钱会按流量给网站分成。

YouTube

在网络带宽变大以后,谷歌又做了YouTube,开始将视频放到网上。国内对标的就是优酷网,到处弹广告。很多人可能对于用不上YouTube耿耿于怀,就问你还用优酷么?都是个人生产的小视频,质量能高到哪儿去,除了黄赌毒和小道消息没啥特别的。现在看长视频大家都上腾讯视频、爱奇艺视频这些,平台花高价格购买或自制高质量的视频,谷歌是不做这个生意的。

Google Chrome

谷歌开发了一个很牛掰的产品,就是谷歌浏览器——Google Chrome。为什么要开发这个产品呢?你不知道360、腾讯、搜狐、UC等等,甚至各种盗版windows系统最擅长的就是做浏览器吗?你用谷歌浏览器,你就得用Google搜索啊,你就得用YouTube啊,这不明摆着为了赚广告费吗?

这个也是谷歌做安卓的思路。

google earth

谷歌最伟大的产品之一谷歌地球——谷歌地图的升级版。谷歌很了不起的一个特点可用从这个产品看出来——就是先做一个技术水平很高、很牛B的东西(如AlphaGo),不管有没有想通这东西怎么赚钱。所以,这东西估计谷歌没怎么赚着钱。但是谷歌地图是赚钱的,可以参见百度地图,不管是推广商户位置,还是卖地图、卖数据。


移动互联网时代来临

2007年苹果公司推出iphone智能手机,这个时髦的跑车再次推动了一个时代——移动互联网时代的流行和繁荣。


互联网公司造手机

人们的焦点从PC转到了智能手机,各大互联网公司也纷纷开始抢占互联网流量。怎么做呢?一般公司,比如腾讯、搜狐,就是开发个手机版的QQ、微信、游戏、搜狐浏览器;牛B点的公司,比如阿里、早期小米,做操作系统(套壳安卓);再狂妄点的公司,比如谷歌、360、小米,直接做手机。

逻辑很简单,只做应用的,还得人们一个个去下载;用我的系统,直接就带了我很多应用;但是别的厂商都不傻啊,干嘛用你的系统呢,于是上面那几位就自己下场做手机了。


谷歌——从造手机到造系统

小米是做手机成功了,但大部分做手机的公司都失败了,不仅是360、老罗的锤子等等,还有牛B轰轰的谷歌

虽然做手机失败了,但安卓系统算是活下来了,自己的目的也达到了——捆绑了各种自己的应用(即GMS,GoogleMobile Service,谷歌移动服务,包含了GooglePlay、Search、Gmail、Talk、Maps、YouTube、Android Market等),继续卖广告,闷声发大财。


谷歌只贡献了个显示屏

如果说Linux是汽车的内燃机,那谷歌就是把Linux改造成了一个适合现代私家车的发动机(Linux kernel)和显示屏。显示屏可以接入自家和第三方的各种应用,实现导航、听歌、看电视、收短信等功能。

注意,这个显示屏还不是它们家的,而是来自Sun公司的java框架组件。不仅如此,安卓很多系统运行库实际上都是成熟的开源项目,如WebKit、OpenGL、SQLite等。

顺便科普一下,安卓手机(HarmonyOS 2.0采用了类似架构)为什么比苹果手机卡。因为Android上的程序采用Java语言开发,而Android上的每个应用(APP)都带有独立虚拟机,每打开一个应用就会运行一个独立的虚拟机。这样设计是为了避免虚拟机崩溃而导致整个系统崩溃,但代价是需要更多的内存(以空间换时间)。


安卓开源——一起做大蛋糕

谷歌建立了AOSP,Android Open-Source Project,即Android 开放源代码项目。

开源说白了就是把自己的蛋糕贡献出来大家一起做,然后切块更大的。

谷歌把安卓开源了,顺便还“贡献”了自己的GMS捆绑应用,这堆东西装中国人手机上,十有八九会被卸载掉,各手机厂商的预装软件就是这下场。中国国产化的互联网产品太多了,百度地图、高德地图、微信、抖音、支付宝、各种应用商店,根本用不上谷歌那套。但是外国人不一样,很多国家都指着google地图、google搜索用呢。


通信设备厂商造智能手机

华为、中兴、爱立信、诺基亚这些通信设备厂商,可以理解为高速公路承包商,负责修路。移动、联通、电信这些是高速公路公司,出钱修路,再靠收费站收(车)流量钱。

这些设备厂商,本身就对通信协议、芯片这些很懂,做手机(车)顺带的事。

在移动互联网时代,也纷纷开始造智能手机,华为、中兴手机都使用了Android系统,诺基亚被微软收购,使用的是windows mobile系统。

顺嘴说一句,诺基亚的失败,和微软移动系统生态还不够大有关,一个系统牛不牛B,看的不是你的代码是不是全手打,而是你的生态大不大、有没有人和你玩操作系统和芯片这种东西,玩的不仅是技术,更是产业和生态。

3G时代,中国自己开发了TD-SCDMA系统,这为后来国产LTE实现追平、5G超越欧美奠定了基础。但是TD时代,国产3G有个教训,没有高端手机支持。iphone、诺基亚、三星,一溜的只支持WCDMA。国产3G手机,基本都是移动充话费送的。导致3G时代,联通实现对移动的追赶。华为大概也从此时看到了做高端手机的机会。


全世界只有华为会造鸿蒙

先解释下这个惊悚小标题里的“会”。

会,中文里至少包含了两层含义;

一是能力。造操作系统的技术,尤其是打造操作系统生态的能力。

二是意愿。如果生态建不成,是否还有利可图。

符合这两个标准的,全世界只有华为一家。


万物互联——新时代降临

随着4/5G网络建设和各种智能可穿戴设备的发展,万物互联的时代正在来临。这些智能设备,既需要网络模块,又需要智能操作系统,催生出了更多的场景。华为看到了这些机会。

华为称HarmonyOS主打“1+8+N”的全场景体验:“1”指的是主入口手机,“8”指的是智慧屏、平板、PC、音响、手表、眼镜、车机和耳机8种设备,“N”则指的是泛IoT硬件构成的华为HiLink生态,其中包括移动办公、智能家居、健康生活、影音娱乐、智能出行等各大场景下的智能硬件设备。

这些,是安卓推出时不曾遇到的。支撑万物互联需要操作系统具备3个条件

1、小型嵌入式系统,在一些小的物联网终端(如智能空调、工业仪表等)上运行;

2、分布式,实现多终端的数据存储、调度和统一管理;

3、实现互联互通

这些特性是安卓不具备的,是鸿蒙系统的技术本质。


HarmonyOS 鸿蒙系统的技术架构

鸿蒙系统很多人都见过了,不仅是华为、荣耀的手机,还有华为的电视、手表、生态汽车,即将加入的格力空调等。目前搭载鸿蒙的终端约有1.5亿个。

从表面上看,鸿蒙和安卓(实为华为此前基于原生安卓开发的EMUI)差不多。此处从底层技术架构看一下鸿蒙系统。


1.内核层

HarmonyOS内核包含了Linux内核、Lite OS、……,此处省略号华为官方开发文档称其为内核。是否包含了AOSP开源代码不得而知,但是从Android的架构图看,内核层全是基于Linux的。

驱动子系统:各种硬件的驱动子系统,这和功能元件、终端设备有关,有什么硬件就要做什么驱动。

LiteOS是华为在2015年发布的一个轻量级物联网操作系统,体积只有10KB级。(代码牛不牛B和长度没关系。)LiteOS即鸿蒙的小型嵌入式系统内核。

谷歌是不会开发类似LiteOS这种架构的,因为这些嵌入式终端(智能水表、电表、洗衣机等等)不能放广告位,不能装GMS。

华为即使自己不做智能终端,做LiteOS依然有利可图,因为这些终端都要联网,要联网就要网络设备(高速公路)——这是华为的主业。

这就是前面说的“意愿”,通信设备厂商是最有意愿做智能物联网设备系统,全世界就华为、爱立信、中兴、诺基亚、摩托罗拉那几家,但后面这几家没有终端,华为自己就有2亿终端。

另一个有意愿的是智能生态厂家,能想到的就是小米。但打造操作系统生态,不仅需要终端厂商,还要通讯设备厂商、电信运营商等的参与,小米是否有打造生态的能力是个疑问;此外,众多的第三方软件、硬件厂家,以后开发一个东西会很麻烦,既要开发ios版、安卓版,还要开发鸿蒙版、小米os版,所以后进者会很难。


2.系统基础服务层

系统基础服务层是HarmonyOS的核心能力集合,通过框架层对应用程序提供服务,包含系统基本能力子系统集、基础软件服务子系统集、增强软件服务子系统集、硬件服务子系统集。

鸿蒙的系统服务层采用分布式架构,包含了分布式任务调度、分布式数据管理、分布式软总线等组件,解决了多终端分布式部署、统一管理的问题。


3.框架层

框架层为HarmonyOS的应用程序提供了Java/C/C++/JavaScript等多语言的用户程序框架和Ability框架,以及各种软硬件服务对外开放的多语言框架API。

这部分需要使用大量的开源代码,不仅是AOSP的(这点毋庸置疑),还有来自SUN的、其他开发者的开源代码。


4.应用层

应用层包括系统应用和第三方应用。这部分和安卓没多少关系。


鸿蒙做的事情,是对汽车发动机和显示设备进行分布式改造,并给所有的智能终端(类比各种车辆、工业设备)都装上大脑和动力,同时从技术底层实现这些设备的统一管理和互联。

所以安卓和鸿蒙是面向两个时代的操作系统。安卓迟早会被下一代操作系统所替换,直接用在三星上的也许不是鸿蒙,但鸿蒙已经比安卓先行一步。小米、OV如何选择,将是接下来最有趣的事情。

-=本文完=-


本文写作过程参阅以下书籍,图片亦来源于此:

《HarmonyOS 入门文档》/鸿蒙学堂 hmxt.org 整理。

《深入理解Android内核设计思想(第2版)》/林学森.—人民邮电出版社。

《计算机科学导论》/王川,范黎林主编.—北京:清华大学出版社。