当前位置:首页 » 操作系统 » liteos源码

liteos源码

发布时间: 2023-02-04 11:45:23

A. “生万物”的鸿蒙来了!华为布局AIoT最重要的版图

《庄子·逍遥游》中有这样的描述:“北冥有鱼,其名为鲲。鲲之大,不知其几千里也。化而为鸟,其名为鹏。鹏之背,不知其几千里也;怒而飞,其翼若垂天之云。“古人常用鲲鹏之志形容志向远大。


鸿蒙系统正式面世

6月2日晚8点,备受关注的华为鸿蒙操作系统正式面向消费者发布,它将正式搭载到手机、平板电脑,甚至豆浆机、烤箱等家电设备上。


华为鸿蒙操作系统的横空出世,是具有里程碑意义重大的“世纪之战”,华为鸿蒙挑战的是手机操作系统谷歌安卓、苹果IOS,以及电脑操作系统windows和开源linux操作系统、苹果MAC OS操作系统。

据悉,目前的操作系统市场,安卓占据了全球市场份额的68.63%,苹果占据了30.99%。华为鸿蒙操作系统的出现,有可能打破这两家独大的状况。

到底什么是鸿蒙系统?

发布会上,华为消费者业务软件部总裁王成录用一句话概括了鸿蒙操作系统(以下简称“鸿蒙”)给当前的手机系统带来的变化:

“在智能手机的时代,让消费者有机会根据自己的需要来组装软件(指APP)。那么,鸿蒙相对于今天的操作系统,又有一个飞跃,让消费者可以根据自己的需要来组装不同的硬件。”

按照华为的规划,今年底搭载鸿蒙OS的终端设备将超过3亿台,其中1亿台为第三方合作伙伴的终端设备。

华为轮值CEO徐直军表示,目前鸿蒙操作系统生态已经发展了1000多个智能硬件合作伙伴,50多个模组和芯片解决方案合作伙伴,包括家居、出行、教育、办公、运动 健康 、政企、影音 娱乐 等多个领域的合作伙伴。

实际上,鸿蒙操作系统打通了消费互联网和产业互联网。

鸿蒙赋能各大场景万物互联

据徐直军介绍,华为鸿蒙操作系统在2021年的举措主要包括:鸿蒙官网、论坛、社区、公众号等全面上线;源代码全面开源,覆盖手机、平板、车机、智慧屏及各类IoT设备;开放鸿蒙培训平台,标准课程,构建统一的人才认证体系,推动鸿蒙技术能力走进校园等。

2020年中国智能家居市场规模将突破2400亿,2020年全球智能家居市场平均渗透率将超过60%。未来三年将是智能家居行业快速发展期。相比开发周期较长的家电行业,鸿蒙OS 对于产业赋能效果显着。

通过物联网技术,家中的智能化的家用电器可以紧密相连,通过智能运作便可以实现远程控制。智能家居不仅具有传统的居住功能,兼备建筑、网络通信、信息家电、设备自动化,提供全方位的信息交互功能,甚至为各种能源费用节约资金。

这些智能化的设备、家用电器在鸿蒙系统发布后,将会进一步推进家居智能化的到来。家居智能化最重要的一环,就是互联网技术与家用设备的结合。

随着互联网头部企业的技术发展,大数据技术、云计算技术人才的不断增多,家居智能化取得了长足进步。鸿蒙问世将搭载大数据技术和发展的前沿应用趋势,以小川汇集大海之势,融合场景,连接设备,努力成为新一代操作系统的新贵。

如何实现更好的智能体验?

在全场景智慧生活应用中设备联结、控制复杂,体验感分割等问题,面对如此庞大的终端设备群,鸿蒙系统该如何实现更好的智能体验?

1、全系统覆盖

鸿蒙系统使用分布式框架和原子化服务将各设备用软总线联结,达成全系统覆盖,保证用户有机会根据自身需求随意组装,实现模块化定制加持。并且,硬件弹性大,从128k--4G以上,鸿蒙系统都可以使用。

2、多设备融合为“超级终端”

鸿蒙系统采用“软时钟同步”和“无限传输干扰”来解决音画同步的技术难点。PC系统安装鸿蒙分布式插件后,手机文件就相当于新盘符,便于PC端调用手机内容及材料。

使用超级终端统一入口来操控设备模组,提升设备间敏捷度,完成与手机联结的所有第三方设备状态的实时查看和操控。

另外,我国现阶段家电设备自动化程度持续提高,但由于设备与设备间的碎片化分布使之无法充分发挥性能优势。鸿蒙系统将打破消费者智能使用率不到5%的现状,增强设备黏合度,打造全生态模式。

3、应用跨设备流转

