乐趣区

关于openharmony:熊磊成功移植OpenHarmony到多套开发板是最开心的事

编者按:在 OpenHarmony 生态倒退过程中,涌现了少量优良的代码贡献者,本专题旨在表彰奉献、分享教训,文中内容来自嘉宾访谈,不代表 OpenHarmony 工作委员会观点。

OpenAtom OpenHarmony(以下简称“OpenHarmony”)是由凋谢原子开源基金会孵化及经营的开源我的项目,每一位开发者都能够基于 OpenHarmony 做开发。自成立以来,OpenHarmony 吸引了泛滥开发者的退出,现有 6 大开发者社区专区建设(CSDN、51CTO、开源中国、思否、电子发烧友、InfoQ,排名不分先后),104 个高校阵地(有组织者的高校)。公布的技术直播、视频课程、技术解读文章、开发者稿件等累计笼罩观众人数 2500 万人。
构建开源生态,须要让开发者先用起来,而这离不开各种类型、可提供各种性能需要的开发板。提供根底集成开发环境、软件源代码、硬件原理图,不便初学者疾速地理解和学习 OpenHarmony 零碎的硬件和软件常识,开发板是 OpenHarmony 开源生态建设中的重要一环。将 OpenHarmony 版本移植到 Hi3516DV300、rk3568 等多套开发板套件中的,正是熊磊及其团队。
本期 OpenHarmony 开发者故事,咱们采访了 OpenHarmony 启动子系统的负责人,OpenHarmony PMC 委员会推举的“代码奉献月度之星”——熊磊。
熊磊和团队一起负责启动子系统的个性开发、产品定制、生态拓展和代码保护等工作。这个模块管制整个零碎的启动治理,体系非常复杂,如此艰巨的工作,他们要如何实现?开发过程中,遇到典型的内存溢出难题,他们又是如何精准排查,并造成问题剖析文档,后续防患于未然的?满满干货,不容错过!咱们将专访内容整顿如下,心愿对你有所启发。

Q1 请熊磊简要介绍下本人和所带团队

大家好,我是熊磊,目前是 OpenHarmony 启动子系统的负责人。我和我的团队负责启动子系统的个性开发、产品定制、生态拓展和代码保护等工作。我对物联网、嵌入式、操作系统有着浓重的趣味,从事这个行业有 12 年的工夫了。

Q2 作为开发畛域出名的技术大牛,您最后为什么会抉择退出 OpenHarmony 生态、参加开源共建呢?您认为,OpenHarmony 我的项目最吸引人的点在哪里?

在挪动操作系统畛域,不论是 iOS,还是 Android,咱们始终都是追随者。先是丰盛 iOS 的利用市场,起初集成 Android 零碎,与全世界一起共建 Android 生态,始终都在追随他人的脚步前行。

我几年前据说 OpenHarmony 的时候,就心愿可能参加进去开发咱们本人的挪动操作系统。现在可能有幸参加到 OpenHarmony 的生态共建中,也算是实现了当初的欲望。

OpenHarmony 吸引我的中央很多,从定位来看,它是一个翻新的挪动操作系统,令人振奋;从技术架构来看,它的模块化设计,也让人眼前一亮。我置信 OpenHarmony 新服务、新硬件、新交互的设计理念,将会给大家带来全新的体验。

Q3 这次您被 OpenHarmony PMC 委员会推举为“代码奉献月度之星”,意味着您对 OpenHarmony 我的项目的奉献曾经属于业界顶尖程度,非常了不起!退出 OpenHarmony 这么短的工夫却达成了这样好的成果,请问您的“秘诀”是什么?您是否不便从业务角度具体介绍一下,怎么能力让开发者更加称心,把开源共建做得更好?

没有什么”秘诀“啦,我始终置信趣味是最好的老师,也是最大的能源。OpenHarmony 还处在起步阶段,尚有大量的工作须要实现。我十分荣幸可能在初始阶段就加入到这样一个事业中。我参加的模块,是零碎的启动局部,负责整个零碎的启动治理。它波及到各子系统,而每个子系统又都有本人的诉求,整个体系非常复杂。肩负如此重要的工作,我压力不小,也能源十足。

OpenHarmony 作为一个年老的 OS,须要吸引更多的开发者进行生态共建,能力更好地倒退。项目组须要多聆听开发者的声音,理解大家的痛点和诉求,解决开发者参加共建过程中的事实问题。另外,做好 OpenHarmony 的宣传也很重要。开发者理解这个零碎,对它产生趣味了,就会违心参加进来。

