鸿蒙操作系统详解

本文深入探讨了鸿蒙操作系统,对比了鸿蒙的LiteOS与Linux的差异,指出LiteOS针对物联网设备的优势。文章介绍了鸿蒙的分布式任务调度、软总线技术以及其在硬件虚拟化互助方面的创新。同时,文章讲解了宏内核、微内核概念,阐述了鸿蒙为何选择宏内核,并分析了MMU在操作系统中的作用。此外,还涉及中断子系统和设备驱动的处理方式,强调了鸿蒙在驱动框架HDF上的设计,以实现跨平台部署的目标。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

鸿蒙的介绍

     鸿蒙是一个面向场景的智能操作系统。很多人刚开始把它与Linux相比,这是不对的,首先Linux只是一个内核,在Linux之上我们开发者还需要做很多的操作,比如驱动开发和应用开发才能让用户能够正常的操作。鸿蒙的LiteOS才是用来对标Linux的,值得注意的是LiteOS和Linux是一样的,都是宏内核而不是之前宣传的微内核,鸿蒙的微内核可能要到过段时间才会发布。那么鸿蒙对标的产品是什么呢?是安卓和Windows。这也让安卓特别的难受,因为与它正在开发的Funchsia系统在地位上有较大的吻合,都是面向IOT设备的操作系统。我们可以看看这张图,在鸿蒙的整个框架中内核只是占比较小的一部分,而内核这部分里还分了两个内核子系统:Linux和LiteOS。所以内核位于鸿蒙就像心脏位于人体,非常重要但占比很小。如果把内核类比成系统就好像把心脏类比成人一样,不合适。

 

 

  • 系统基本能力子系统集:为分布式应用在 HarmonyOS 多设备上的运行、调度、迁移等操作提供了基础能力,由分布式软总线、分布式数据管理、分布式任务调度、方舟多语言运行时、公共基础库、多模输入、图形、安全、AI 等子系统组成。其中,方舟运行时提供了 C / C++ / JS 多语言运行时和基础的系统类库,也为使用方舟编译器静态化的 Java 程序(即应用程序或框架层中使用 Java 语言开发的部分)提供运行时。

  • 基础软件服务子系统集:为 HarmonyOS 提供公共的、通用的软件服务,由事件通知、电话、多媒体、DFX、MSDP & DV 等子系统组成。

  • 增强软件服务子系统集:为 HarmonyOS 提供针对不同设备的、差异化的能力增强型软件服务,由智慧屏专有业务、穿戴专有业务、IoT 专有业务等子系统组成。

  • 硬件服务子系统集:为 HarmonyOS 提供硬件服务,由位置服务、生物特征识别、穿戴专有硬件服务、IoT 专有硬件服务等子系统组成。

 

      刚刚讲了一个宏内核和微内核的概念,那什么是宏内核什么是微内核呢?

        这一张图就是用来区分宏内核和微内核的,中间有一条横线,横线上面是运行在应用的,叫应用(用户)态,应用态是受操作系统限制的,只能在指定的内存空间中运行。横线下面是运行在内核里面的,也叫内核态。最左边的是宏内核,中间是微内核,最右边的是混合内核。那么宏内核和微内核有什么区别,其实就是划分的问题,简单的说,宏内核把大大小小的事情都划分到内核里面去处理,比如VFS虚拟文件系统,系统调用,文件系统等等统统塞进内核,只有应用程序才运行在用户态。而微内核则是相反,除了核心的内核,统统扔到用户态里面去执行,这两个是完全的极端,这也带来明显不一样的效果。首先比较明显的不同就是微内核比较容易扩展,且内核驱动之间互不干扰,不会出现像宏内核那样,一个崩都得死的现象。微内核里面比较有名的就是我们的国货之光RT-Thread。那么比如说Mac OS X使用的就是比较中庸的混合内核,让驱动程序员来决定这些东西到底放在用户态还是内核态。这样在保护内核同时给开发带来比较大的灵活性。有些功能它需要用极致的处理速度,并且程序上稳定不会太大改变,那么就可以把这块的驱动程序沉到内核态,有些东西它不需要很快的执行速度,且因为业务问题需要经常的变动,那么可以扔到用户态。

