openharmony开源

电子说

1.2w人已加入

描述

鸿蒙开源吗?这个问题其实早已有了定论,早在2020年,部分鸿蒙系统的代码就已经在开放原子开源基金会中公开,任何开发者都可以自由下载、使用和修改开源代码,实质上已经是开源系统。

但是,开源的是哪一部分系统?什么时候实现完全开源?却因为华为不同部门的不同说法而产生了各种各样的误解,有的说仅仅捐赠部分代码,有的则说是完全开放。

华为已经于2020年、2021年分两次将鸿蒙系统的所有基础能力全部捐献给开放原子开源基金会,形成OpenHarmony开源项目,该项目已有245位贡献者,最新的版本为OpenHarmony2.0。

OpenHarmony整体遵从分层设计,从下向上依次为:内核层、系统服务层、框架层和应用层。系统功能按照“系统 》 子系统 》 组件”逐级展开,在多设备部署场景下,支持根据实际需求裁剪某些非必要的组件。

首先要澄清一下这次开源的内容,这个代码库和很多用户最新手机升级的鸿蒙系统不是一个东西,如果按照正常的开发流程,这个开源的库应该是手机用户升级的系统HarmonyOS2.0的一部分,需要添加AOSP部分和其它一些功能模块之后才可能构建出来手机上推送的系统。开源部分如果构建仅仅可以构建出用于IOT设备上的系统,或是手机上的一个裸系统,不能运行安卓apk和华为hap应用的裸系统,应该可以运行基于html+js的小程序。

主要源码目录功能

1. Third_party目录功能最大,包含的是第三方库和功能模块。

2. Kernel包含的是内核模块,包含linux内核和鸿蒙的嵌入式内核

其中liteos_a是适用包含mmu模块芯片的内核,liteos_m是适用无mmu模块的芯片的内核。其实内核源码目录华为放了很多编译好的工具,内核代码本身并没有那么大。一个有意思的现象是risc-v目录相关的代码量很大,是不是意味着华为已经要在risc-v上加大投入了。

3. Applications 目录是一些官方提供的示例app,其中基于js的小程序是有源码的,基于java的hap是没有源码的。而且同时也应该支持c++与js混编,不过我没找到相关的SDK介绍。

4. Base是系统服务层一系列简单封装目地是为上层提供简单的接口,目前主要包括账号、传感器、安全、电源管理等模块。不过感觉这块目前非常简陋,估计只有嵌入式IoT设备会采用这些资源相对少的管理方式

5. Developtools主要是包含了开发辅助工具,并没有什么特别的东西。其中让我感兴趣的是其中的profiler模块,这个模块的完善程度让人震惊,估计是华为很早有有所积累从其它项目经验中搬运过来的。

6. Drivers 是驱动接口中间层,如果要移植新新设备上,可以在底层通过系统相关的汇编和C语言对接这些驱动中间层,这样可以降低移植成本并提供良好的兼容性。对于要假如鸿蒙生态的IoT设备厂商,应该主要去研究这块。

7. Foundation 这块应该是这次开源最重要的部分,这块是驱动鸿蒙独家应用的主体部分,包括接口设计和执行引擎的部分。

这部分的设计应该借鉴了苹果的Core Foundation的设计,同时提供了与苹果不同的一些组件,比如软总线部分。同时华为把js框架底层封装的执行引擎也放到了Foundation之中,这点其实是有些不合理的。

不管从哪个角度来看OpenHarmony的开源都有着重大意义,不管是对国家而言还是对于整个中国互联网生态而言皆是如此,至少在未来我们不需要担心在失去了Android和iOS后,整个互联网生态难以为继。

来源:雷科技,gitee,知乎综合整理

责任编辑:lq

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

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分