“万能卡片”将成为鸿蒙生态设备之间统一交互的载体和语言,卡片到哪里,服务转到哪里,真正打破应用间的硬件约束。所有鸿蒙设备间都将通过“万能卡片”进行有效流转,所有卡片信息全部显示在服务中心用户无需再次安装,被分享手机无需事先安装APP,便捷实现信息互联。

华为业务软件部总裁王成录博士表示,鸿蒙OS就是要让消费者在操控多种设备时像操控单设备一样简单。

能否“突围”几乎定局的市场份额?

此前,小米和Google都曾推送新操作系统。小米Vela主要布局在AIoT生态圈可穿戴设备及智能家居场景布局上,与鸿蒙系统全设备万物互联并不完全相同。但Google Fuchsia OS,同样是囊括手机、PC在内的万物互联定位。在这样的环境下,鸿蒙系统具备哪些逆风破局的优势?

首先,鸿蒙系统开源的liteos内核已趋向稳定。liteos内核是由华为OS团队专门维护其核心组件,包括ota、shell、fs、usip、oc、crc、cJSON等组件。这些组件可以为开发者提供简单接口实现孔中升级、shell等功能,帮助开发者更轻松的开发物联网设备。自2015年起,它就已广泛应用到摄像头、手机指纹传感器等设备中,未来将作为华为解决方案一起来开拓市场份额。

其次,华为海量终端用户也将在鸿蒙系统万物互联中起到关键性作用。在发布会上,华为发布了watch3、HUAWEI MatePad Pro、HUAWEI MateView、HUAWEI FreeBuds4无线耳机等新品。并宣布自6月2日起,Mate30、40系列都会同步进行ota升级,nova6、7等老款机型也将在第三季度全面进行升级。由此可见,华为的硬件优势都将为华为AIoT生态化建设提供关键性扶持作用。

鸿蒙OS,现阶段只是生态建设的开始,下一步将需要硬件厂商、应用厂商、集成商的联合支持。

总结:3亿和16%的生死突围

要把生态链发展到什么程度,鸿蒙才算是存活了下来?

华为消费者业务AI与智慧全场景业务部副总裁杨海松给出了一个数字——16%。

“对于操作系统这类底层平台而言,软件使用量、市场占有率是它能否活下来、能否成功的核心因素,而16%的市占率则是一个生死线。”杨海松说。

为了迈过这16%市占率的生死线,华为在2021年的目标:搭载鸿蒙的设备数量需达到3亿更显得任重而道远。

目前来看,暂无其他手机厂商伸出援手,生态链也尚未完善,鸿蒙恐怕还有很长一段道路需要走。

B. 鸿蒙系统好写吗为什么

单从技术上讲,开发一个单独的操作系统内核并没有想象中的那么困难。网上搜一下 至少能找到几十个甚至上百个OS内核实现,虽然绝大多数只是玩具级别的,但很多都是麻雀虽小,五脏俱全,基本的功能都有实现。

先说下自己的一些经历吧。

我在几年前曾经从零开始写过一个简单的操作系统内核,实现了基本的boot, 内存管理,进程管理,中断管理,IPC,简单的文件系统,简单的磁盘驱动,键盘驱动,简单的终端等基本功能,还实现了一个简单的调试器,支持断点等基本功能。当时对操作系统简直达到了痴迷的程度,只要工作上的事情一做完就去看操作系统方面的书籍资料,晚上下班和周末更是几乎宅在家里不出门,真的可谓是废寝忘食。

终于在参考了Linux, VxWorks还有国外一些大牛写的OS内核之后,最后搞出来了一个玩具级的OS内核,前后大概持续了半年左右。当时也纯粹是为了学习的目的,也是觉得比较好玩,基本功能实现后,就慢慢遗忘在在磁盘的角落里积灰了。。。

所以,从技术上说,开发一个OS内核并没有想象中的那么困难,很多大公司其实技术上都完全有能力开发一个具备基本功能的OS内核。当然,功能完备性、安全性、性能等方面能不能搞好就另说了。

我现在所在的公司,就有完全自主开发的微内核OS,并且在公司上百万台的电信级的分布式集群服务器产品上已经稳定运行了二十多年。并且,还围绕这个OS建立了一系列配套生态,比如基础开发库,一系列配套的开发调试工具,甚至还有专门为这个系统开发的编程语言和编译器等。我曾经有几年的主要工作,就是在维护这个OS内核。可惜的是,这几年公司已经在慢慢用Linux替换这个OS了,估计几年之后就要彻底退役了。

开发一个操作系统的真正难点在于创建围绕在这个内核周边的生态系统。一个单独的内核远远不能构成一个完整的系统,它需要大量的支持环境,如系统支持库,应用程序,开发调试工具等等,此外还要能够推广出去,要有其他上下游的公司愿意使用,能够被广大开发者认可并愿意为其开发新的应用等等,这才是真正的难点所在,是需要投入大量人力物力财力才有可能完成的。

