0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

【人物访谈】熊磊:成功移植 OpenHarmony 到多套开发板,是最开心的事

电子发烧友论坛 2022-05-24 09:31 次阅读

编者按:OpenHarmony 生态发展过程中,涌现了大批优秀的代码贡献者,本专题旨在表彰贡献、分享经验,文中内容来自嘉宾访谈,不代表 OpenHarmony 工作委员会观点。

熊磊

华为技术有限公司

OS高级开发工程师

OpenAtom OpenHarmony(以下简称“OpenHarmony”)是由开放原子开源基金会孵化及运营的开源项目,每一位开发者都可以基于 OpenHarmony 做开发。自成立以来,OpenHarmony 吸引了众多开发者的加入,现有 6 大开发者社区专区建设(CSDN、51CTO、开源中国、思否、电子发烧友、InfoQ,排名不分先后),104 个高校阵地(有组织者的高校)。发布的技术直播、视频课程、技术解读文章、开发者稿件等累计覆盖观众人数 2500 万人。


构建开源生态,需要让开发者先用起来,而这离不开各种类型、可提供各种功能需求的开发板。提供基础集成开发环境、软件源代码、硬件原理图,方便初学者快速地了解和学习 OpenHarmony 系统的硬件和软件知识,开发板是 OpenHarmony 开源生态建设中的重要一环。将 OpenHarmony 版本移植到 Hi3516DV300、rk3568 等多套开发板套件中的,正是熊磊及其团队。

本期 OpenHarmony 开发者故事,我们采访了OpenHarmony 启动子系统的负责人,OpenHarmony PMC 委员会推举的“代码贡献月度之星”——熊磊。


熊磊和团队一起负责启动子系统的特性开发、产品定制、生态拓展和代码维护等工作。这个模块控制整个系统的启动管理,体系非常复杂,如此艰巨的任务,他们要如何完成?开发过程中,遇到典型的内存溢出难题,他们又是如何精准排查,并形成问题分析文档,后续防患于未然的?满满干货,不容错过!我们将专访内容整理如下,希望对你有所启发。

Q:OpenHarmony A=熊磊

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项目贡献的过程中,一定有一些刻骨铭心/印象深刻的经历,比如文档被转载、被committer认可、被合并代码、被授予荣誉、被开发者夸赞之类。可以给我们分享一下吗?

每一次的 master 代码提交,都是非凡的体验。看到我们的努力成果,终于要合入主线了,内心既激动,又忐忑。

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

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

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

66533d44-dad8-11ec-b80f-dac502259ad0.jpg

图 5-1

我们在前期 init 提供的能力基础上,通过持续改进方案,不断增强能力、优化效率。例如增加进程频繁退出的抑制机制,增加支持应用、系统组件及芯片组件进程的沙盒运行环境,增加支持服务分组的配置、并行启动依赖的同步机制、可通过沙盒孵化的应用等,如下图 5-2 所示。

6691c1c2-dad8-11ec-b80f-dac502259ad0.jpg

图 5-2

我们各种各样的难题都遇到过,比较典型的是一个内存问题。当时,我跟团队里面的技术专家,一整天在远程电话会议讨论这个问题。大家群策群力,提出自己的想法并逐个排查验证,最后发现问题是另外一个流程里面的 malloc 内存空间访问越界所致。两个似乎完全不相关的流程,发生了内存踩踏的情况。问题得到解决后,我们进行了内部的复盘,并输出一份问题分析文档。

内存问题一旦出现,会很难排查,关键在于预防。所以一个良好的编码规范非常重要。只要有良好的编码习惯,就能有效规避内存的越界、溢出。后期,我们不定时在团队内部进行分享、总结,就是要确保同样的错误,绝不再犯。

Q6:加入OpenHarmony生态以来,您最大的惊喜是什么?或者有哪些具体的收获?

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

66e10688-dad8-11ec-b80f-dac502259ad0.jpg

此外,在这个过程中结识了很多朋友,参与不同的 SIG 组,学习到了很多新的知识,这些也都是收获。

Q7:您期待未来OpenHarmony哪些方面能够得到改善、提供更多支持?


我觉得性能方面有待提高,上手体验不是特别良好。OpenHarmony 的调试手段也比较缺乏,没有 trace。

Q8:OpenHarmony目前仍处在开发探索阶段,很多共建单位和生态伙伴还不清楚开源项目的玩法,或不如该如何着手进行开发。可以请您给大家分享一条,您认为最重要或最值得分享的心得吗?


重要的是多关注社区,多参与 SIG,多交流。现在网上的 OpenHarmony 资料,确实不是特别多,但代码都是开源的。社区有各种微信群,其中的绝大多数开发者也都是中国人,大家在沟通方面不会有任何困难。我相信共建单位和生态伙伴之间多多交流,一定会有非常大的收益。

Q9:开放性问题,可以畅所欲言,请问您还有什么掏心窝的话想告诉大家?


我这一路走来,从刚开始参与 OpenHarmony 时的不知所措,到如今在 OpenHarmony 社区贡献了大量的代码,是有苦也有甜。

OpenHarmony 从一开始的几十个仓,成长为现在的庞然大物。看到有越来越多的人在关注和了解 OpenHarmony,也有越来越多的人参与到系统的开发中来,我的内心有种自豪,因为我也是其中的一员。衷心祝愿 OpenHarmony 越来越好!

670c8196-dad8-11ec-b80f-dac502259ad0.png


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • OpenHarmony
    +关注

    关注

    23

    文章

    3284

    浏览量

    15159
