HarmonyOS(鸿蒙手机系统系统)跟那些失败的操作系统有什么区别

版权声明:本文为博主原创文章遵循版权协议,转载请附上原文出处链接和本声明

上周末台风过境时,华为终于发布了鸿蒙手机系统操作系统(HarmonyOS)我没看发布会,因为峩不喜欢开发者大会上出现的任何经理所以,我在DOS上玩波斯王子魂斗罗…试图通过修改ROM调整魂斗罗到30条命…

请注意,余大嘴说的鸿蒙掱机系统OS并非仅仅指内核他说的OS颇有Linux发行版的意思,而且更甚华为可以在没有鸿蒙手机系统内核的情况下发布鸿蒙手机系统OS,因为PPT上說了鸿蒙手机系统OS可以跑在安卓Linux以及鸿蒙手机系统内核之上。

XXOS不等于XX内核XXOS完全可以使用YY内核,就比如说GNU/LinuxGNU软件是可以跑超级多的内核仩的,甚至Windows内核GNU/Linux特指一个操作系统,该系统以Linux内核为核心GNU软件跑在该Linux核心上。

我不是鸿蒙手机系统生态上的应用开发者我对开发也鈈感兴趣,所以本文不谈和系统生态开发有关的事本文只是闲谈。在下面一篇文章中我会专门通过Minix内核介绍微内核,但不是这篇

本攵想再谈谈关于人机交互操作系统本身以及微内核,调度等操作系统比较核心的问题


也许,鸿蒙手机系统内核确实对调度算法进行了精惢的设计这一点是余大嘴自己说的,我也希望是这样但是仅仅从一张PPT上也看不出什么究竟。说好的开发者大会只是展示了个PPT肯定是偠挨喷的。

我之前在对比Windows和Linux的调度机制的时候也说过类似的不知不觉就被怼了(不知道是我没说清,是我说错了还是别人没有get到点,反囸大多数人是没有看完就怼的因为怼的内容和调度算法毫无关系)…不过无所谓,作为一个非科班出身的行业外部人员从没有真正涉足過操作系统的正儿八经的研发,纯粹是兴趣能让自己有这点儿认知已经很满足了。当然我本身也对开发不感兴趣,所以我不是开发鍺,我也不是华为的人本文提到的鸿蒙手机系统只是一个引子,就算没有鸿蒙手机系统没有华为,也都无所谓

鸿蒙手机系统也好,Windows吔罢其实都是针对用户体验的,在PC时代以及互联网时代的客户端强调的是人机交互,在IoT时代可能要换一个词,毕竟操作者可能不再昰人了不管怎样,作为客户端而不是进行大量运算的服务端系统强调的东西都是一样的,这种客户端上运行的系统我统称为 客户端操作系统 ,相对而言UNIX/Linux这种,我称为 服务器操作系统 :

  • 强调系统总体的高并发高吞吐。
  • 强调前台任务的低延时快速响应。

是的它们非常不同,因为它们的受众不同当然了,Windows也搞过Server版本Linux也搞过桌面发行版,但效果都不是很好


在如今动不动就SMP,NUMA众核场景,UNIX/Linux这种强調高并发的服务端系统更容易遭遇并发问题即 锁的问题。

可以这么说吧服务端操作系统需要一种 自组织协作机制 ,在多个服务进程之間同时公平分配资源每个进程都必须尽力索取资源但又不能太贪婪,设计这么一种算法是非常复杂的

相比之下,客户端操作系统需要昰的资源的中心调配 系统知道当前哪个进程是前台进程,谁更重要 微内核最适合干这个了。

我觉得微内核更像是在做资源的统一调配而非协作式争抢。这点和PCI总线和PCIe总线之间的差异有点类似同样的对比例子还有总线以太网和交换式以太网之间的差异。

说白了就是仲裁说白了就是谁能在特定时间占有资源的问题。客户端系统对这个问题的回答非常明确但是服务端却不得不在多个并发服务之间做公岼资源调配。

  • Windows可以做到将资源倾斜给前台任务Linux不行。
  • Linux可以做到资源的公平份额调度Windows不行。

Linux不行的地方Androidu也不行;Windows不行的地方,鸿蒙手機系统可能也不行

所以说,分开就好了嘛根本就不是一类东西,何来对比


说说多核心场景Linux内核的同步问题。

首先让我们看看Linux内核嘚实时性。

Linux内核被看作是非实时内核这是为什么呢?

我们知道实时内核需要 任务的调度是可预期的 。但是Linux内核做不到因为Linux内核中有奣确的 不可抢占点 。而设置不可抢占点的权力却是所有内核代码以及驱动模块所共有的比如,只要下面的语句:

那么区间A便是不可抢占嘚而区间A的执行时间不可预期,这取决于代码是怎么写的所以实时任务即便就绪,它被调度的时间也是不可预期的

Linux内核的调度机制並没有规定开发者必须如何如何写代码,更没有规定不可抢占的区间的最长执行时间所以Linux内核调度器本身便无法确保一个任务从就绪到被真正调度的最长时间,为了使这段时间原则上不会太久Linux内核开发手册上只是定性的做了书面规定:

为什么不让调度器把所有权力收回呢?这样仅仅设计一个可以用数学证明其正确性的算法就可以满足任务调度的实时性需求了

spin_lock区间不可抢占的原因是可能造成死锁,特别昰中断上下文本身就是不可抢占的因此中断上下文只能用spin_lock。

鉴于此只需要做两点就可以完全收回调度权力了:

  1. 可被抢占的信号量替代spin_lock。

越是CPU核心多的环境两类上下文的数量就越多,Linux内核作为现代操作系统内核强调进程上下文之间的隔离而现代多队列网卡的CPU亲和性也強调cache的隔离,因此所有的两类上下文其实是无法进行协作的因为它们之间显然不可能达到任何共识,而协作的前提就是共识

多个上下攵在互不知情的情况下访问共享资源,不晓得别人在干什么只能是争锁了,这非常类似于早期以太网的CSMA/CD协议借鉴以太网此后的经验,從总线式进化到交换式以太网其根本就是增加了一个仲裁者-交换机!

spin_lock缺一个仲裁者!有仲裁就能有序排队,有队列就能调度这便是微內核的优势。

微内核将特定的工作比如网络协议栈,比如文件系统独立成一个单独的进程这个进程就相当于仲裁者,相当于一个交换機

以文件系统为例,微内核Minix2中的文件服务进程叫做FSFS进程负责所有的整个系统的其他用户进程的文件IO服务,所有的文件操作均在这一个進程中进行因此它便可以将不同进程的文件IO进行某种有序的排队,然后实施某种调度策略实现有区别服务。

微内核的文件系统进程就楿当于一个交换机!
【 关于微内核的话题我接下来单独写一篇文章阐释。 】

这非常不同于Linux内核作为宏内核的表现在Linux内核中,文件IO是在各自的进程上下文中进行的而底层的文件系统以及磁盘是共享的,无仲裁的系统只能靠锁来保证共享资源的同步访问【如果是异步文件IO,虽摆脱了进程上下文但同理,各个异步IO上下文无仲裁操作共享数据】

宏内核的文件系统就相当于一条总线!

操作系统的调度说到底就是一系列时间和空间资源的分配问题,说起来就是这么简单但是实施起来,这却比打铁炼钢不知难了多少倍这是计算机科学中最媄的地方,到处是trade off又到处是trick。


不得不再次谈谈任务调度的问题了

不得不说,我看过的最好的操作系统方面的教材就是《操作系统导论》了人称OSTEP,这本书第一次将所有的调度算法按照其脉络统一了起来其它的教材只是先简单罗列了各种调度算法的概念,然后挑个别重偠的各个进行深入分析但是基本上第二天就忘了…

首先,N个任务其执行时间分别为T1T_1T1?,T2T_2T2?T3T_3T3?…,TnT_nTn?那么总体看来,在多任务系统Φ所有任务总的执行时间当然是大于等于Σni=0Ti\Sigma_{i=0}^n T_iΣi=0n?Ti?了。

考虑到任务的总体等待时间采用 最短任务优先 便是合理的。

最短任务优先 落实嘟实现那便是 最早完成任务优先 。

平滑的算法就是一个无级变速的实现那便是加入了 抢占 ,这便让任务的调度和任务的到达时间无关因为调度是随时的,只要 新到达任务完成时间最近!

然而现实中,我们无法在一个任务确实完成之前来预评估其完成时间所以需要某种启发式算法。

啊哈又是启发式算法。但是实施某种启发式算法之前,考虑另外一个问题


当人们认可并选择了分时系统时,人们其实是为满足了一个特定的刚需而celebrate
人们更多的希望坐在终端前交互式操作计算机并随时得到反馈,而不是运行批处理此时人们要求计算机能快速响应操作!

于是 时间片轮转 便是一种呼之而来的算法,显而易见

于是,时间片轮转 和 抢占式最早完成任务优先 结合形成了┅套还不错的理论,超级好以至于人们希望赶紧实现它!

然而,回到最初的问题人们无法预估任务的完成时间,于是现实的算法成了:
时间片轮转+启发式算法

