HarmonyOS-NEXT-鸿蒙星河版亮相,系统有哪些亮点
HarmonyOS NEXT 鸿蒙星河版亮相,系统有哪些亮点?
HarmonyOS NEXT 鸿蒙星河版亮相,将在 2024 年四季度正式商用,该系统有哪些亮点?
1月18日,华为在深圳举行“鸿蒙生态千帆启航”发布会,正式发布,宣布HarmonyOS NEXT鸿蒙星河版面向开发者开放申请。
先分析一下这个表. (本回答不含通稿, 也不含无脑吹/无脑黑, 大家放心阅读)
- 盘古是华为AI大模型的品牌名. 由于没有公开的面向终端用户的接口, 试用需要申请, 因此尚不清楚其技术水平. 但可以想象不会差于开源的LLaMA.
- MindSpore是华为的AI框架. 在终端设备上部署的是推理端, 华为很早就在手机上布局NPU, 相关功能处于先进水平. 在训练端, 美国限制Nvidia芯片出口之后, 拱手将中国的芯片市场送给了华为, 达到甚至超越其他框架是水到渠成的事.
- DevEco Studio是基于开源的IntelliJ IDEA Community Edition开发的IDE, 整体功能类似Android Studio.
- DevEco Testing是一系列压力测试、性能测试、兼容测试等测试系统和App的测试工具. 这种工具我只在微软Windows上见过, Android和iOS似乎没有类似功能的公开工具. iOS系统没有OEM厂商可以理解, 但Android的这种工具都是各家OEM自己研发内部使用的.
- HarmonyOS Design是HarmonyOS的设计风格. 但众所周知国内的大型App根本不会使用系统的设计风格, 因此这个也就是给小开发者用的.
- ArkUI是基于TypeScript语言的声明式UI框架, 是HarmonyOS的第一方UI框架, 设计思想类似于SwiftUI. 需要注意的是, Flutter和Qt也支持HarmonyOS.
ArkUI是开源软件:
- 布局引擎:
- UI组件
ArkUI-X允许将ArkUI编译到Android和iOS, 类似Flutter.
ArkUI虽然使用了TypeScript, 但并非浏览器或者小程序引擎. 因为浏览器最重要的是DOM模型, 通过DOM, 浏览器将Javascript和排版引擎结合在一起.
而小程序则是借鉴了Vue等MVVM框架, 而MVVM最重要的特征就是UI与逻辑分离. 比如微信小程序使用的WXML声明UI的语法.
而ArkUI与SwiftUI、Flutter是同一类的, 采用声明式编程语言, 自始至终只有一种编程语言.
- 方舟编译器是一个C/C++/Java/Javascript到Native的编译器套件, 但在HarmonyOS中活跃开发的只有Javascript的编译器. 目前HarmonyOS只接受TypeScript的子集, 不允许使用Javascript的动态特征, 且TypeScript的类型参与代码生成, 并非像tsc一样抹去类型.
方舟运行时是运行ArkUI/eTS编译产物的运行时.
- 编译器前端
- 编译器后端
- 运行时
毕昇编译器是一个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协议.
用户态服务器:
内核态文件系统实现:
- 鸿蒙内核为传说中的微内核, 虽然有可信来源该内核开发了很久, 但至今没有开源.
但我认为鸿蒙内核仍不会在鸿蒙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的功能:
- 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的移动操作系统.
最后,为了能够让大家跟上互联网时代的技术迭代,赶上互联网开发人员寒冬期间一波红利,在这里跟大家分享一下我自己近期学习心得以及参考网上资料整理出的一份最新版的鸿蒙学习提升资料,有需要的小伙伴自行领取,限时开源,先到先得~
🚀写在最后
- 如果你觉得这篇内容对你还蛮有帮助,我想邀请你帮我三个小忙:
- 点赞,转发,有你们的 『点赞和评论』,才是我创造的动力。
- 关注小编,同时可以期待后续文章ing🚀,不定期分享原创知识。
- 想要获取更多完整鸿蒙最新VIP学习资料,请点击→