很多公司也正是从技术积累上,时间上,成本上,风险上来考虑,不愿意花大力气在这上面。所以才有了如今Windows,Linux,Apple三分天下的局面。

咱们国家虽然急切渴望能有一个自研的OS,但现状是,有实力的厂商更愿意投资一些能看得到摸得着的实实在在的应用产品上,这样来钱快,才能在最短的时间内看到收益回报,也就是更高的投入回报比。

对于像操作系统,编译器之类的基础软件,除了需要雄厚的技术实力外,还需要耗费大量的人力财力物力,而且失败的风险较大。即便开发成功,还要花大力气进行推广,建立周边生态,这更是需要更大投资,时间成本也更大,往往需要几年甚至十几年时间才能看得到收益。

这对于习惯吃快餐、赚快钱的国内企业来说,根本无法接受。这也需要企业决策层领导具有很大的魄力和战略眼光,但现实中,这样的领导简直是凤毛麟角。

这也正是国内厂商大都不愿触碰自研OS的主要原因,也造成了我国至今仍没有自己的操作系统编译器的局面。

此外,现在市场上对一个新的OS的需求其实也没有那么急迫,没有需求,就没有利益,自然就没有动力。尤其在快餐文化盛行的今天,更是很少有公司愿意去触碰这吃力不讨好的事情。

当然也无须太过悲观,任何东西,只要有需求,就会有利益吸引力,就会给企业研究机构足够的动力。相信将来某一天,一旦Windows, Linux, Apple三巨头不再适用市场需求,马上就会有新的操作系统出现。

或许也用不了等很久吧,毕竟微软已经宣布Win10之后将不会再有大的Windows更新版本,而Linux虽然现在社区的开发仍然很活跃,新的功能仍在被源源不断的添加进去,但也正是由于这个原因,它现在变成了一个大而全的通用操作系统,已经变得越来越臃肿,很多场景其实已经不是很适用了,只是没有更好的替代品,很多公司又不愿意投入自研OS,所以只能选择相对成熟并且生态资源丰富的Linux。

Google不是几年前就已经开始开发Fuchsia了吗? 咱们拭目以待吧。也希望国内有实力的企业和科研机构能够迎头赶上,早日实现自研OS梦。

github上放出来的只是一个迷你的嵌入式OS内核LiteOS,翻看过代码,本身并没有很大的难度。至于鸿蒙OS,源码还没开放,目前为止还只是在PPT上出现过,所以不好评价,但愿能够不负众望吧。

Hongmeng OS是基于Linux内核源代码的开发。 OS实现代码主要是C语言,内核提供的本机系统调用接口肯定也是C语言接口。上层APP应用程序与现有的Android JAVA程序兼容,可能需要重新编译JAVA应用程序。程序代码将运行。至于应用程序编程SDK不支持JAVA以外的编程语言,还需要等待系统正式发布后才能发布,但是你可以先了解下面的编译器,据说这是一个业界开源编译器,用于编译APP程序。 。但是,我仍然希望鸿蒙操作系统的应用程序编程接口支持更多的编程语言(如CC等),这样程序可以有更多的选择。

操作系统从运行效率 和 可控性来看是要用C语言。 解释性语言,比如python、PHP就不大可能的。Java 也不太可能,一方面运行效率不如C语言,另外不可控:在内存方面,C语言内存申请和释放都很实时,不像Java 语言内存释放 要等GC。在操作系统层面,内存申请和释放是很频繁的,不能用GC定时释放,万一来不及释放 就OOM了,另外的万一发生full GC 那就更糟糕了,操作系统底层指令运行稍微一抖动,应用程序的执行性能就震了三震。

希望对你有所帮助!

从技术上讲,操作系统是一个没有多少技术含量的事情。一个明白操作系统原理的人用几个月就可以写出一个操作系统。

这个世界上的操作系统成千上万,到处都是,任何一个自动设备中都可以认为里面有一个操作系统,电话、门禁、共享自行车中都有。

鸿蒙系统是否好写要看他的目标是什么,只是简单使用当然简单,但要成为一个流行的系统则难度非常的高。

个人看法是鸿蒙系统有天生的缺陷,他是对抗美国产生的,华为一家独大,包括国内的其它厂商都不能干涉,同时他并非开源,他想怎么办就怎么办。这样就造成开发者特别是国外的开发者面临的风险非常的大。要是和谁闹翻了给禁用那怎么办?

安卓有一个最大的优势在于开源,世界上的开发者都可以使用,共同推进发展。当然本次事件更多的来源于政府的制裁,作为google当然要遵守政府的规定。但鸿蒙同时要遵守政府及企业的双层管制。