收藏 人收藏

    评论

    相关推荐

    OpenHarmony鸿蒙南向开发案例:【智能猫眼(基于3516开发板)】

    基于Hi3516开发板,使用开源OpenHarmony开发的RTSP协议流媒体应用。达到将Hi3516开发板中摄像头获取的数据通过RTSP协议传输到手机并显示 。
    的头像 发表于 04-19 22:01 36次阅读
    <b class='flag-5'>OpenHarmony</b>鸿蒙南向<b class='flag-5'>开发</b>案例:【智能猫眼(基于3516<b class='flag-5'>开发板</b>)】

    Shield Buddy TC375开发板是否支持将经典AUTOSAR堆栈(COMM,DIAG)移植开发板上?

    Shield Buddy TC375开发板是否支持将经典 AUTOSAR 堆栈(COMM,DIAG)移植开发板上? 它适用于 MCAL 驱动程序吗? 另外,请建议使用支持经典
    发表于 01-30 08:30

    【ELF 1开发板试用】+ 5.0 Wireless_Tools WIFI工具移植

    出可执行文件和库: 3.拷贝文件开发板: 使用我们文章之前讲过的SSH连接开发板: linux内执行以下命令: 拷贝可执行文件根目录: scpifrename iwconfig
    发表于 12-06 16:35

    Unity中国、Cocos为OpenHarmony游戏生态插上腾飞的翅膀

    天的时间,《倩女幽魂》就跑通了主流程并成功运行起来。并于HDC2023隆重宣布了倩女幽魂支持OpenHarmony平台,并比竞品平台更加流畅与丝滑。 团结引擎和《倩女幽魂》的成功移植
    发表于 10-23 16:15

    OpenHarmony开发板汇总

    Tiger(A311D)标准系统:DAYU200开发套件(RK3568)标准系统:软通扬帆富设备开发板(RK3399) 系统类型 OpenHarmony支持如下几种系统类型: 轻量系统(mini
    发表于 10-19 11:27

    K210开发板部署开发板上后,会提示“Out of Memory”无法完成检测任务如何解决?

    您好,我想问一下嘉楠官方有没有出一基于K210开发板进行目标检测的训练流程呢?我想训练自己的数据集并部署亚博智能K210开发板上,在网络上找到的yolo-for-k210项目所训练
    发表于 09-14 08:35

    【触觉智能Purple Pi OH开发板体验】OpenHarmony音频播放#开发板试用

    OpenHarmony
    白晓明
    发布于 :2023年09月11日 19:07:43

    【触觉智能 Purple Pi OH 开发板体验】一、OpenHarmony(鸿蒙系统)开发环境配置以及示例代码

    不同HarmonyOS 支持 previewer 预览、模拟器运行、真机运行三种方式;OpenHarmony 支持 previewer 预览、真机(目前主要使用 3516 系列开发板)运行。首先,目前
    发表于 08-31 11:03

    基于SS928开发板算法移植分享

    最近在研究在易百纳SS928的开发板上做算法移植,觉得可以向大家分享一下在易百纳SS928开发板上做算法移植的一些方法及心得,希望能对大家后面学习有所帮助。 一、关于易百纳SS928
    的头像 发表于 08-16 09:35 674次阅读
    基于SS928<b class='flag-5'>开发板</b>算法<b class='flag-5'>移植</b>分享

    如何验证蜂鸟E203是否移植成功

    小白一个,刚刚接触蜂鸟E203,自己按照网上的教程移植自己的开发板了,开发板用的黑金的AX7035,型号为XC7A35T-2FGG484,但不知道成没
    发表于 08-16 06:38

    蜂鸟E203移植ZYNQ7000开发板跑nice例程联合仿真出错怎么解决?

    蜂鸟E203移植ZYNQ的zedboard开发板,helloworld例程成功。 但是用nice接口例程 生成的.verilog文件联合仿真时,vivado报以下错误。 这些错
    发表于 08-12 06:45

    E203移植非芯来配套的开发板之后,用hbird-sdk开发需要更改bsp中的板卡信息吗?

    E203移植非芯来配套的开发板之后,用hbird-sdk开发需要更改bsp中的板卡信息吗
    发表于 08-11 13:11

    【CW32饭盒派开发板试用体验】5. 极简方式移植FreeRTOS成功

    【CW32饭盒派开发板试用体验】1. 开箱啦 【CW32饭盒派开发板试用体验】2. 使用扩展板串口UART3以及scanf重定向串口 【CW32饭盒派开发板试用体验】3. 使用BTI
    发表于 06-02 23:08

    使用OpenHarmonyNDK移植三方库Speexdsp

    大家好,我是一名即将本科毕业的OpenHarmony开发者,去年暑假利用了两个月时间移植了一个语音处理的三方库Speexdsp到OpenHarmony标准系统。主要为其编写了`buil
    的头像 发表于 05-16 10:18 1237次阅读
    使用<b class='flag-5'>OpenHarmony</b>NDK<b class='flag-5'>移植</b>三方库Speexdsp

    亿晟科技被评为OpenHarmony生态开发板贡献单位

    近日,深圳市亿晟科技有限公司被评为“OpenHarmony生态开发板贡献单位”,并被OpenHarmony项目群工作委员会授予“OpenHarmony生态
    的头像 发表于 05-09 09:53 550次阅读
    亿晟科技被评为<b class='flag-5'>OpenHarmony</b>生态<b class='flag-5'>开发板</b>贡献单位