首页 - 开源大赛 - 最新动态

开源创新大赛代码评注组优秀获奖作品 | 《OpenHarmony框架及其架构分析与评注》

2022-01-18 发布

第四届中国软件开源创新大赛圆满结束,近期将陆续推出优秀获奖作品系列文章,旨在更好地展示大赛成果,进一步激发开源创新活力、培养开源实践人才、助力开源生态建设。


开源代码评注赛特等奖作品:

OpenHarmony框架及其架构分析与评注

院校:湘潭大学

指导老师:龙赛琴

队伍成员:肖锦荣,陆细慧,章航滔,潘晓钰,田峻宇


我们团队从5月17日发表第一篇博客起至11月底共计发表160篇,从图中可以清楚地看到团队针对每一个模块及其下面的子功能模块都进行了明确的分工和安排,在保证质量的前提下,相互配合完成了一篇篇充满个人理解与感悟的博客。


在作品的整个完成过程中,为了更好地对OpenHarmony的模块进行解析和评注,我们首先对其的基本技术架构进行分析。


OpenHarmony整体遵从分层设计,从下向上依次为:内核层、系统服务层、框架层和应用层。其中内核层采用Linux内核或者LiteOS的多内核设计,OpenHarmony针对不同应用场景使用不同内核,是整个操作系统最核心的部分。

因此,我们团队以LiteOS-A内核为主体展开,侧重分布式通信和HUKS安全两大特色模块进行评注,以自下而上和紧密相连的方式完成该作品。

选择分布式通信模块由于使用不同的通信模式(例如USB,WLAN和Bluetooth)的方式差异很大且很复杂。可以使用分布式通信子系统的API来实现设备之间的快速安全通信,而无需关心通信细节的管理,从而实现跨平台开发,这是OpenHarmony的核心功能之一。


选择LiteOS-A模块是因为大多数的RTOS实时操作系统都是运行于MCU,不支持MMU,内核空间和APP空间不能隔离开,APP出错后整个系统就会崩溃;也不支持POSIX接口,这使得大量的开源软件无法直接在MCU上运行。而LiteOS-A内核是对标Linux内核,支持MMU,支持内核和各个APP空间隔离,同时还支持POSIX接口。


选择分布式通信模块由于使用不同的通信模式(例如USB,WLAN和Bluetooth)的方式差异很大且很复杂。可以使用分布式通信子系统的API来实现设备之间的快速安全通信,而无需关心通信细节的管理,从而实现跨平台开发,这是OpenHarmony的核心功能之一。


最后选择HUKS模块在于HUKS是一种通用密钥管理服务,它为应用程序提供KeyStore和Crypto API,以执行密钥管理,加密和解密操作,也是OpenHarmony的核心特色功能之一。


4月份开始筹备参赛事宜,5月中旬发布了第一篇博客,我们在深知博客的质量 outweigh 数量的同时,也绝不在数量上降低要求,认真对待每一篇博客,紧紧围绕作品的可读性、有用性、深刻性展开工作。团队成员分工合作,紧密交流,分块以顾主体,整合以顾全局,使文章得以完整、完善。继之坚信,坚定,坚持至11月末最终完成该作品。


通过本次比赛,我们对整个HarmnoyOS架构从无知逐步过渡到认识并且进一步理解,其中,我们更是深刻剖析了其中的微内核技术和分布式软总线部分。同时,我们在比赛期间,与队友、教师以及网友进行了交流学习,收获颇丰,不仅提升了自我能力,还帮助了他人,这对于以后的生活和学习方向来说都是一笔不可多得的财富。最后,很荣幸能够参加本次比赛,感谢本次比赛的主办方提供的宝贵机会以及所有相关人员的付出!