因此鸿蒙更多的是国内华为的系统,无论是阿里、小米还是谁想用都面临具体的风险,国外的开发者更是这样,要是他的国家一不小心辱华了,华为就给他们禁用,他们就死定了。

操作系统没有一个可以用好写来形容。

首先从代码量上来讲,操作系统作为一个系统,其代码量工作是非常庞大的,如果由单个开发者来完成,会是一项非常艰巨的任务。比如Windows内核的代码在5000万行以上,Linux目前在2500万行左右。如果题主从事开发工作的话,可以大概估计一下代码量的多少。

作为操作系统来说,兼容不同设备以及不同代的设备是必须的,向上和向下兼容保证了操作系统可以运行在不同的平台上,而向后兼容则保证了开发者的产品不会由于系统升级而出现不能使用的情况。

鸿蒙是分布式系统,显然需要支持不止一种类型的设备,这意味着操作系统本身需要考虑大量的底层硬件区别并给予支持。

操作系统最主要的一个功能是调度,即使在微内核架构里,调度依然被保留为内核的功能之一。

而调度在不同的负载下面,不同的设备上面以及不同的使用场景下面,都应该表现出不同的性能,那么开发者需要考虑到这其中最优并且最稳定的方案,最简单的方法不够智能,最智能的方法又可能引入一些问题。

所以总体来讲,不论操作系统本身性能优劣,从头开发一套系统就是一件工程量极其庞大的工作。

对于像华为这种公司来说,写出一个基于Linux的类似于安卓的系统应该是没有什么难度。但为什么鸿蒙系统到现在还没有正式退出使用?

其次一个系统主要是的就是它的生态系统,就是我们使用的各种app,就像当初微软的手机系统,就是死在软件生态不全,而形成生态就需要比较长时间和财力的投入,要吸引开发者去适配新的系统,而华为目前正在做这件事,通过高于其他系统的收益分成或者收益全部让利开发者的方式慢慢完善自己的生态。目前国内外已经有很多软件及 游戏 厂商已经开始适配HMS服务了,相信不久我们就能看到生态完善的华为新的系统了[赞]

听到鸿蒙,华为都不知道是谁家系统,也许根本就不存在

凑合吧,笔画有点多[捂脸]

难!

但对任何一家世界级体量的公司,都写得出!连黑莓手机都能写得出!

但生态很难!收费没人用,开源也没人用[捂脸]

不好写

C. 为什么有人说鸿蒙是安卓套壳

就好比苹果把AirPods、HomePod、Watch os、TV os、CarPlay、HomeKit、MacOS都改成iOS ,分布式iOS,多端部署。

这样,一提开源、基于aosp,某些人就会给把轻鸿蒙拎出来反驳:自研,开源啦,没有安卓代码。

一提手机上的功能,又把富鸿蒙(基于aosp)拎出来吹。

不要被文字 游戏 迷惑,我们只讲真正的部分,下面的鸿蒙指代手机上的鸿蒙。那个混淆视听的轻踢到一边。

可以肯定的说,手机版鸿蒙就是基于安卓aosp,俗称TP,至少目前是这样。(还有其他混淆视线的op鸿蒙,liteOS等〈说没安卓代码的就是这个〉,注意分清)

那些骂人的极端粉丝请注意, 我们反对的不是自研,而是反对吹牛忽悠 。如果当初有人也以自研,民族,国家为挡箭牌,那我们就不可能揭露红心浏览器和木兰语言的吹牛和忽悠。

还有一些粉丝狡辩:如果是安卓谷歌早就起诉华为了。

这些人是没搞清楚或故意混淆AOSP(Android Open-Source Project,Android 开放源代码项目)和谷歌android的区别。AOSP随便用,但是只有经过谷歌认证的安卓才能安装GMS和谷歌play。搞明白了没?谷歌控制的是gms和谷歌play,谷歌无权控制安卓。

一些人造谣谷歌告阿里, 实际上谷歌从来没有起诉过阿里 。就连套皮的红心浏览器谷歌也没有告过。

套皮安卓是帮谷歌壮大安卓生态,压制ios等对手。当年谷歌diss阿里就是因为阿里重写了虚拟机(可见,阿里的自主化做的比某厂多),想分裂生态另起炉灶,如果阿里套皮,谷歌才懒得理。

某个群体否认手机HM os是PPT,说HM开源了,哪里还是PPT。

1,直到目前(2021.06.29)开源的那个是op 鸿蒙,功能简陋粗糙,功能机和车机水平,炒作营销意义大于实际。和手机版完全是两个东西。

2,ppt上微内核,五个笑脸源码呢?吊打A公司和G公司系统的ppt系统依旧只存在于ppt。手机上的依旧是安卓是新版emui,国外发布的新系统依旧沿用emui名字—emui12。拿emui改名出来顶包是不是ppt了?微内核呢?五个笑脸呢?

