操作系统概念的演进和变革
本文由田俊豪整理自朱老师“HarmonyOS工作原理解析”课程第“操作系统概念的演进和变革”节,结合本人理解并丰富。希望观看视频版可以点击:https://edu.51cto.com/center/course/lesson/index?id=637573
了解鸿蒙系统之前,我们应该了解一下操作系统的演进以及向关概念,以此来对比鸿蒙有哪些技术特性以帮助自己更好的了解鸿蒙操作系统。
操作系统
操作系统这个词语对于一般的人来说立刻浮现在脑海的就是windows操作系统,但其实操作系统的种类还有很多,例如工业界使用最多的linux操作系统,以及单片机领域使用的RTOS实时操作系统。。。等等,他们处于不同的领域,使用的平台也有很大的差异,但是它们都属于操作系统,都负责管理我们的硬件资源。
说了那么多,相信你一定会有一个疑问。操作系统是干什么的,操作系统是如何产生的,我们为什么需要操作系统。
1. 操作系统是干嘛的
普适的操作系统
操作系统是产品设计制造者设计给产品使用者操作产品的接口,就以下图所示的汽车为例来说吧
从之前的手扶式拖拉机到方向盘式汽车最后新概念式的全自动驾驶汽车,我们可以很容易的看出随着时代的发展,汽车的操作方式也发生了很大的变化,使我们的操作变得更加方便。从本质来讲它们都属于同一类是设备,他们都给我们预留了对它进行操作的接口,但是由于不同的产品对系统的实现方式不同,所以达到了不同的使用效果。
操作系统会屏蔽和保护产品内部实现细节,给外部统一接口,从上面的例子可以看出对于不同的产品,有些我们已经很难看出他具体的控制方式,具体的原理、细节已经对我们进行了屏蔽,只是预留了我们操作的接口。作为使用者,我们只需要去学习如何操作,不惜要过多的关注内部的实现细节。讲到这里,我觉得这点更像我们高级语言中的一些函数库。只要知道函数能实现什么样的功能,不必关心是如何实现的,这样就大大加快了项目开发的进度,提升了使用体验。
随时代变迁,操作系统的接口也会发生变化,从手扶拖拉机到全自动驾驶汽车,我们操作方式产生的很大的区别,但是产品的功能却没有很大的改变,这是由于技术的提升,我们可以以更加符合人性化的操作方式来与人进行交互,系统是要紧跟时代的,这也正是大家对鸿蒙操作系统寄予厚望的原因之一,因为它瞄准的是下一个时代,万物互联的时代。
随着时代的变迁,操作系统的难点和竞争点也会发生变化。
软件行业的操作系统是干嘛的
以上仅仅是在普适行业的操作系统,在我们接触最多的软件行业,操作系统有更加具体的描述。
软件操作系统是硬件厂商给纯软件厂商提供的操作系统的接口, 这是由于时代的发展,各个产业精细化分工的结果,硬件厂商负责硬件以及操作系统,提供给软件厂商一些调用硬件的接口,他们各自负责自己的事物,并进行创新。会产生更多有趣的应用。但是在早期,以手机为例,软硬件式一体开发的,就没有操作系统的概念,或者来说我们并不关心我们使用的手机使用的什么样的操作系统,因为产品是由手机厂商一体化开发的,并没有给我们开发者提供二次开发的接口,我们是直接去使用,所以了解他用的什么操作系统对我们 并没有什么帮助。但是随着时代的发展,计算机硬件资源(算力、内存、IO等)能力的提升,计算机系统也变得非常庞大,整个产品开发变为了硬件开发、系统及软件开发、应用级开发三大模块。而系统级软件就是我们常讲的操作系统,他是硬件与应用软件相连接的重要组成部分。操作系统将整个硬件资源标准化封装,给外部应用级别的软件调用。
操作系统是怎么产生的
最初是没有操作系统的概念的,例如大家都知道的8位机(51单片机)时代,计算机硬件资源较少,能够做出的产品的功能也较单一,我们是直接裸机编程就能实现自己的功能,这样开发所有的代码都要程序员自己编写,开发难度大,周期长,但是很多代码都是前辈们编写过的,会有很多重复劳动。我们知道现在工程师在工作中大部分代码都是不需要自己写的,这其中就牵涉到一个很重要的概念——代码复用,代码复用解决了重复造轮子,为了实现代码复用,逐渐发展出了各种函数库。又为了更容易实现多任务编程就又出现了RTOS,现在这些我们的以STM32为代表的单片机中还经常被使用,有进一步为了实现多用户动态装载应用出现的标准操作系统,最为代表的就是Android 和 iOS 操作系统。
我们为什么需要操作系统
了解了以上那么多,其实大家应该都大概已经知道了我们为什么需要操作系统了。接下来说明一下操作系统在不同领域带给我们的价值。
技术上,这也是我们工程师最需要关心的问题,操作系统能够降低我们开发的难度,屏蔽无关紧要的细节,降低开发难度,这听起来就让人兴奋,作为应用及开发者,如果没有操作系统,我们就需要去了解硬件,进行编写硬件驱动等等一系列枯燥并且难度很大的工作,但是现在我们可以很轻松的通过操作系统提供给我们的接口,轻松的调用传感器,摄像头等等一系列设备。专注于自己应用级的开发。简化了工作又降低了工程师的门槛。代码复用,减少劳动。功能模块化,这些想必大家都能理解。操作系统还有一个优点就是高内聚,低耦合,做过开发的都知道,高内聚,低耦合一直是我们追求的目标,模块仅负责自己的功能,降低模块之间的联系,这样会降低很多开发上的麻烦。
商业上,商业上的好处根本还是技术上带来的,模块化分工便于业务分离,形成上下游不同的厂商,现在的产业链是全球分工,每个厂商专注于自己负责的部分,提高了效率,同时也激活了产品和业务模式的创新,例如阿里和腾讯。都是软件公司,不涉及硬件部分,只负责软件,并且是应用级别的开发,诞生了支付宝和微信这样成功的应用。
鸿蒙系统的生态模式
生态是我们最近两年美国制裁华为以来经常听到的词,也是我们对鸿蒙可以成功持有怀疑态度的重要依据。android和IOS的不可撼动依赖于他们强大的生态,以华为的实力推出一个媲美android的操作系统并不让人感到吃惊,但是对华为来说难的是建立自己的应用生态。但是生态都包括什么呢,我们并不清楚,我们就先来看一下什么是生态吧。
生态就是上下游厂商共建的体系,全球分工,一个产业,一条产业链,上下游厂商共同建立起了一套生态系统,软件应用开发者负责开发app,操作系统厂商负责维护开发操作系统 ,硬件厂商负责制作硬件,使之符合操作系统的运行要求。以及广大的用户群体,这些都是生态的组成部分。这样的分工有利于资源互补,专业分配, 各个厂商负责自己做的事情,发挥自己的优势,激发自己的创新。鸿蒙想要获得像Android、iOS、ARM生态那样的成功必须要有优秀的生态设计,才能吸引众多的开发者来为鸿蒙注入新的血液。
鸿蒙不是华为的而是中国的
鸿蒙是华为的,这是我们大多数人的印象,这是不对的。我们可以说华为与鸿蒙有着非常紧密的联系,华为是鸿蒙的创建者,但在发布会上华为已经宣布将鸿蒙贡献给鸿蒙基金会(第三方开源组织),华为是基金会的重要成员,所以说华为是鸿蒙的贡献者,创建者,但鸿蒙是属于中国的,是属于广大的开发者的,只要有能力我们都可以为鸿蒙贡献代码,成为鸿蒙贡献者的一员。
鸿蒙生态有众多参与者,关于鸿蒙生态的参与者我们可以简单的分为这几部分。
他们各部分以及各部分的在鸿蒙生态中的作用。
• 鸿蒙基金会
中立公共组织,组织和协调者
依托会员捐赠运营
接收志愿开发者代码捐献
责任和主要工作任务是维护和持续开发鸿蒙系统
组织鸿蒙系统有关的技术活动和推广
负责鸿蒙xts合规审查,发放相关许可证
• OEM设备厂商
基于鸿蒙系统研发生产销售电子产品
手机,手表,摄像头,平板,PC······
设备商可在xts认证合规范围内做额外拓展
设备商自由免费商用OHOS
设备商为鸿蒙生态提供大量优质高性价比设备
• SoC芯片厂商
电子产品核心是芯片,尤其主控SoC
芯片厂商可外延扩展至模组厂商、板卡厂商
芯片厂商提供基于鸿蒙OS的SDK,尤其是硬件驱动
SDK级别的支撑,会极大降低鸿蒙产品落地难度
生态内支持芯片越丰富,则设备产品越丰富
• 方案商
品牌厂商=研发+生产+渠道销售
中小厂商=生产
方案商是广大中小电子产品厂商的“研发部”
IPC、智能门锁、可视门铃等行业是典型方案商研发
预计未来几年会有一波“鸿蒙方案商”机遇大潮
• 第三方app开发者
设备商内置app是主食,第三方app是丰富多彩的辅食
第三方app开发者可以是个人,也可以是团队和公司
三方app数量和质量是衡量鸿蒙生态繁荣程度的重要指标
app才是用户真正关心的事
鸿蒙的场景式开发和跨设备分布式调用特性,将极大解放app开发者想象力,诞生诸多令人惊叹的应用
三方app可能是鸿蒙生态内“最赚钱”的部分了
• 华为
鸿蒙OS原始代码贡献者,鸿蒙基金会重要成员,代码贡献者
华为的最大利益诉求在于手机,华为必定是最早推出鸿蒙手机的OEM厂家,但必然不是唯一的一个
在手表、电子秤、音箱等其他产品上华为仍然竞争力强大
华为HMS是依附于鸿蒙OS之上的又一潜在赢利点
鸿蒙生态中华为并未“以权谋私”,只是占有先发优势