精华内容
参与话题
问答
  • 关于鸿蒙OS的一些看法

    万次阅读 多人点赞 2020-09-13 08:26:08
    缘起昨天晚上在CSDN做了一个关于鸿蒙OS的观点交流。可惜受限于宾馆的网络条件,有些想法没有表达清楚。再加上交流过程中,也从其他老师那了学到了一些观点。故写下此文。以下以QA方式对我(结...

    缘起

    昨天晚上在CSDN做了一个关于鸿蒙OS的观点交流。可惜受限于宾馆的网络条件,有些想法没有表达清楚。再加上交流过程中,也从其他老师那了学到了一些观点。故写下此文。以下以QA方式对我(结合了其它老师)参与回答的问题和观点进行了回顾。

    Q1:本次鸿蒙2.0 发布,让您感受最深的一点是什么?您看好鸿蒙吗?

    我个人非常清晰的体会是鸿蒙不仅仅是针对智能手机的OS。作为一个简单对比,它应该是包含了Android、Android Things、Android Wear、Android Auto等一系列覆盖从IoT到车机再到智能手机的OS们。从目前已知的情况看,这套OS的发展规划是先解决iot,然后逐步上升到智能手机这样的高端设备上。

    我个人觉得这是一种务实的做法。在逐步发展过程中可以试错。其中,一个比较关键的阶段是128M-4G这个设备,会涉及到一些内核之外的关键技术,比如图形/图像模块的开发,多媒体系统、应用安装和管理等


    总体来说,我更关注在鸿蒙发展壮大过程中自己(或者大部分普通开发者)能做什么,能学到什么、能积累什么。我觉得只盯着鸿蒙OS未来结果是没有太大意义的。在鸿蒙OS发展过程中所培育的人才,所收获的经验教训才是技术上的星星之火。


    关于这点,每一个关注过Android Fwk的同学都会有深深的感受。例如SurfaceFlinger中最开始连VSYNC都没有。谷歌也是在以肉眼明显可见的速度在不断改进。我个人最畏惧的国内的IT研发状况是,很多事情只做0到1的工作,从1到N的工作就不闻不问。这种风气和价值观导向会严重干扰和阻挠我们的进步。

    Q2:下面想请老师们解读下鸿蒙的机遇和可能遇到的挑战。

    我个人定义鸿蒙OS组合的发展策略走得是一条农村包围城市的道路。先从量大的IOT设备开始,逐步上升到中端设备,再到智能手机这样的高端设备。借助分布式,设备虚拟化等概念,打造所谓的超级终端。

    发布会后,我和一些小伙伴沟通过,有很多人觉得分布式这个概念不是很好懂,也不清晰。我这里冒昧做一些猜测,尝试解释下整个概念背后的思考逻辑。

    华为的核心强项之一是它在通信/连接这块有着非常深厚的技术积累。而分布式最重要和关键的问题是如何解决设备之间的高效和稳定的连通。所以,分布式是华为在设备间联通能力的一个自然而然的升华。

    接着说为什么有虚拟化设备(或者设备虚拟化)的概念。这是因为看问题的视角不一样。我在做IoT(是的,你没看错,我做了一年多的IoT,和中移动物联网一起做的)的时候,从上层应用角度来看,我更倾向于把IoT设备看成是数据源,我其实不太关心也不想关心摄像头、传感器是哪家的(很多时候这涉及到设备的采购,非常麻烦),上面跑的是单片机还是OS,底层通信协议是NB-IOT还是LoRa。我只希望这些传感器按约定好的数据传输和交互就行了。

    这种把外部设备看做是数据源/数据目的端是非常通用(我甚至觉得是比设备虚拟化更抽象)的看法,比如我早年间做的DLNA就是这样。

    从华为角度看,如果通过数据这种抽象(其背后是协议的功劳)将硬件差异化都屏蔽了的话,鸿蒙的IoT OS就没有办法渗透到设备上去了。所以,分布式+设备虚拟化是将鸿蒙OS渗透到IoT设备上的关键支撑。

    以上推测是非常粗陋的。昨天蒋总补充了几点,他也问过王博(华为CBG软件部总裁王成录)类似的问题。答复是其中还有一些上面没提到的关键技术细节,比如软总线、设备间的软时钟同步等。意思是华为在分布式和虚拟化设备这两块是实实在在把远程设备当做本地设备在处理了(而不是我之前那种将它们看做数据源的方式,这种方式相对比较简单)。

    另外,鸿蒙这种做法的风险是什么?我个人觉得,虽然众多设备被虚拟化,分布式部署了,但目前来看毕竟还是有一个中枢系统——就是1+8+N中的1,手机。如果手机被掐脖子,就是单点问题,风险非常高。一个可能的解决办法就是将这套分布式、设备虚拟化的技术的协议标准化,让其他家手机也支持。

    另外,这里还忽略了边缘计算设备的存在感。边缘计算的核心是把来自更底层设备(比如传感器)的数据进行加工处理以提高响应速度。比如,车机就是一个边缘计算器,它会把大量的来自车载传感器的数据进行处理(如果这些数据发给一个云端服务器再处理的话时效性就很差,无法处理紧急情况)。在这种模式下,分布式,设备虚拟化就很难再渗透到车机之下的众多传感器了。

    有没有可能这套实现了分布式、设备虚拟化的技术赋能给非华为的公司?这不是一个幼稚的问题。看看高通,再看看SONY集团卖摄像头芯片的(对外部的大客户比对自家的SONY移动支持度更好)、以及三星卖存储、显示屏、甚至CPU芯片,他们的客户都不局限在集团内部。

    Q3:明年华为智能手机将全面使用鸿蒙,很多开发者关心鸿蒙是否真的能替代安卓系统,对此您怎么看?

    此问题原文不是这么问的,大致是这么个意思。我的观点如下:

    太多人纠结鸿蒙未来能不能取代安卓系统。这是个封闭性的问题,答案为是或者不是。我们不妨换个思路看这个问题。假设鸿蒙取代了安卓,皆大欢喜,大家回家洗洗睡。如果没取代安卓又怎样?微软没干成,三星没干成,又如何呢?这妨碍微软不牛吗,三星不牛吗?

    再者,在这个开发OS的过程中,我们难道毫无收获?显然不是,我们会培养,造就大量的OS方面的人才,这是多么大的一笔财富。前几个月神农班上某同学跑到清华去找合作,想找几个搞webkit底层的同学,结果人家博导说学生们都去搞AI,区块链这些能赚钱的事情了。

    我们一方面痛恨打着完全自主开发名号的OS、浏览器,一方面又把所有希望不合理的强加在一个公司上,这像是踏踏实实一步一个脚印搞研发的心态么?我个人觉得,中国要做到真正自主可控(注意,我说的是自主可控,意思是鬼子一旦撒手跑了,我们自己也能干。自主可控不是一个什么高大上的名称,凡是用过外包的企业都会要求这一点)的OS,浏览器,编译器至少还需要10年到20年的时间。如果没有华为这样的公司砸钱搞基础技术研发,这个时间恐怕还得大大延长。

    现在国家、很多公司都在往基础技术上做投入,这是一个好时代,非常感谢大洋对面的金毛及其团队。最后,科技竞争是一个长期的、艰苦的、胶着反复的过程,大家做好打持久战的准备即可。

    Q4:关于国产操作系统,我们还有很多路要走,请大家给一些建议和看法。

    我是作为一名普通开发者身份参与这次直播对话的。普通开发者构成了当前对鸿蒙乃至国产OS的评论主体,我觉得有必要传达和引导一种正向的,积极的态度。

    首先,作为一名普通开发者,碰到当前世界处于百年未有之大变局的时候,应该抱着积极心态主动参与。虽然神农班的班规中提倡个人自由表达不同的观点,但我觉得情绪宣泄过后,是不是可以考虑要不要做点什么?不做就没有收获。当然,一切都自便,大家开心就好。

    其次,要树立功成不必在我,功成必定有我的心态。这个心态并不是说压迫你干活还不给钱,而是说不要把“必须成功”当成个人甚至团队的唯一目标了。我们打得是持久战,注意积累,培养。很大可能是其他人会站在你们的肩膀上继续战斗乃至获得最终的成功。

    最后,星星之火可以燎原,OS以及更多基础核心技术自主可控的这面红旗无论如何都要竖起来,扛下去,我相信大家对此已经没有争议了。在这里希望能有更多人,甚至国外的开发者一起参与开发、建设、生态的培养等。

    恩,确实还有很多事情可以做,很多知识可以学,岂不乐哉?

    最后的最后

    • 我期望的结果不是朋友们从我的书、文章、博客后学会了什么知识,干成了什么,而应该是说,神农,我可是踩在你的肩膀上的喔。

    • 关于学习方面的问题,我已经讨论完了。后面这个公众号将对一些基础的技术,新技术做一些学习和分享。也欢迎你的投稿。不过,正如我在公众号里说的那样——郑渊洁在童话大王《智齿》里有一句话令我印象深刻,大意是“我有权保持沉默,但你说的每一句话都可能成为我灵感的源泉”。所以,影响不是单向的,很可能我从你那学到的东西更多。

                                                                                      神农和朋友们的杂文集

                                                                                      长按识别二维码关注我们

    展开全文
  • 鸿蒙OS

    千次阅读 2020-11-18 10:53:51
    一、鸿蒙OS是什么? 华为公司新近推出的经历十年多时间自主研发的鸿蒙操作系统(HarmonyOS),是基于微内核的全场景分布式OS,可按需扩展,实现更广泛的系统安全 。目前主要用于智能物联网,在将来无法使用Android时...

    一、鸿蒙OS是什么?
    华为公司新近推出的经历十年多时间自主研发的鸿蒙操作系统(HarmonyOS),是基于微内核的全场景分布式OS,可按需扩展,实现更广泛的系统安全 。目前主要用于智能物联网,在将来无法使用Android时可扩展到智能手机上。HarmonyOS拥有分布架构、内核安全、生态共享、运行流畅四大优势,鸿蒙OS生态的两大核心要素包括自身的微内核结构和方舟编译器。

    二、HarmonyOS的特点
    1.HarmonyOS的设计与理念
    鸿蒙OS是全新的基于微内核的面向全场景的分布式操作系统。鸿蒙OS的微内核已发展到seL4,如下图(图1所示)。seL4的核心非常小,不到9000行C代码。对于微内核,由于用内存管理单元MMU对进程空间进行隔离保护,没有授权的进程将无法访问其他进程的空间,从而阻止了恶意程序对其他进程数据的窃取。鸿蒙OS核心只保留了处理的时间、内存、通信、中断等基本的资源管理,所有其他功能由应用层来管理,以服务的形式去提供功能。服务之间采用进程间通信IPC。
    在这里插入图片描述
    鸿蒙OS实现模块化耦合,对应不同设备可弹性部署;首次将分布式架构用于终端OS,实现跨终端无缝协同体验;采用的确定时延引擎和高性能IPC技术使系统更流畅;其基于微内核架构可重塑终端设备安全性;通过统一IDE支撑一次开发,多端部署,实现跨终端生态共享。

    2.HarmonyOS的创新
    2.1 内部解耦
    为适应不同的硬件,鸿蒙OS把每一层内部都解耦,形成几千个模块,每个模块的接口全部用头文件写好,打上标签说明该模块是怎样的设备。可针对应不同设备进行弹性部署,如智慧屏、穿戴设备、车机、音箱、手机等,同时创新的分布式软总线使得拥有不同功能的硬件可以彼此协同。如传统的相机、电视、音响等设备原本相互独立,利用鸿蒙的分布式软总线,这些设备可被虚拟化成摄像模组、显示模组、外放模组,并成为有机整体,用户无需另行设置即可按需调用各种功能,硬件终端之间形成相互协同。

    2.2 虚拟硬件
    创新性地打破传统终端硬件的边界,使诸如手机中的显示器、处理器芯片、内存等等实体硬件,可以通过软件按需求组合成不同硬件形态的虚拟硬件功能模块。

    2.3 一次开发多端部署
    通过用户接口UI控件的抽象和解耦,业务逻辑原子化,不同应用的适配,可以快速实现一次开发并进行多端部署。鸿蒙OS从设计之初就为多,终端而生,如边缘计算、IoT、服务器等。

    2.4 分布式微内核
    鸿蒙OS的微内核所具有的分布式特点,有利于IoT的生态协同。现有各种操作系统只对应于某一种硬件,如Windows只对应x86 PC、iOS对应苹果手机等,无法满足IoT时代众多不同种类终端的需要,也无法针对每种硬件分别开发一种操作系统或应用程序,导致不同硬件终端的生态无法共享协同,开发效率低。因此鸿蒙OS在IoT应用中的优势更加明显。

    3.方舟编译器特点分析
    方舟编译器是华为2019年4月在P30系列手机发布会上公布的,定位于多终端系统,可协助鸿蒙操作系统进入更深层次布局边缘计算、服务器等领域,大幅提升手机端安卓系统的运行效率。

    3.1 编译点提前
    方舟编译器能够在应用程序执行之前,就将Java代码编译成机器语言,从而大量释放硬件资源,这对于多终端,尤其是物联网边缘计算尤为重要。克服了传统编译器边执行边翻译导致的程序执行效率低下,以及安卓系统虚拟机程序安装时间长的不足。方舟编译器将编译过程提前至开发环节,开发者能通过方舟预置算法进行代码优化,还可自行开发代码优化算法,未来代码优化甚至有可能迁移至云端。

    3.2 开发环境友好
    开发环境友好是鸿蒙搭建良好生态的重要因素。兼容Java和C、C++等多种语言,增强了鸿蒙OS的性能,并与自有麒麟、鲲鹏等硬件架构协同,形成类似微软和英特尔联盟的软硬件格局。克服了过去采用Java和C/C++等多种语言混合开发应用程序时,传统编译器下跨语言应用执行效率较低的问题。
    在这里插入图片描述
    4.HarmonyOS的应用研究
    鸿蒙OS的出现将导致与iOS和Android成三足鼎立之势。尽管华为的鸿蒙OS目前只作为5G手机中Android的备胎,据已公开的资料,鸿蒙OS的UI设计、系统逻辑以及App安装界面,与现在华为手机上的EMUI并没有明显区别,这使现有EMUI用户可以尽快习惯新系统,降低学习成本。此外,由于鸿蒙OS与Android保持兼容,通过方舟编译系统,原来的应用还能够提速60%以上。

    鸿蒙OS的应用领域如图2所示。可应用于手机专有服务、智慧屏专有服务、穿戴设备专有服务、车机专有服务、音箱专有服务等领域,还可使这些不同设备协同工作,切换设备时实现无缝衔接。

    鸿蒙OS使手机、电脑、汽车、智能穿戴等设备的操作系统实现兼容,有利于物联网的升级管理和兼容,成为将来走向智能社会的一个操作系统。

    鸿蒙OS与具有高速、低延时、广接入的5G相结合,为智能手机与智能穿戴设备的联动、智能自动驾驶汽车、物联网系统提供了新的基础技术支撑。

    华为鸿蒙(HarmonyOS)支持多种协议混合适配不同业务场景,用100多种品类的控制组件,向开发者提供最丰富的连接方式。由于华为做了30多年通信,连通本来就是强项,这点是意料之中。
    在这里插入图片描述
    用“1+8+N”来总结华为的战略,就显得很直观。

    1:手机是一个核心入口;

    8:PC、平板、智慧大屏、车机、耳机、音箱、手表、眼镜这八个大小屏入口;

    N:摄像头、路由器、冰箱、空调等N种泛物联网设备。

    HarmonyOS把各终端硬件的能力虚拟成可共享的能力资源池,让应用通过系统调用其所需的硬件能力。在这个架构下,硬件能力,类似活字印刷术中的一个个单字字模,可以被无限次重复使用。简单来说,各终端实现了硬件互助,资源共享;应用拥有了调用远程终端的能力(像调用本地终端一样方便);而用户收获一个多设备组成的超级终端。

    结束
    猛一看,鸿蒙系统占据着绝对的劣势。但从纵观移动操作系统十几年的起起伏伏,鸿蒙系统并非没有机会。在2007年第二季度,塞班系统占据着63.75%的市场份额,Windows Mobile及BlackBerry OS则分别占据10&左右市场份额

    虽然目前主流操作系统大多被国外垄断,我国华为公司的HarmonyOS虽然起步不久,但却具有许多独特优势,其改进的跨平台功能、支持多场景应用、可以在各种设备和平台上使用、可以满足消费者对低延迟和强安全性需求的特点,使其具有广阔的应用前景。

    在硬件和软件之间,中国产业界一向“重硬轻软“。毕竟,硬件更容易被消费者感知,加一个摄像头、上一个大屏幕,用户一眼就看到了,发布会和营销都好找噱头。但是,软件,尤其是基础软件的革新,用户感知有很大很大的滞后性。因此,企业对于基础软件的投资,常常不被理解,甚至引来冷嘲热讽,这背后,是中国产业界普遍浮躁、急功近利的心态。

    从华为的历史来看,它是一家十分耐得住寂寞的公司。往远了说,80年代创业之初代理交换机就很赚钱,任正非却偏偏要赌上一切搞如此高风险的自主研发;往近了说,当年海思何曾被被看好过,最初几代产品也是在你我的嘲笑中成长,最终十年磨一剑,终成大器。

    以上内容节选自取自HarmonyOS特点与应用前景分析:四川工业科技学院电子信息与计算机工程学院 李艳\刘丹\田小东\谭琦

    原文
    https://blog.csdn.net/harmonycommunity/article/details/108796421?utm_medium=distribute.pc_feed.455628.nonecase&depth_1-utm_source=distribute.pc_feed.455628.nonecase

    展开全文
  • 鸿蒙OS开源代码精要解读之——init

    万次阅读 多人点赞 2020-09-25 09:34:26
    鸿蒙OS开源代码精要解读之——init 作者介绍: 中科创达OpenHarmony研究组 说明: 中科创达OpenHarmony研究组第一时间对https://codechina.csdn.net/openharmony上开源的代码进行了详尽的代码研读和学习。为此,...

    鸿蒙OS开源代码精要解读之——init

    作者介绍

    中科创达OpenHarmony研究组

    说明

      中科创达OpenHarmony研究组第一时间对https://codechina.csdn.net/openharmony上开源的代码进行了详尽的代码研读和学习。为此,我们打算编写一系列篇幅中等,内容精炼的源码分析文章来引领大家更进一步的走进鸿蒙OS。随着对代码的了解,广大开发者想亲自动手参与的意愿和信心也会随之增强——这也是鸿蒙OS开源的意义所在。

    本篇内容摘要

    本篇以OpenHarmony中ipcamera_hi3518ev300为编译目标,介绍init进程的相关代码。

    写在前面的话

    我们对OpenHarmony的代码进行了一个简单粗略的统计。除去所有的third_party代码(即OpenHarmony使用的第三方开源库),其他剩余的代码中,以.c、.h文件为统计入口,总有效代码行数(不含注释、空行等,统计工具为tSourceCounter)为325627行。其中,归属kernel目录下的总有效代码行数为74150行。整个OpenHarmony中,kernel部分占比为22.8%左右,代码量上占大头的还在于kernel之上的、我们称之为Framework的部分。根据我们在Android系统上多年的摸索和经验,Framework恰恰是Android OS的精髓。所以,以OpenHarmony目前才20多万行的Framework代码量来看,感兴趣的开发者在这块参与共建、献策献力的机会非常大。

    1.  OpenHarmony源码的下载和编译

    先介绍代码的下载和编译。我们研究组用得是ubuntu 19.10的主机环境。

    1.1  源码下载

    按照codechina.csdn官网的源码下载指南:https://codechina.csdn.net/openharmony/docs/-/blob/master/get-code/%E6%BA%90%E7%A0%81%E8%8E%B7%E5%8F%96.md

    我们使用的是第四种方式“获取方式4:从代码仓库获取”。执行这一节中的几个命令,即可得到整个源码仓库。

    1.2  编译源码

    我们选择的编译目标是“Hi3518解决方案”,其编译后的输出目录名为ipcamera_hi3518ev300。ipcamera_hi3518ev300是一个基于海思的ip摄像头设备。相关的介绍文档入口在https://codechina.csdn.net/openharmony/docs/-/blob/master/quick-start/%E6%90%AD%E5%BB%BA%E7%8E%AF%E5%A2%83-2.md

    注意,编译不同的解决方案需要建立对应的编译环境。对hi3518来说,开发者需要按照上述链接里的“搭建环境”来下载和配置。

    一切就绪后,在源码根目录下执行 python build.py。如果不带参数的话,它会提醒你指定编译目标,截图如下:

    图1  python build.py不带参数的执行结果

    这次,我们通过python build.py ipcamera_hi3518ev300即可编译“Hi3518解决方案”。编译耗时10几分钟。

    注意,编译过程中可能出现找不到<valgrind/valgrind.h>的错误。这是因为目前我们下载的代码中没有包含valgrind的头文件。开发者可以手动将/usr/include/valgrind目录拷贝到prebuilts/lite/sysroot/usr/include下即可(仅限Ubuntu平台,需提前安装好valgrind工具)。

    1.3  OpenHarmony编译相关小知识介绍

    OpenHarmony源码编译系统使用了google开发的gn工具以及ninjia。这二者结合起来比传统的makefile编译系要高效,尤其适合大系统的并行编译。对开发者而言,如果要参与OpenHarmony的开发,需要对gn的语法有些了解。本文仅做一些最基本的介绍:

    1. 使用gn工具的话,开发者将编译规则写在名为BUILD.gn文件中。和Makefile一样,gn文件有自己的语法规则,属于领域语言(Domain Specific Language,DSL)。gn语法不难,但编译规则本身有很多内容,所以一下子要掌握全部内容也不容易。
    2. gn支持自定义模板函数,可放在名为.gni的文件中。OpenHarmony中最常见到的gn模板文件为./build/lite/config/component/lite_component.gni。.gn文件中通过import可导入gni模板文件。OpenHarmony定义了lite_component、lite_library等模板函数。
    3. gn中,可执行文件的编译函数入口为exectuable("文件名"),共享库的编译规则函数为shared_library("文件名")。所以,如果要搜索某个文件对应的编译规则,可以先搜索所有的BUILD.gn文件,然后grep executable。以下是我们grep所有的executable的结果截图。

    图2  grep BUILD.gn中executable的结果示意

    通过这种方式,我们能很快定位到比如init对应的代码在什么地方。

    最后,我们再简单介绍下OpenHarmony编译系统中和底层OS有关的一个条件编译控制变量ohos_kernel_type。目前,该变量有四个取值,分别为"liteos_a"、"liteos_m"、"liteos_riscv"和"linux":

    1. "liteos_a"和"linux"经常做为一组进行判断。liteos_a实际对应的是Cortex-A系列,其性能相对较高,可以跑Linux系统。
    2. "liteos_m"和"liteos_riscv"往往是一组的。liteos_m对应的是Cortex-M系列,liteos_riscv是Riscv芯片的表示,二者可能都是针对性能一般,功耗较低的设备。

    ohos_kernel_type的取值由build/lite/product/解决方案名.json文件中的product字段决定。例如,我们选择的ipcamera_hi3518ev300的配置文件内容截图如下,它的kernel字段值为"liteos_a"。

    图3  build/lite/product/ ipcamera_hi3518ev300.json配置文件示意图

     编译完成后,所有编译生成物都在out/ipcamera_hi3518ev300目录下。

    2 init源码精要解析

    init是Linux系统上的第一个应用进程,是其它进程的源头。对ipcamera_hi3518ev300来说,它的编译产物中也有一个init进程。

    在上面提到的out/ipcamera_hi3518ev300目录下,有一个rootfs.tar文件。这个文件里就是设备上根文件系统的内容。打开其中的/rootfs/bin目录,可以看到此次编译的可执行程序如下截图所示:

    图4  out/ipcamera_hi3518ev300/rootfs.tar/bin内容示意

    借助图2里提到的办法,我们可以定位到init对应的代码路径为base/startup/services/init_lite/。其内容如下图所示:

    图5  init_lite源码文件示意图

    main.c是整个init的入口。我们简单看一下它的代码,如下所示。

    图6  init_lite/main.c

    init main函数非常精简,非常符合"lite"轻量简便的风格。当然,也不排除未来init的代码会越来越复杂。我们在AOSP上观察到的情况就是一个例子——AOSP里现在的init的相关代码非常复杂)。

    我们对InitReadCfg比较感兴趣,这个函数内部将读取/etc/init.cfg文件。这个文件在图4中提到的rootfs.tar中可以找到,下图是其内容的示意:

    图7  rootfs.tar/etc/init.cfg

    init.cfg本质上是一个json格式的文件。它包括一个名为"jobs"的数组和一个名为"services"的数组。

    1. 对"jobs"来说:内部分别包含"pre-init"、"init"和"post-init"三个元素。从上面的截图中可以看出,这三个元素对应的就是设置挂载一些设备、设置好路径,启动服务等工作。
    2. 对"services"来说:它包含一组服务的定义。所谓的服务,就是系统里的关键进程。可以猜测到,init将根据service的配置来启动对应的服务程序,并设置它的uid、gid、进程优先级和权限等。

    如果开发者对Android系统有一定了解的话,会发现OpenHarmony和AOSP在init的工作流程上有着相似的设计思路。不过,对OpenHarmony目标设备来说,使用json格式无疑是比较简单且方便的。

    最后,我们再看一下init的另外一个重要职能——服务进程状况监控。init.cfg中的那些服务属于系统关键进程。运行过程中如果它们出现异常导致进程退出,需要有个办法将它们重新启动以保证业务连续性。

    这个功能的实现就是利用Linux系统的SIGCHILD信号。init在SignalInitModule中监听了该信号并设置了对应的信号处理函数——SigHandler。SigHandler函数的具体处理过程则比此处说得要更复杂一点。现在,这部分内容就留给读者们自行探索了!!

    展开全文
  • 鸿蒙 OS 的到来,能为我们改变什么?

    万次阅读 多人点赞 2019-09-18 11:19:47
    作者 | 屠敏 出品 | CSDN(ID:CSDNnews) 「鸿蒙初辟原无姓,打破顽空需悟空」,在国产自研操作系统短缺的窘境之...作为一款基于微内核的全场景分布式 OS,「鸿蒙 OS」肩负打破传统 IoT 操作系统的责任,同时也成...

    在这里插入图片描述
    作者 | 屠敏
    出品 | CSDN(ID:CSDNnews)

    「鸿蒙初辟原无姓,打破顽空需悟空」,在国产自研操作系统短缺的窘境之下,天惊一声雷,「鸿蒙」踏风来。

    回首上个月的技术圈,最值得业界浮称流说的无疑是 8 月 9 日华为开发者大会 2019(简称 HDC 2019)上公开的「鸿蒙 OS」。作为一款基于微内核的全场景分布式 OS,「鸿蒙 OS」肩负打破传统 IoT 操作系统的责任,同时也成为万众期待的移动操作系统市场上的 Plan B。

    其实自「鸿蒙 OS」揭开神秘面纱至今已有一月有余的时间,业界对其看法贬褒不一,有人表示,「鸿蒙 OS」的到来一石激起千层浪,名副其实的国产自研操作系统的骄傲;不过也有人质疑,目前看起来依旧是一款 PPT 操作系统的鸿蒙 OS 真的有那么大的潜力吗?对此,我们也不禁好奇,初生牛犊的「鸿蒙 OS」是否真的能实现以上的种种?其背后又有哪些不为人知的故事?对于为「鸿蒙 OS」开路的全新产品之华为方舟编译器,它的开源代码又将为技术圈的从业者们带来哪些思考?

    基于此,CSDN 独家策划了以「鸿源初辟,蒙地始开」为主题的《程序员大本营》9 月刊,将为大家全面揭晓鸿蒙 OS 背后的种种,也将帮助大家更好地了解当下主流的物联网、AI、云计算、区块链等技术迭代历史和最新的发展趋势。(精彩内容不容错过,想要查阅完整的《程序大本营》期刊?扫描下方二维码,下载 CSDN App,限时五天,免费获取,先到先看哦~~

    十年磨一剑,霜刃未曾试

    事实上,和素有“动物园”之称的阿里相比,华为更像是一本《山海经》。被命名为「鸿蒙」的操作系统就是典型的华为版《山海经》重要组成之一。

    众所周知,鸿蒙 OS 十年磨一剑,但霜刃始终未曾试。

    早在 2009 年,华为就于内部创立了编译组,开启了秘密研发模式,旨在为自研芯片、新一代通信、云计算、操作系统等技术提供编译器的基础建设。

    到了 2012 年,华为再次成立了一个代号为“2012 实验室”,面向未来进行 5-10 年的长期布局,基于以上新兴科技开始深入技术研究。

    彼时“2012 实验室”为了进行专项研究,它的旗下逐渐衍生出以多个以科学家名字命名的实验室,譬如诺亚方舟实验室、欧拉实验室、香农实验室、高斯实验室。此前,据国内不少媒体透露,华为的方舟编译器正是来自诺亚方舟实验室,而华为的操作系统则是由欧拉实验室负责研发。

    之所以要自研操作系统,其实极其具备危机意识和忧患意识的华为掌舵者任正非早在 2012 年的一次内部讲话就曾透露道,华为做终端操作系统是出于战略的考虑,“(如果)Android 系统不给我用了,Windows Phone 8 系统也不给我用了,我们是不是就傻了?”

    果不其然,短短几年后,这个担忧还是发生了。2018 年之际,华为一朝被美国政府列入“实体清单”(Entity List),这意味着华为在未来倘若没有美国政府的许可,所有美国企业将不能再给华为供货。

    而在此后没多久,据路透社报道,有消息人士称,Alphabet 旗下的 Google 受美国“行政令”的影响,于 2019 年 5 月暂停了与华为的部分业务合作,其中 Google 除了 Android 操作系统开源的部分,停止了对华为授权 Android 系统中闭源的应用以及技术支持等服务,即 Google 的 Google Play Store、Google 语音控制助理、Google 地图、Gmail、YouTube 等应用,华为设备虽然可以下载但是将无法正常访问。

    操作系统被扼喉,外患加内忧的双重压力下,华为暗中发力,加快自己产品的研发速度,而更多有关鸿蒙 OS 的消息也接踵而至:

    • 5 月 24 日,国家知识产权局商标局网站显示,华为已申请“华为鸿蒙”商标,申请日期是 2018 年 8 月 24 日,注册公告日期是 2019 年 5 月 14 日,专用权限期是从 2019 年 5 月 14 日到 2029 年 5 月 13 日;

    • 5 月 17 日,有网友曝光由上海某教授领导华为操作系统团队开发的自主产权操作系统「鸿蒙」的相关技术应用;

    • 依旧是 5 月,华为消费者业务 CEO 余承东终松口表示,鸿蒙最早将于今秋面世;

    • 7 月,华为董事长梁华表示,鸿蒙是为物联网开发的系统,可在自动驾驶,远程操作医疗环境,提供低时延的一个操作系统;

    今日把示君,谁有不平事

    秋季未至,而华为「鸿蒙 OS」提早面世。

    在今年 HDC 2019 上,作为“理工”出身的华为消费者业务 CEO 余承东带着为极具技术性的「鸿蒙 OS」惊艳了全场。

    对此,余承东正面解释了「鸿蒙 OS」的诞生背景,其表示,目前由于 Android/Linux 系统内核代码庞大冗余,难以保证不同终端体验流畅,同时多终端互联网对设备安全也提出了更高的要求,需要软件生态与硬件绑定,降低用户体验与开发效率,而鸿蒙 OS 正是为了解决这些难点而生。

    而从技术架构来看,鸿蒙 OS 具备四大特性:

    分布式架构:实现跨终端无缝协同体验

    • 鸿蒙 OS 的“分布式 OS 架构”和“分布式软总线技术”通过公共通信平台,分布式数据管理,分布式能力调度和虚拟外设四大能力,将相应分布式应用的底层技术实现难度对应用开发者屏蔽,使开发者能够聚焦自身业务逻辑,像开发同一终端一样开发跨终端分布式应用,也使最终消费者享受到强大的跨终端业务协同能力为各使用场景带来的无缝体验。

    实现系统天生流畅:确定时延引擎和高性能 IPC 两大技术

    • 为了满足万物互联的全场景智慧时代对 OS 提出的新要求,鸿蒙 OS 将硬件能力与终端解耦,通过分布式软总线连接不同终端,让应用轻松调用其他终端的硬件外设能力,为消费者带来跨终端无缝协同体验。

    内核安全:基于微内核架构重塑终端设备可信安全

    • 鸿蒙 OS 采用全新的微内核设计,拥有更强的安全特性和低时延等特点。微内核设计的基本思想是简化内核功能,在内核之外的用户态尽可能多地实现系统服务,同时加入相互之间的安全保护。微内核只提供最基础的服务,比如多进程调度和多进程通信等。同时,它还将微内核技术应用于可信执行环境(TEE),首次通过形式化方法,重塑可信安全。形式化方法是利用数学方法,从源头验证系统正确,无漏洞的有效手段。

    统一 IDE 支撑一次开发,多端部署,实现跨终端生态共享

    • 鸿蒙 OS 配备面向多终端开发的统一 IDE(集成开发工具),可以帮助开发者实现真正的一次开发,多端部署,在跨设备之间实现共享生态。

    整体而言,鸿蒙是全球第一个微内核、面向 AI 全场景的分布式 OS。

    ##「鸿蒙 OS」的领军人物

    那么,要问这款伟大且极具里程碑意义的产品究竟来自哪些精英之手?其是否有着灵魂人物的存在?

    众里寻他千百度,据了解,鸿蒙 OS 背后的灵魂人物是一位来自上海交大的教授、博导——陈海波,与此同时,他还兼任华为 OS 首席科学家、操作系统内核实验室主任。

    乍一听,或许很多人并没有直观感受到全球操作系统领域顶尖人才的技术魅力,但是当打开这位年轻 80 后教授陈海波的个人介绍页面(https://ipads.se.sjtu.edu.cn/zh/pub/members/haibo_chen/)时:

    • 2010 年,亚洲学者们连续 40 年,都没能在 SOSP(操作系统原理大会,成立于 1967 年)上独立发表研究论文。2011 年,陈海波的论文被 SOSP 录用,难破的纪录,就这样被一位三十来岁的年轻人 Kill。

    • 此外,陈海波还多次担任 SOSP、ISCA、Oakland、EuroSys、Usenix ATC 等国际著名学术会议 PC members,APSys 2014、2014 年全国体系结构学术年会等 PC Co-Chairs,以及 ACM APSys 的 Steering Committee Co-Chair,在 SOSP、OSDI、EuroSys、Usenix ATC、ISCA、MICRO、HPCA 等发表多篇学术论文,获得 VEE 2019、APSys 2017、EuroSys 2015、APSys 2013 与 ICPP 2007 的最佳论文奖,HPCA 2014 的最佳论文提名奖,以及 2009 年 CCF 优秀博士学位论文奖、2011 年全国优秀博士学位论文奖与 CCF 青年科学家奖、2015 年中国计算机学会青年科学家奖、2018 年度教育部技术发明一等奖,入选教育部新世纪人才计划与国家万人计划“青年拔尖人才计划”;

    • 以下是近五年来,陈海波在操作系统领域所做的一些贡献:

    在这里插入图片描述

    陈海波海波团队近年来的贡献

    我们才深刻感受到真正的王者,从来低调。

    鸿蒙 OS 的第一枪:方舟编译器

    正是在这位灵魂人物的引领,以及国内外学术界多位 OS 领域学者、专家的共同努力之下,鸿蒙 OS 才会成功进入大众视野与日常产品应用中。

    不过,如今距离这款操作系统的发布已经过去了一个多月的时间,但是用户依然未能亲眼目睹彼时余承东宣布将会开源的鸿蒙 OS 的源代码,对此,业界依旧有不少人质疑鸿蒙为一款 PPT 操作系统, 那么鸿蒙 OS 是否真的能承受住万众期待的重量?

    实则,8 月底华为开源的方舟编译器已在无形之中打响了鸿蒙 OS 起跑的第一枪。

    为何会如此评价?对此,CSDN 特邀上海鉴释科技创始人、前华为人&原方舟编译器立项负责人之一梁宇宁解剖到:

    如果要一个操作系统高效,它的设计必须和它的芯片或多或少有更密切的关联,而这些关联就是用编译器去达成的,就是负责把程序源代码根据芯片的设计去做最大化优化。

    华为手机的技术一直是以苹果手机对标的,自然而然,华为就要构造这些能力从芯片,操作系统到编程技术。

    为了对标苹果,当初的目的是为了省内存和闪存,从而有相应性能提高,而华为首先尝试改变安卓上的采用编程技术,再来实现软件和硬件联同设计,如 CPU 的流水线和特有指令等。

    从方舟编译器的开源,就可以很清晰的看到,当初决定的技术方向,就是把动态语言特性静态化在运行前预处理,这还是属于 AOT 范围,但是比 SUN 当时在 Java 上做的 AOT 激进:

    • 把 Java 的字节码预编译成机器码,当然有华为自己的 IR 为编译转换和优化所用;
    • 把 Java 的内存垃圾管理 GC 改成和苹果自动引用计数 ARC 一样。
    • 这是不包含传统编译器:
    • Java 编程语言解析器,负责把 Java 程序源代码转换成 Java 的字节码;
    • 生成的机器码还是 ARM 标准的指令集,没有华为芯片特定的指令;
    • 没有自己链接器,所以没有对应的优化。

    简单来看,编译器虽没有被集成到操作系统内核中,但也是操作系统的功能中很重要的组成部分。

    鸿源初辟,蒙地始开

    而未来鸿蒙 OS 会如何?

    目前,随着搭载鸿蒙 OS 的荣耀智慧屏的发布,我们也亲眼见证了基于该操作系统的智慧屏电视已与手机实现全方位互联,且带来了更加高效的交互,而未来也正如华为官方所述,鸿蒙 OS 会逐步应用于可穿戴、车机、音箱等更多的智能设备中。

    其实,最初业界对于鸿蒙 OS 的期待是希望它能成为 Android 的替代者,而并非是面向全场景的 IoT 操作系统。

    如今在现实面前,要问用户是否会有失落之感?其实是有的,不过对此,诸多华为发言人也不断地表示,如果将来美国允许使用 Android,华为将仍然使用 Android 系统和生态;如果美国不允许华为使用 Android 系统,华为也能够拿出自己的产品,鸿蒙系统不是谈判策略。

    从一定程度上来看,这无疑是当前最好的方案。为何这么说,其实反思华为之所以提前让鸿蒙 OS 面世,一方面或因为美国封令的压力,另一方面,这也是华为想让鸿蒙 OS 开始学走路的标志。

    事实上,和 Android 庞大且成熟的生态系统相比,鸿蒙 OS 仍旧是一个步履蹒跚的学童,其想要实现加速跑步还需要足够的时间去开源吸引更多的用户与厂商参与、构建一套完善的应用层生态、适配更多的终端等等,因此,当下想让鸿蒙 OS 短时间之内将 Android 取而代之,显然不切实际,不过,鸿蒙 OS 如今动起来终究是一件好消息。

    对此,梁宇宁也评价道:“也许今天,我们无法想象华为的将来会是如何,我深信只要华为如给承天霹雳辟开,逐渐地彻底地真诚开放,团结世界上一切可以团结的力量,光明永远在等候着有心人的到来。”

    最后,想要了解更多更详细更专业的鸿蒙 OS 内容与 IoT 领域内容,与你相约《程序员大本营》9月刊,扫描下方二维码,下载 CSDN App,立即查阅文章~~

    展开全文
  • 鸿蒙OS是什么

    万次阅读 多人点赞 2020-09-25 14:41:54
    文章目录前言一、鸿蒙OS是什么?二、HarmonyOS的特点1.HarmonyOS的设计与理念2.HarmonyOS的创新3.方舟编译器特点分析4.HarmonyOS的应用研究结束 前言 提示: 2019年8月华为推出鸿蒙HarmonyOS,并运用在荣耀智慧屏,...
  • 在30日的亚布力中国企业家论坛上,对于鸿蒙OS(HarmonyOS)使用在手机上的时间点,华为消费者业务CEO余承东表示,今年先不发布这个计划,明年有可能。这意味着,鸿蒙OS版本手机不会在下个月召开的华为开发者大会上...
  • 鸿蒙OS下载地址

    万次阅读 2019-08-10 17:27:44
    奈何很多人不知道,鸿蒙OS的下载地址,随便写一点发个官网链接。 鸿蒙系统是基于微内核的全场景分布式OS,可按需扩展,实现更广泛的系统安全,主要用于物联网,特点是低时延,甚至可到毫秒级乃至亚毫秒级...
  • 鸿蒙 OS 2.0 来了!值得开发者关注的是什么?

    万次阅读 多人点赞 2020-09-10 16:56:26
    鸿蒙 OS 首发时,余承东特意用橙色标明 1.0 版本「基于开源框架,关键模块自研」。而按照华为的规划,今年在 HDC 上刚刚发布的鸿蒙 2.0 迎来了史诗级升级,完全演化成一个自主独立的操作系统。
  • 华为鸿蒙OS2.0:为中国的软件行业种“根”

    万次阅读 多人点赞 2020-09-22 17:47:08
    华为鸿蒙OS2.0系统定义 HarmonyOS是一款“面向未来”、面向全场景(移动办公、运动健康、社交通信、媒体娱乐等)的分布式操作系统。在传统的单设备系统能力的基础上,HarmonyOS提出了基于同一套系统能力、适配多种...
  • 华为鸿蒙OS是什么?

    2020-11-04 16:05:55
    华为公司新近推出的经历十年多时间自主研发的鸿蒙操作系统(HarmonyOS),是基于微...HarmonyOS拥有分布架构、内核安全、生态共享、运行流畅四大优势,鸿蒙OS生态的两大核心要素包括自身的微内核结构和方舟编译器。</p>
  • 鸿蒙OS最新进展】鸿蒙内核liteos-a体验

    千次阅读 多人点赞 2020-09-15 16:31:01
    上周鸿蒙2.0开源,想必很多人都想第一时间体验。 今天,百问网发布鸿蒙IMX6ULL烧写工具以及鸿蒙体验手册,欢迎下载体验。 一、鸿蒙IMX6ULL烧写工具&鸿蒙体验手册 下载: ...1.上周六,华为才把我在内部写的代码...
  • 鸿蒙OS源码

    千次阅读 2019-09-01 00:00:06
    鸿蒙OS操作系统一声巨响,横空出世 首先附上源码链接 鸿蒙 鸿蒙系统(HarmonyOS)是基于微内核的全场景分布式OS,可按需扩展,实现更广泛的系统安全,主要用于物联网,特点是低时延,甚至可到毫秒级乃至亚毫秒级。 ...
  • ; margin-right:0cm">华为自2012年开始研发这款操作系统,其具有轻量化、小巧、功能强大的优势,...鸿蒙OS基于分布架构,天生流畅,内核安全,能够带来终端之间实现能力互相共享。</p>
  • HarmonyOS鸿蒙操作系统 Ⅰ。什么是鸿蒙操作系统(HarmonyOS) HarmonyOS 是“第一个适用于所有场景的基于微内核的分布式操作系统”,它可以运行在智能手机、智能扬声器、计算机、智能手表、无线耳塞、汽车与平板...
  • HarmonyOS(鸿蒙OS)发布,聊聊操作系统的调度

    万次阅读 多人点赞 2019-08-15 22:41:35
    上周末台风过境时,华为终于发布了鸿蒙操作系统(HarmonyOS),我没看发布会,因为我不喜欢开发者大会上出现的...华为可以在没有鸿蒙内核的情况下发布鸿蒙OS,因为PPT上说了,鸿蒙OS可以跑在安卓Linux以及鸿蒙内核之上...
  • 华为正式发布自有操作系统——鸿蒙 OS

    万次阅读 多人点赞 2019-08-09 17:08:16
    中美技术战之下,无数国人在无数个日夜中无不为中华崛起而奋斗,就在今天,我家成果...与 Google Fuchsia 的微内核有所不同,鸿蒙 OS 是一款基于微内核的全场景分布式 OS,顾名思义,其不仅面向的是智慧大屏、穿戴、...
  • 鸿蒙os初探

    千次阅读 2020-09-19 14:30:15
    鸿蒙os开源了,算是里程碑的一步吧,主要先简单了解下,操作系统嘛,肯定是以c/c++为主,加少量汇编,但是上层应用开发到底是使用什么语言还不得而知,不管是java还是kotlin都是有限制的,c/c++门槛又高些,对现在的...
  • 鸿蒙 OS:使用 JavaScript 开发 Todo App UI 界面

    万次阅读 多人点赞 2020-09-19 22:38:08
    距离鸿蒙 OS 2.0 发布已经过去一些日子了,看到鸿蒙系统强大的设备共享能力,我觉得未来它一定能够成为主流的操作系统。在利用了分布式系统的优势之后,多个设备间可以共享应用程序界面和数据,并且对于开发者,也...
  • 鸿蒙OS尝鲜, 居然还有这种事情!

    万次阅读 2020-09-26 10:32:52
    https://www.harmonyos.com 网上搜索第一个不是官方是三方的 1.2.IDE下载位置: 源码编译的下载: https://device.harmonyos.com/cn/ide 开发应用的下载:...
  • 鸿蒙 OS

    2019-08-10 10:17:55
    华为正式发布自有操作系统——鸿蒙 OS! 2019年08月09日 17:08:16 CSDN资讯 阅读数 5486 中美技术战之下,无数国人在无数个日夜中无不为中华崛起而奋斗,就在今天,我家成果终于初长成! 日前,正在于东莞松山湖总部...
  • 周末在家休息,女朋友在刷朋友圈,突然她问我:鸿蒙OS回顾2019年8月9日华为开发者大会上,华为消费者业务CEO余承东正式宣布发布自有操作系统鸿蒙,内核为Linux内核、...
  • 鸿蒙OS体验

    2020-11-09 22:13:59
    js版本 如何运行的我就不说了 我就说说体验 总体感觉 js版本的UI框架就是一个各路集合的混合体 有小程序影子 有vue影子 js版本是java混合开发的生命周期还需要在java上引入 如何helloworld 官网...鸿蒙OS文档地址 ...
  • 鸿蒙OS入门

    2020-11-17 17:26:29
    Hello world教程 控制台打印 Hilog 类 参数HilogLabel label String format, Object… debug 输出调试信息 info 输出一般信息 warn 输出警告信息 error 输出错误信息 fatal 输出严重错误信息 ... public void onStart...
  • 华为鸿蒙OS之HelloWorld

    千次阅读 多人点赞 2020-09-13 19:01:53
    华为鸿蒙OS之HelloWorld 这两天很火的一个话题华为鸿蒙OS2.0发布了。个人开发者也可以进行鸿蒙OS的应用或者硬件开发。作为一个“啥也不会的程序员”,时刻要保持着学习的心态,所以本文将会介绍基于鸿蒙OS的应用开发...

空空如也

1 2 3 4 5 ... 20
收藏数 1,164
精华内容 465
关键字:

鸿蒙os