3,将来鸿蒙出来了是不是打脸之前质疑的网友的脸?

三十年前我说我是万元户,朋友都嘲笑我,现在我终于可以打他们脸了。

你这和拿2008年的数据论证1958年超英赶美有啥区别?

亩c万j现在实现了,是不是可以打了当年批判它的人的脸?现在的人是不是要向当年吹牛放卫星的人谢罪?

根据统计,aosp源码共125G,提交量统计, 谷歌(不含子公司)提交量占56%+,苹果4.3%,华为提交量占0.04% ,按行数统计谷歌更是高达94%以上,linux内核700多M,仅占0.37%,可见华为王成录博士的谈话有意贬低了谷歌的贡献,吃相有点难看。

1.fireOS,lineaOS也不显示。

2.“ power by android”不是想加就能加的,必须通过安卓品牌团队批准才可以 。

网友是嘲讽它自主科研吗?是否认华为真的在做一些事情吗?

不是。

网友们反感的是它明明连一都没做到就说自己做出了一百,而某些人能吹出它做了1000,还不让网友质疑。

花粉:“我在电脑上安装了安卓模拟器打王者荣耀证实了一件事情,windows是套皮的安卓,因为他的系统里有安卓系统源代码,与此同时我也证明了另外一件事情鸿蒙系统它也能打王者荣耀,巧的是它系统里面有安卓系统源代码,所以鸿蒙也是套皮的安卓,安卓牛逼!!!这个笑话好笑不?”

这个花粉确实蛮 搞笑 的,window有自己的exe,解压后也不是apk套皮,更不会像鸿蒙app运行起来后后台看到的是一个安卓进程,即windows有自己的运行时。最后 windows卸载了安卓模拟器没影响。手机鸿蒙去掉了安卓还能开机吗?

还有拿WSL来举例说鸿蒙不是套皮安卓的:

‘不能因为windows推出了一个windows subsystem linux,就说windows是linux套皮。’

和上面的一样,windows有WSL但是人家的exe并不是跑在linux的运行时(RT)上,而是运行在自己RT上!有自己的win32生态,WSL更多的是给开发人员提供linux开发测试环境,去掉WSL对自身使用和生态毫无影响。鸿蒙那个是直接完全依赖ART,去掉aosp鸿蒙直接……

没人说含安卓代码就是套皮,但是鸿蒙连自己的运行时都没有,鸿蒙app运行在ART之上,这还不是套皮是什么?

某人说鸿蒙随时可用2年了,生态应用迁移只需1-2天,这么简单,但到现在连“花粉俱乐部”都没有鸿蒙版,只有安卓版,花粉来吹鸿蒙和骂我都只能通过安卓app……

还能说什么?

这个理由听起来好像有道理,但是再仔细一分析妥妥的是自己骗自己:

1,做给谷歌做给外国人看,吓唬它们的,全程却是中文而不是英语,手机发布会都用英语,反而“做给谷歌/美国”看吹鸿蒙的用中文。

2,谷歌看“吹牛”来判断一个系统怎么样?it界的真理是:talk is cheap,show me the code。等鸿蒙是开源,谷歌的工程师一看源码就知道行不行,根本不在乎对方说什么。

可见,鸿蒙的言论主要福报的就是国人。

更讽刺的是营销成自研系统,突破封锁,你以为鸿蒙是对标android、ios?是去抢海外市场么?

要回答这个问题,先要知道为啥华为海外市场暴跌——用不了GMS,相当于国内用不了微信支付宝美团等生态。用不了GMS自然不能贴android标,这本是无奈之举,水军丧事喜办反手炒作成主动不贴标,自主研发的形象又立起来了。

那鸿蒙解决华为用不了GMS的问题了么,解决芯片问题?显然没有。鸿蒙对标的是coloros、miui、flyme,抢的是国内市场。

几个中国厂商鹬蚌相争,关外国人鸟事?

本来套皮就没什么呀,我们本来就没有反对套皮,我们反对的是套皮了却死不承认吹自研,不要偷换概念。

李楠挺鸿蒙的回答就是偷换概念的典型,说套皮的各种合理性,可是我们反对的又不是套皮,所以李楠真是答非所问。当然李楠也可能是高级黑,更加坐实套皮的事实。

1,很佩服营销能力。但是 “开放原子开源基金会”只是一个归国家行政管理的一个“ 社会 团体”,通俗一点就是一个“民间团队”,和“国家队”是两码事,把项目开源给民间团队怎么就成了国家战略?

2,最重要的一点是,菊花开源的那个鸿蒙根本不是菊花手机上用的那个鸿蒙!再一次佩服营销,强!