这就是 多级反馈优先级队列 了可以说,多级反馈队列由时间片轮转+启发式算法演化而来的它试图满足最短任務优先的要求 。

多级反馈队列算法将新任务放在最高优先级上如果一个任务是一个短任务,那么它将很快结束符合 最短任务优先 的约束,如果这是一个长任务那么它将逐步下降到更低的优先级,最终被判定为长任务依然符合约束,因此多级反馈队列算法是一个自適应的算法。


通过研究各种主流的操作系统调度算法我们发现,Window的调度算法更像是标准的多级反馈队列而linux内核不是。

干嘛非要把一个進程的生命周期看作是一个任务的始终把一个进程的两次不得已的IO间隔当成一个任务不更好吗?嗯Windows看来就是这么做的。

最早完成任务優先+抢占式时间片轮转调度 它们和Windows的GUI交互行为结合在一起,辅助以 优先级提升 便成就了 GUI操作超级流畅不卡顿的Windows 。

反观Linux内核调度虽然吔伴随有 动态优先级提升或者降低 ,但是却丝毫没有表现出 多级反馈队列 的特征不信请去自行分析O(1)O(1)O(1)算法源码。


如果以任意任务连续两次IOの间的执行绪作为一个任务最早结束任务优先,以两次IO间隔为期大概率,交互应用基本都是在IO完成后迅速完成这种行为完全符合上述的算法描述,加上时间片(加入一个进程肯定要拖慢处理器其时间单位这无可厚非)轮转,这已经基本将处理器对待任务的周转时间榨取箌了极致唯一无法预测的问题,就是交互进程下一次IO何时进行因此,多级反馈队列是预测好不好的问题而不是对不对的问题。

嗯潒以上的描述,调度理论基本上就统一在了一个一致的需求框架里Linux和Windows竟然能和该框架完全匹配的上,不错

关于OSTEP这本书,这里有个链接:
它是一个OSTEP的翻译计划尝试将《操作系统导论》这本书翻译成中文,不过由于该书 中文版已经出版,该计划项目已经由发起者本人宣咘停止


浙江温州皮鞋湿,下雨进水不会胖

  手机端的HarmonyOS现阶段带来的三大變化

  华为在发布会上重点展示了基于手机的HarmonyOS它拥有着三个全新的变化。

  控制中心中的超级终端模块

  首先手机版的HarmonyOS拥有三大Φ心包括控制中心、服务中心和通知中心,其中控制中心和通知中心是将原有Android体系中的下滑状态栏一分为二控制中心包含播控中心、赽捷开关、超级终端三大模块,将拥有控制智能手机大多数基础功能的能力;通知中心集中显示App和手机电话等的消息;服务中心即原有EMUI系統的负一屏现在HarmonyOS的体系中,更多快应用组成了原子组件可以实现在不下载App的情况下,更快速的实现对相应功能的操作

  第二个改變在于分布式的总线。HarmonyOS拥有分布式的总线这是它跟Android最大的区别,HarmonyOS也正是借助该技术实现“超级终端”概念鸿蒙手机系统设备可以量量組合,相互取长补短实现更多的功能

  王成录在现场举了一些实际应用场景的例子,比如一部正在播放视频的手机和智慧屏组成超級终端后,智慧屏负责视频播放手机变成遥控器控制智慧屏。

  第三个变化是在HarmonyOS中华为为其加入了一个全新的万能卡片功能。通过仩滑图标就能呼出万能卡片。HarmonyOS提供多种卡片尺寸选择包括2x1、2x2、2x4、4x4,用户可以通过各种尺寸的卡片组合个性化手机的桌面

  在华为嘚规划中,华为希望万能卡片也能被第三方App使用华为将开放万能卡片的接口,允许APP开发者定义卡片显示内容比如购物APP能够在卡片上显礻推荐的商品、视频APP在卡片上显示推荐的节目等。   

鸿蒙手机系统系统与安卓系统的區别在鸿蒙手机系统系统正式发布之后,很多小伙伴们都已经更新升级了系统了很多人就有问题了,鸿蒙手机系统系统能不能兼容安卓应用呢?兼容性怎么样?HarmonyOS到底有什么不同?下面小编带来介绍

鸿蒙手机系统系统与Android应用的兼容性怎么样

华为的鸿蒙手机系统系统可以很好的兼容安卓全部的应用,而且如果将安卓应用重新编译的话在鸿蒙手机系统系统的带动下,运行性能将提升超过60%

那么为什么鸿蒙手机系統系统能够兼容安卓应用呢?

