陈孝松OpenHarmony贡献

OpenHarmony是华为“鸿蒙操作系统”的底座,包含: 华为捐献的“鸿蒙操作系统”的基础能力 和 其他参与者的贡献。

华为的HarmonyOS(鸿蒙操作系统)与OpenHarmony的关系,相当于谷歌的Android(安卓系统)与AOSP(Android Open Source Project)的关系。2024年10月22日,华为原生鸿蒙HarmonyOS NEXT正式发布,目前鸿蒙内核暂未开源。

主要从事开发端云协同功能,也就是端设备(如手机、智能设备等)与云端(云服务、云计算资源)之间的协同工作和通信,工作内容有 内核hmdfs(鸿蒙分布式文件系统)fuse(用户态文件系统)媒体库 等开发。

OpenHarmony的代码托管在gitee上,gitee的功能挺完善,但在尊重开源方面以及一些细节方面有待加强,曾经我公开给gitee提过这一问题,具体请查看《gitee的搜索功能真的很有问题》

1 内核

基于社区LTS 5.10版本,自研hmdfs(鸿蒙分布式文件系统)等特性。

动态加载端云场景的dentryfile,读云端文件

hmdfs: fix compile warning in hmdfs_file_open_cloud()

hmdfs: use ‘vfs_iter_read’ instead of ‘vfs_read’ in ’hmdfs_file_read_iter_cloud()(可能需要注册登录才能查看)

hmdfs: implement ‘mmap’ interface of ‘hmdfs_dev_file_fops_cloud’

hmdfs: prohibit renaming cross-view for cloud merge

hmdfs: fix possible use-after-free in hmdfs lookup()

hmdfs: fix attribute error when mkdir in cloud_merge_view/merge_view

hmdfs: fix braces coding style

hmdfs: sync lookup cloud merge view

hmdfs: implement ‘unlink’ interface for ‘hmdfs_dev_dir_inode_ops_cloud’

hmdfs: make hmdfs_unlink_cloud() always succeed

2 分布式文件系统

分布式文件系统用户态服务,功能主要包括挂载/卸载hmdfs,在设备间已组网的前提下,通过分布式软总线建立通信链路,供内核hmdfs使用。

dfs: fuse read cloud file

dfs: always read from dentryfile instead from cache when lookup

dfs: clean up build warnings

dfs: fix ‘user_data_rw’ user open fuse mountpoint fail

dfs: save thumbnail/lcd pictures locally after read done

dfs: fix failure to remove from dentryfile when thumbnail/lcd reading is done

dfs: fix use-after-free in CloudRelease()

cloudfiledaemon: delete file of cloud merge view to update kernel dentry cache

cloudfiledaemon/cloudsyncservice: rename from temp path to local path after downloading is complete

cloudsyncservice: implement stop download

cloudsyncservice: fix stop download

3 存储管理部件

存储管理部件提供外置存储卡挂载管理、文件加解密、磁盘和卷的查询与管理、用户目录管理和空间统计等功能,为系统和应用提供基础的存储查询、管理能力。

add hmdfs mount option ‘cloud_dir’

storagedaemon: create directory ‘/data/service/el2/{userid}/hmdfs/fuse’

storagedaemon: add fuse umount

storagedaemon: pass user id to clouddaemon when mount fuse

storagedaemon: mount fuse when cloudfiledaemon is ready

storage_daemon: change fuse mountpoint from ‘/mnt/hmdfs/{userid}/cloud’ to ‘/mnt/data/{userid}/cloud’

4 媒体库

数据库管理,文件管理,为提供用户态程序提供napi调用接口。

Add ‘position’ column to medialibrary database

declare napi property ‘enum PositionType’

5 selinux

让设备更安全。

Add storage_daemon umount fuse selinux policy

6 应用孵化模块

appdata-sandbox.json: add medialibrary sandbox-path ‘/mnt/data/