红芯浏览器有VPN、防火墙等很多谷歌浏览器内核的浏览器没有的功能,所以红心浏览器就不是套皮?

大家都五菱宏光,菊花往里面安了一个浴缸,然后菊粉就觉得其他人没有,所以是菊花自研车?

如果是跑的安卓虚拟机,运行安卓程序时还应该显示“专为旧版安卓打造”,因为这里面根本没有HM什么事,那为什么要修改成“专为HM打造”呢?解释解释。

三十年前我说我是万元户,朋友都嘲笑我,现在我终于可以打他们脸了

你这和拿2008年的数据论证1958年超英赶美有啥区别

6.2发布了鸿蒙,一些粉丝得意洋洋的说来“打”我的脸。

其实6.2发布的那个鸿蒙os不就是改名的新版emui么?玩 游戏 在安卓区还是鸿蒙区?那几个所谓的鸿蒙app不是js,就是apk套皮在后台一看就是个安卓进程。没有鸿蒙,用emui的时候,你们不能联这个那个?

D. [openharmony]liteos-a系统编译之GN

在 文章 中已经分析openharmony的小型系统(liteos-a)编译过程,最主要的就是调用gn/ninja/makefs三个命令最终生成可烧录的镜像文件
从前面文件可以看到hb build调用的gn命令参数如下

这里详细分析一下gn工具在编译过程中的使用

这里简单介绍下GN工具的使用方法,gn语法可以参考 http://weharmonyos.com/openharmony/compile/gn/docs/
,已经熟悉的可以跳过

从上面图中可以看到使用的命令类型为 gn gen <output_dir> [options] ,此命令就是为了将所有需要的BUILD.gn文件生成为*.ninja文件供ninja进行编译; 可以通过 gn help gen 命令查看详细的用法说明, 如下

下面重点说一下gn_cmd中的 [options]

liteos-a编译系统的dotfile内容如下:

liteos-a是嵌入式系统,而编译环境是linux系统,这就需要用到交叉编译方式,这个就可以在环境配置中指定 target_os 、 target_cpu 、 board_cpu 等等信息
这些信息就是 buildconfig 参数指定的 BUILDCONFIG.gn 文件中配置的
除了以上信息,还配置了以下几个重要信息

详细信息可以查看 //build/lite/config/BUILDCONFIG.gn 文件内容

toolchain定义源码编译需要的工具,像编译器、汇编器、连接器等等,一般在.gn所在目录下有一个 toolchain 目录,里面的 BUILD.gn 定义详细的编译工具链信息
这里目录结构如下:

从结构信息中可以看到定义了clang和gcc两种工具链,通过变量 board_toolchain_type 来区分(此变量也是buildconfig中定义的),具体信息参见BUILD.gn文件内容,如下

在.gn文件所在目录下的BUILD.gn就是入口,此文件做了以下几个事情

这里重点说一下target为 ohos 的 group 如下:

这里也比较好理解,里面就是读取一个配置文件,几级循环来处理配置文件中配置的内容。流程如下

到此就将此board下各模块的依赖关系添加好了,然后 GN 会将依赖树中所有的BUILD.gn生成对应的.ninja文件,并且在out的根目录下生成下面几个ninja的入口文件以及配置文件

E. 请问有Huawei LiteOS(华为物联网操作系统) V5.0.0 官方版软件免费百度云资源吗

链接:

提取码:d896

软件名称:HuaweiLiteOS(华为物联网操作系统)V5.0.0官方版

语言:简体中文

大小:89.36MB

类别:系统工具

介绍:HuaweiLiteOS(华为物联网操作系统)是一款由华为官方推出的轻量级物联网操作系统,它的基础内核包括不可裁剪的极小内核和可裁剪的其他模块,这款系统能提高创新的系统设计,可以最大限度的降低系统功耗,目前此系统已经被开源,今天也为大家附上源码供大家学习使用。

F. 2.0.0.165是什么系统

鸿蒙(HarmonyOS,开发代号Ark)是华为自2012年开发的一款可兼容Android应用程序的跨平台分布式操作系统。

系统性能包括利用“分布式”技术将各款设备融合成一个“超级终端”,便于操作和共享各设备资源。

系统架构支持多内核,包括Linux内核、LiteOS和鸿蒙微内核,可按各种智能设备选择所需内核,例如在低功耗设备上使用LiteOS内核。2019年8月华为发布首款搭载鸿蒙操作系统的产品“荣耀智能屏”,之后于2021年6月发布搭载鸿蒙操作系统的智能手机、平板电脑和智能手表。

