先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7
深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年最新HarmonyOS鸿蒙全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上鸿蒙开发知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
如果你需要这些资料,可以添加V获取:vip204888 (备注鸿蒙)
正文
- 方舟编译器是一个C/C++/Java/Javascript到Native的编译器套件, 但在HarmonyOS中活跃开发的只有Javascript的编译器. 目前HarmonyOS只接受TypeScript的子集, 不允许使用Javascript的动态特征, 且TypeScript的类型参与代码生成, 并非像tsc一样抹去类型.
方舟运行时是运行ArkUI/eTS编译产物的运行时.
- 编译器前端 OpenHarmony/arkcompiler_ets_frontend
- 编译器后端 OpenHarmony/arkcompiler_runtime_core
- 运行时 OpenHarmony/arkcompiler_ets_runtime
毕昇编译器是一个LLVM的下游发行版, 为鲲鹏CPU提供了一些优化的C/C++/Fortran编译器实现. 类似Intel的ICC, AMD的AOCC, Nvidia的NVCC, 均为LLVM的下游发行版.
-
ArkTS是ArkUI的底层语言, 扩展了TypeScript的语法.
仓颉没有公开, 不清楚目的和用途. -
EROFS是华为开发的只读文件系统, 是主线Linux支持的文件系统.
EROFS的开源协议是GPL 2.0 Only, 意味着该文件系统的当前实现如果在HarmonyOS中使用, 则必须开源.
与EROFS类似的文件系统是SquashFS
HMDFS是一个网络文件系统, 底层网络实现为软总线. 类似的文件系统为9pfs, 底层使用Plan9协议.
用户态服务器: OpenHarmony/filemanagement_dfs_service
内核态文件系统实现: OpenHarmony/kernel_linux_5.10
- 鸿蒙内核为传说中的微内核, 虽然有可信来源该内核开发了很久, 但至今没有开源.
但我认为鸿蒙内核仍不会在鸿蒙Next上作为REE内核使用, 而是像现在一样作为TEE OS.
TEEOS 是一个在 TrustZone 中运行的微型操作系统,适用于可信/安全应用程序。 TEEOS的内核是HongMeng/ChCore微内核。 TEEOS 的 libc 是 musl 的一部分。
TEEOS 中的应用程序非常小,没有 RwLock、没有网络、没有 stdin、也没有文件系统。
TEEOS未来会开源
目前该内核尚未开源, 但存在文档. 在OpenHarmony里这个内核又被称为OpenTrustee.
华为历史上已经开发了名为iTrustee的TEE微内核, 下图为华为在2018年拿到了某认证证书, 认证产品为iTrustee的2.0版本. 因此可以认为OpenTrustee为iTrustee的开源版本.
另一方面, OpenHarmony仍在开发相关的Linux模块(例如同样出现在PPT里的hmdfs和erofs), 如果REE系统内核不是Linux, 则完全没有必要开发对应功能的Linux版本. 如下是OpenHarmony的Linux内核模块
OpenHarmony/kernel_linux_common_modules
这些模块包括了若干OpenHarmony的功能:
- code_sign: 强制要求ELF文件包括签名, iOS同款功能. 不过代码中显示, 打开开发者模式即可绕过该检查. 该功能使用了Linux的fsverity和SELinux功能, 实现了验证ELF文件附带的X.509证书的功能, 阻止没有签名的ELF文件运行.
- container_escape_detection: 容器逃逸检查. 阻止容器内的进程逃出namespace. appspawn可见OpenHarmony使用了基于Linux namespace的沙箱机制.
- memory_security: 阻止jit, iOS同款功能. 代码中显示, Web渲染进程使用了JIT, 且内核代码还把/proc/[pid]/maps里的JIT内存区域隐藏了. 非浏览器渲染进程无法使用JIT. 看起来鸿蒙系统也没有原生的火狐浏览器了.
- newip: 一个类似于IPV4/IPV6的3层网络协议.
- pac: PAC为ARMv8.3的指针验证扩展, 通过对指针的高位地址加密, 阻止许多ROP攻击. 苹果的ARM64e同款功能.
- qos_auth: 一个APP级别的Linux调度策略模块.
- tzdriver: 前文所提的TEEOS的REE侧内核驱动.
- ucollection: 一个CPU使用率的统计模块.
- xpm: 对方舟字节码进行签名验证, 阻止未签名的字节码运行, 阻止JIT.
所以, HarmonyOS Next大概率是一个基于Linux内核, 只能从应用商店安装App, 提供有限的侧载支持, 不支持Android应用, 不允许使用JIT, 不允许root的类似于iOS的移动操作系统.
最后,为了能够让大家跟上互联网时代的技术迭代,赶上互联网开发人员寒冬期间一波红利,在这里跟大家分享一下我自己近期学习心得以及参考网上资料整理出的一份最新版的鸿蒙学习提升资料,有需要的小伙伴自行领取,限时开源,先到先得~
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
需要这份系统化的资料的朋友,可以添加V获取:vip204888 (备注鸿蒙)
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
713291973062)]
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!