那既然Linux是宏内核,LiteOS搞了半天还是宏内核,为啥鸿蒙还要搞一个LiteOS呢?

Linux的强大在于它支持的硬件非常多,但是它过于庞大,启动慢、耗电,这些缺点导致它不适合用在资源比较受限的物联网硬件设备领域。

Liteos-a为物联网而生,与其他RTOS(实时操作系统)不同,LiteOS支持MMU,支持内核/APP空间隔离、支持各个APP空间隔离,系统更健壮;启动快,省电。等下我们可以稍微体验一下他开机能有多快,快到我都觉得他是关机其实只是待机。

除了Liteos-a,还有一个Liteos-m,后者运行在没有MMU的芯片上,也就是运行在MCU上,就是传统的单片机。

 

讲回鸿蒙系统,鸿蒙有啥不一样的呢?官方的回答是:作为面向未来的全场景分布式OS:它具有多端统一OS、硬件虚拟化互助(也就是分布式)以及一次开发多端部署的优点。

      什么叫多端统一OS ?鸿蒙在开发者大会上提出1+8+N的一个硬件生态理念,就是围绕着以手机为中心,开展8个领域的华为自研产品,包括 PC、平板、车机、运动健康、穿戴、AR/VR、智慧大屏、智能音响。同时打造大量的IoT设备,也就是里面的N,比如:耳机,打印机,电子秤等等。而这些设备都将使用鸿蒙OS来开发。全部使用鸿蒙OS就能为第二步:硬件虚拟化互助带来可能性。

      什么叫硬件虚拟化互助,即分布式任务调度?我们先想象这么一个场景:假设我们开车使用车上的车载导航到达目的地附近,接着要使用手机导航到目的地需要几个步骤:首先打开手机里的导航软件->输入目的地->选择步行导航->开始导航。现在我们觉得这些操作合情合理,但是如果手机和车载都搭载了鸿蒙系统,这个步骤将会缩短成一步:拿出手机就可以继续导航,真正实现无缝衔接,而这一过程里车载上的导航将会移到手机上,并显示。这就是为应用提供多设备协同的能力。

    那这个分布式架构有什么优势?以及它是如何实现硬件虚拟化互助的这个功能呢?

    分布式架构在设计之初就考虑了多设备移植和部署的这个需求,这也就刚刚说的第三点好处(一次开发多端部署),它是分布式架构设计带来的一个结果之一,只要一次开发就可以在上面所说的1+8+N上跑自己的应用程序。那么在鸿蒙底层也为这种协同工作带来一些组件上的支持。像我们现在的分立式设备,两个不同的设备是如何建立连接的?需要用到蓝牙或者wifi,以及一些相关的协议。那么这是建立在双方有蓝牙或者wifi的前提下,以及协议必须相同的前提下,如果其中一方不支持,那么它们就不可能建立起连接,所以在开发过程中,你既要跟APP厂家近进行协同,又要跟另外一个硬件厂家进行协同,这样的成本其实是非常的高昂的。所以鸿蒙的出现首先要降低这种协同上的成本。我觉得也是大家以后会使用鸿蒙比较重要的原因之一。

     那么鸿蒙是如何做到分布式智能互联的呢?这里有一张图,这张图模拟了两个设备之间的互联情况,我们假设设备1是一个手机,设备2是一个手表。那么这两个设备是如何连接的呢?鸿蒙提供两种解决方案,一种就是传统的物理层连接,也就是通过蓝牙-蓝牙、wifi-wifi等方式进行连接。一种就是软总线连接,

       什么叫软总线?传统的连接方式要求双方必须要有相同的传输设备,比如都有蓝牙设备。但是软总线可以做到使用设备1由蓝牙设备发送数据,设备2使用wifi接收,在开发过程中不再需要关心网络协议差异。鸿蒙

       所以我们可以使用软总线在两个设备之间快速的通信。在软总线之上是鸿蒙提供的一个分布式执行框架,这一套框架可以允许我们通过软总线与多个设备进行连接。同时分布式执行框架也是用来区分数据要发给哪个设备,假如说,我一台手机连接

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

林零七

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值