鸿蒙是打通手机、电脑、平板、电视、汽车和智能穿戴等多种设备的统一操作系统。鸿蒙系统的内核抽象层支持多内核;在手机及平板等设备上,系统选择Linux内核并包含Android开源码,可兼容Android应用、鸿蒙应用和网络应用等程序。在手表及物联网设备上,系统选择轻量级子系统LiteOS。

鸿蒙系统的通信基座使用“分布式软总线”技术联通多款设备,允许一个设备控制其他设备,及共享分布在各款设备的数据资源。

该系统支持多种形式的应用程序,包括在“华为应用市场”下载和安装的应用程序,及免安装的“快应用”和便捷的“原子化服务”。该项服务可由用户在系统内搜寻“服务卡片”后启动或碰一碰设备直接启动。

系统版本

鸿蒙操作系统初始版本于2019年8月9日由华为在东莞市发布,并于次日推介首款搭载鸿蒙系统的产品“荣耀智能屏”。

2020年12月16日,华为发布鸿蒙操作系统2.0手机开发者Beta版本,次年6月2日,华为举行线上发布会正式发布华鸿蒙操作系统2.0,及公布搭载该系统的多款新产品,包括华为智能手机、平板电脑和智能手表,同时向现有用户分阶段推送系统更新。至2021年10月22日,鸿蒙2.0已有超过1.5亿用户。

G. [openharmony]liteos-a系统编译之ninja

在 文章 中已经分析openharmony的小型系统(liteos-a)编译过程,最主要的就是调用gn/ninja/makefs三个命令最终生成可烧录的镜像文件
在 文章 详细介绍了liteos-a系统编译时gn命令的原理,本文中针对liteos-a编译时ninja的使用做一些详细说明
通过前面文章中可以看到调用的ninja命令如下

ninja工具源码及文档路径为 https://github.com/ninja-build/ninja
网上也有很多中文版的资料,如 Ninja - chromium核心构建工具

类似gn工具需要在根目录下有一个.gn以及BUILD.gn文件,ninja工具运行需要根目录下有一个build.ninja文件,也即ninja编译规则的入口,此文件所在路径可以通过选项 -C dir 来指定,例如liteos-a中使用的就是gn的out路径 /home/itsenlin/code/ohos_3.0/out/hispark_taurus/ipcamera_hispark_taurus

此文件是ninja编译工具的入口,类似于make的makefile;相对于makefile,ninja文件规则、依赖更简单,编译速度也会更快
打开此文件可以看到主要包含以下几块内容

这样在执行ninja命令时,就会默认build这个 all ,然后根据前面这个依赖关系进而编译整个系统

但是有一个问题,查看这个文件内容,并没有看到各模块目录下ninja的信息,这个是怎么关联进来的呢?

查看这个文件内容,这里面不仅仅有编译工具链相关的定义,还有对编译所需要的各模块的 .ninja 文件的关联也在这里,以及build.gn中定义的一些规则也转换成rule放在这个文件中了,如下

这样就关联上了编译所需要的所有的ninja文件,然后 ninja就会对每个依赖项进行编译,最终生成 .o 、 .a 、 .so 、 .bin 等文件

当前openharmony编译系统中不仅仅使用了gn+ninja,还使用了make+makefile。
举个例子,linux kernel的编译就是通过make编译的;而liteos kernel两者都有用,编译的文件也不一样,后面再详细分析吧

是怎么实现使用两种编译工具同时编译的呢?看生成的ninja文件(或者gn中的定义)不难看出是通过执行bash脚本来实现的,以liteos-a的make为例:
gn中有下面这个定义

转换成ninja规则如下

从上面定义看,就是ninja在编译到这个build的时候就会执行 //kernel/liteos-a/build.sh 脚本,而此脚本最后就是执行的 make 命令,如下

H. [openharmony]liteos-a编译过程分析

最近搞一个sensor接入openharmony的事情,在分析源码中的加速度计驱动相关源码时,发现不紧有BUILD.gn文件,还有Makefile文件,并且里面都有记录源文件路径。所以很困惑,openharmony是通过gn+ninja编译的还是通过make编译的?
为了搞清楚,所以针对liteos-a系统下的编译过程进行分析,在这里记录一下

通过官方文档看,liteos-a系统编译时用的是官方的hb命令 hb set 和 hb build 命令,所以入口肯定是hb工具
查看openharmony源码中build目录下有一个lite/hb目录(hb命令的源码目录,使用python脚本)

看鸿蒙研究站里面有一篇介绍hb命令的调试方法,通过vscode+python插件调试,参见 《v59.xx 鸿蒙内核源码分析(构建工具篇) | 顺瓜摸藤调试鸿蒙构建过程》

设置好之后就可以开始在vscode上调试

这个是整个编译的重点,通过调试可以看到最终是调用了gn/ninja/fs_make,如下分析