Q4 您和您的团队小伙伴,在参加 OpenHarmony 我的项目奉献(例如撰写 SIG DOCS)的过程中,肯定有一些刻骨铭心 / 印象粗浅的经验,比方文档被转载、被 committer 认可、被合并代码、被授予荣誉、被开发者夸赞之类。能够给咱们分享一下吗?

每一次的 master 代码提交,都是不凡的体验。看到咱们的致力成绩,终于要合入主线了,心田既冲动,又忐忑。

有时候,一个重大个性的合入,波及的代码量会十分大。我和团队的小伙伴们,就须要每天晚上忙活很久,确保编译通过、设施能失常启动,并关注动态查看的告警。当咱们看到已合入的标签时,才会如释重负,感觉所有的辛苦都很值得。

Q5 在整个开发过程中,您和您的团队遇到过哪些技术上或其余方面的难题呢?这些难题又是如何被逐个解决的?在这些难题被解决的过程中,您总结了哪些贵重的教训 or 教训呢?

首先简略介绍下 OHOS 启动,init 组件负责解决从内核加载第一个用户态过程开始,到第一个应用程序启动之间的零碎服务过程的启动过程。OHOS 启动简略的逻辑框架如下图 5-1 所示,其中 init 阶段次要负责启动疏导治理、服务治理,以及零碎、服务的配置项的治理等。

$$
图 5-1
$$

咱们在后期 init 提供的能力根底上,通过继续改良计划,一直加强能力、优化效率。例如减少过程频繁退出的克制机制,减少反对利用、零碎组件及芯片组件过程的沙盒运行环境,减少反对服务分组的配置、并行启动依赖的同步机制、可通过沙盒孵化的利用等,如下图 5-2 所示。

$$
图 5-2
$$

咱们各种各样的难题都遇到过,比拟典型的是一个内存问题。过后,我跟团队外面的技术专家,一整天在近程电话会议探讨这个问题。大家集思广益,提出本人的想法并一一排查验证,最初发现问题是另外一个流程外面的 malloc 内存空间拜访越界所致。两个仿佛齐全不相干的流程,产生了内存踩踏的状况。问题失去解决后,咱们进行了外部的复盘,并输入一份问题剖析文档。

内存问题一旦呈现,会很难排查,关键在于预防。所以一个良好的编码标准十分重要。只有有良好的编码习惯,就能无效躲避内存的越界、溢出。前期,咱们不定时在团队外部进行分享、总结,就是要确保同样的谬误,绝不再犯。

Q6 退出 OpenHarmony 生态以来,您最大的惊喜是什么?或者有哪些具体的播种?

最大的喜悦是胜利将 OpenHarmony 版本移植到多套开发板套件(Hi3516DV300、rk3568 等)中,为开发者提供了不便学习的开发环境。当看到开发者能将实践付诸实践,所有人共同开发、独特奉献,OpenHarmony 零碎不断完善,心中的成就感难以言表。

此外,在这个过程中结识了很多敌人,参加不同的 SIG 组,学习到了很多新的常识,这些也都是播种。

Q7 您期待将来 OpenHarmony 哪些方面可能失去改善、提供更多反对?

我感觉性能方面有待进步,上手体验不是特地良好。OpenHarmony 的调试伎俩也比拟不足,没有 trace。

Q8 OpenHarmony 目前仍处在开发摸索阶段,很多共建单位和生态搭档还不分明开源我的项目的玩法,或不如该如何着手进行开发。能够请您给大家分享一条,您认为最重要或最值得分享的心得吗?

重要的是多关注社区,多参加 SIG,多交换。当初网上的 OpenHarmony 材料,的确不是特地多,但代码都是开源的。社区有各种微信群,其中的绝大多数开发者也都是中国人,大家在沟通方面不会有任何艰难。我置信共建单位和生态搭档之间多多交换,肯定会有十分大的收益。

Q9 开放性问题,能够畅所欲言,请问您还有什么掏心窝的话想通知大家?

我这一路走来,从刚开始参加 OpenHarmony 时的手足无措,到现在在 OpenHarmony 社区奉献了大量的代码,是有苦也有甜。

OpenHarmony 从一开始的几十个仓,成长为当初的硕大无朋。看到有越来越多的人在关注和理解 OpenHarmony,也有越来越多的人参加到零碎的开发中来,我的心田有种骄傲,因为我也是其中的一员。衷心祝愿 OpenHarmony 越来越好!

退出移动版