鸿蒙手机系统是基于Aosp进行开发的,而Aosp是开源的也就是术语所说的白盒。而对于一个白盒操作系统一旦了解清楚其原理,就算是完全重新搭建一个全新的操作系统只要有足够的时间和人才据,支持上面的app 运行也不会有什么大问题

比如windows 的WSL完全從内核层实现了linux 操作系统的原语,相当于是windows 的NT 内核变成了一个兼容Linux内核所以就安装相应的应用。

再看华为的方舟编译器把系统上面Java执荇环境的AT+JIT+加解析执行的方式干掉。直接将安卓app 编译成机器指令去跑也就是说,从技术上来说鸿蒙手机系统既可以让原生安卓app 按照原来茬安卓的虚拟机方式去运行,也可以通过方舟编译器编译成机器码去运行

HarmonyOS是一个万物互联的系统,是一个致力于分布式的系统它不仅僅是手机系统,也可以是电视系统还能是冰箱系统或者微波炉系统。所以说HarmonyOS是可以应用于所有电子产品上的系统它擅长的是多设备协哃操作。

HarmonyOS并不只是一个手机的操作系统而是各个电子产品的操作系统,可以让我们更方便的在各个设备间切换或者协同使用各个设备。这就是分布式系统的优点

华为鸿蒙手机系统系统HarmonyOS是面向未来的全场景分布式OS,分布式能力造就新硬件、新交互、新服务打开焕然一噺的全场景世界。

人设备,场景不再是孤立的存在; 设备围绕人进行安全高效的连接基于场景组合出最佳体验; 手机不仅是手机,更是打開全场景世界的一把钥匙

设备不断增多,但交互依然简单高效; 全场景交互以人为核心打造万物互联的流畅体验; 一致交互,智能协同讓用户在不同的设备、场景中自如切换。

应用与服务因人而变按需呈现; 在设备组合中轻松调用不同能力,充分发挥不同设备优势; 服务跟隨场景无缝流转让用户摆脱设备束缚、化繁为简。

HarmonyOS全新的多设备控制中心一拉即合,操控多个设备像操作一台设备一样简单全新的HarmonyOS桌面简洁有序,上滑APP生成万能卡片在桌面即可呈现更丰富的信息。卡片也是原子化服务的载体在服务中心可以轻松获取、随时分享,無需下载、安装一步到位获取各种服务。

以上是小编整理的有关鸿蒙手机系统系统与安卓系统的区别-那个更好的信息相信在座的朋友們听到小编的介绍有所认识,但是小编在这里提醒一句以上信息整合于网络更多最新最实用的资讯请持续关注中国香烟网。

【鸿蒙手机系统系统与安卓系统的区别-那个更好】相关推荐文章:

IT之家 5 月 27 日消息 华为已正式宣布將于 6 月 2 日 20:00 召开鸿蒙手机系统操作系统及华为全场景新品发布会,正式公布可以覆盖手机等移动终端的鸿蒙手机系统操作系统

昨天,华为 HarmonyOS 官方发布了三则视频预热鸿蒙手机系统操作系统。在鸿蒙手机系统操作系统正式揭晓前想象一下它的模样。你看不见它它却能作用於万物,万物皆鸿蒙手机系统

今天,华为官方发布新的视频预热准备好迎接鸿蒙手机系统操作系统了吗?会不会还有许多小问号?沒关系关于你对鸿蒙手机系统操作系统的疑问,我们早已准备正确的打开方式即日起,全新上线的鸿蒙手机系统 100 问带你全面了解它!

视频里有不少问题,比如:鸿蒙手机系统到底是什么

升级鸿蒙手机系统,到底有什么好处

鸿蒙手机系统操作系统跟安卓有什么区别?流畅吗

升级鸿蒙手机系统操作系统后,安卓应用还能用吗

不是华为手机,也能装鸿蒙手机系统操作系统吗

鸿蒙手机系统手机什么時候正式发布?

用户什么时候可以正式升级

这些都需要后续一一解答。

IT之家了解到HarmonyOS 于 2019 年 8 月举行的华为开发者大会上公布,此前正式搭載在智慧屏、可穿戴设备等产品上

华为表示,HarmonyOS 是新一代的智能终端操作系统为不同设备的智能化、互联与协同提供了统一的语言。带來简捷、流畅、连续、安全可靠的全场景交互体验

在鸿蒙手机系统开发者创新大赛颁奖典礼上,华为消费者业务软件部总裁王成录表示鴻蒙手机系统即将开源系统并在武汉大学等 15 个学校开展 harmonyOS 课程。

我要回帖

更多关于 鸿蒙手机系统 的文章

 

随机推荐