这个就是整体的编译过程了,先调用gn生成ninja文件,再通过ninja进行编译,最后通过fs_make制作镜像

因为内容太多,下面对这三个编译动作先做个整体的介绍,后续再对每一个进行详细分析

继续调试,会先进入 gn_build 接口,看实现就是调用了 gn gen 命令,如下

查看gn_cmd变量,详细命令为(比较多,经过了整理):

这个命令之后,就会将工程中所有用到的 BUILD.gn 文件转换成 <mole_name>.ninja 文件(类似 makefile )供后面 ninja 命令(类似 make )调用并进行编译

再继续调试就会进入 ninja_build 接口,实现以及执行的详细的 ninja 命令如下

这个命令与 make 命令类似,但是注重速度(详细信息可以在网上搜索两者区别);此命令执行即是通过build.ninja/toolchain.ninja/各BUILD.gn转换的.ninja来进行编译,并生成.bin/.so/.a等文件

整个编译OK之后会输出如下图中成功信息

在out目录下就会生成烧录用到的镜像文件,如下图

I. 华为计划在手机上推出鸿蒙操作系统,这是个什么样的系统

2020年9月15日,是特别的一天。

因为美国对华为的芯片新禁令正式生效。

自此,台积电、高通、三星、SK海力士、美光等主要元器件厂商将不再供应芯片给华为。

2019年,华为就推出了鸿蒙系统,积极应对美国禁令。

上周,华为召开了2020开发者大会,华为消费者业务 CEO 余承东宣布了最新的鸿蒙 OS 2.0 ,目标是“共建万物互联的全场景智慧生态”。

针对最新的鸿蒙系统,梁宁老师和鸿蒙的开发者与生态建设者进行了沟通,得到了关于鸿蒙系统的9个关键问题和答案。

我们征询梁宁老师授权,把她和鸿蒙开发者的沟通内容,独家分享给你。

希望能帮助你进一步认识华为的鸿蒙系统。

04.鸿蒙计划的 1+8+N 的万物互联和小米的米家连接区别是什么?

小米生态所有产品都可以通过手机操作。

是因为小米生态产品通过加 SDK 通信组件,与小米手机连接,并进行通信。

鸿蒙系统手机与采用分布式技术的底层系统打通,可以实现音视频,甚至 CPU 级别的系统交互。

过去双摄像头、三摄像头发布后,大家调侃是否会出到100个摄像头,通过分布式能力,确实是可以的。

外部设备可以理解为通过无线的方式装载到手机里,你可以认为手机的范畴变大了,是万物互联的超级设备。


05.鸿蒙系统与安卓系统是否兼容?

鸿蒙系统目前基于安卓系统,有300万个 APP。

鸿蒙选择兼容道路也是十分务实。

已有移植到鸿蒙,只需要在多设备互动的功能中使用的新 API 增量开发,大大降低应用适配难度。


06.鸿蒙为设备厂商提供哪些支持?

6.1开源免费

6.2SDK

6.3百万级源码

6.4设备开发工具链

6.5开发板模组


07.鸿蒙为开发者提供哪些支持?

7.11万 API 调用

7.2自主开发的框架

7.3工具链

7.4模拟器

7.5需要获得技术支持可以到 Harmonyos.com 官网联系。

也可以自行到开源社区进行代码修改和提交。

开放性有开放原子开源基金会保障。(这个基金会,有时间再介绍)



08.安卓强大在哪里?

15年积累。

占据近全球87%智能手机用户心智。

400名开发者(99% Google 员工)。

1.2亿行代码。



09.为什么安卓也需要中国?

9.1全球1/2的安卓手机是中国品牌。

9.2全球1/4的安卓手机卖给中国用户。

9.3Google 网站自己披露的非手机类 ODM 合作伙伴,一共50家左右,都是中国企业,具体来说,7成在深圳,近3成在上海地区。

简单来说,安卓最重要的伙伴,除了三星,全是中国企业!!!


综上,鸿蒙的雄心,三分天下有其一

热点内容
迷你世界电脑版怎么改密码 发布:2025-07-18 09:26:41 浏览:48
php创建目录 发布:2025-07-18 09:26:17 浏览:657
为什么手机游戏分ios和安卓端 发布:2025-07-18 09:22:17 浏览:139
android数据显示 发布:2025-07-18 09:17:27 浏览:527
脚本精灵天天酷跑怎么用 发布:2025-07-18 09:00:04 浏览:153
android技术面试 发布:2025-07-18 08:59:55 浏览:966
c语言m是什么 发布:2025-07-18 08:59:10 浏览:277
c语言布尔变量 发布:2025-07-18 08:54:52 浏览:648
linux的jdk下载 发布:2025-07-18 08:54:09 浏览:189
生女的算法 发布:2025-07-18 08:17:54 浏览:645