OpenHarmony是华为“鸿蒙操作系统”的底座,包含: 华为捐献的“鸿蒙操作系统”的基础能力 和 其他参与者的贡献。
华为的HarmonyOS(鸿蒙操作系统)与OpenHarmony的关系,相当于谷歌的Android(安卓系统)与AOSP(Android Open Source Project)的关系。2024年10月22日,华为原生鸿蒙HarmonyOS NEXT正式发布,目前鸿蒙内核暂未开源。
主要从事开发端云协同功能,也就是端设备(如手机、智能设备等)与云端(云服务、云计算资源)之间的协同工作和通信,工作内容有 内核hmdfs(鸿蒙分布式文件系统) 、 fuse(用户态文件系统) 和 媒体库 等开发。
OpenHarmony的代码托管在gitee上,gitee的功能挺完善,但在尊重开源方面以及一些细节方面有待加强,曾经我公开给gitee提过这一问题,具体请查看《gitee的搜索功能真的很有问题》。
基于社区LTS 5.10版本,自研hmdfs(鸿蒙分布式文件系统)等特性。
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
分布式文件系统用户态服务,功能主要包括挂载/卸载hmdfs,在设备间已组网的前提下,通过分布式软总线建立通信链路,供内核hmdfs使用。
dfs: always read from dentryfile instead from cache when lookup
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
存储管理部件提供外置存储卡挂载管理、文件加解密、磁盘和卷的查询与管理、用户目录管理和空间统计等功能,为系统和应用提供基础的存储查询、管理能力。
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
数据库管理,文件管理,为提供用户态程序提供napi调用接口。
Add ‘position’ column to medialibrary database
declare napi property ‘enum PositionType’
让设备更安全。
Add storage_daemon umount fuse selinux policy
appdata-sandbox.json: add medialibrary sandbox-path ‘/mnt/data/