[厉害了抄的国]鸿蒙?安卓改个名而已
连结就不放了,推特传得到处都是,简单来说就是安卓改个名,源文件都没有改 Apk 改成 Hap,就是鸿蒙安装档,哈哈哈都笑吐了,搁那玩把戏呢,出了中国谷歌还不告死你 吹嘘动员 140 万人做鸿蒙,这个就是传说中的 大 型 抄 袭 现 场? 厉 …
感谢美国,把中国逼迫成无所不能的国家,把华为逼迫成无所不能的企业。
取匿了,喷子们要喷就喷吧。
=====
专业人士来了,我从事安卓开发也有不少年头了,在那之前还参与开发了 pintos ,liteos 等知名系统 kernel,在 os 界摸爬滚打多年,给 pintos 系统贡献过不少代码,自认为对这行比较熟悉。这次鸿蒙真的是打了所有质疑人的脸了,因为这次华为真的发力了,先上图
这是鸿蒙的 ide 界面,可以看到完善度已经很高了,基本已经达到了上线的水平了。我看了一下华为的代码,发现竟然我们鸿蒙已经实现了在 cpu 的 ISA 给全部替换为我们自主研发的 html 语言,这真的是件非常大的创新!华为实现了英特尔还在探索中的东西,估计是下一步要上麒麟芯片,这样一搞,实现了从芯片层面直接运行 Javascript bytecode 和 rendering DOM,实在是太精妙了,估计还跟分布式类小程序系统有关,拭目以待吧!我认为我们在 os 研发和微应用绝对已经领先了!中华有为,我真的为华为工程师所付出的努力感到骄傲
=== 第 n+1 次更新
看代码看的眼花了,来更新下,先解答下关于代码里面有安卓的争议,先上图。
外行的朋友可能看不懂,我来给大家解释一下,这张图是鸿蒙分布式内核 hdc 和普通安卓 adb disassemble 操作后的函数列表。大家可以清晰的看到,尽管鸿蒙 os 为了兼容安卓的写法和 idiom 所以一部分的函数名非常像,但这相似仅仅止步于名字而已,这图下面的两个红框内可以明显的看出,很多 method 的 signature 其实完全是不同的,进一步印证了鸿蒙系统是一个自主研发和编写的 os。
进一步来看,我认为鸿蒙兼容安卓软件的方法也是首屈一指,对 class 内 method 名称执行了经典 PCRE 操作,也就是 regex.replace,确实是现阶段最快速的兼容方法了,为华为点赞!
所以,我认为可以很明确的看出,华为确实投入了非常多的人力物力来撑起我们国家 os 研发的一片天,让我们拭目以待吧。
=== 第 n 次更新
亮点来了!鸿蒙采用最近业界比较新颖的 switch 采样率转化算法来处理音频,我个人认为这是个非常新颖的想法,估计能比传统方法快上一些,但是确实还需要优化一下,可能导致. c 文件代码行数过多的问题,先上图
红框内大家可以明显地看到,32000 采样率的音频被通过鸿蒙系统转化为 24000 采样率了,这里科普一下,采样率越高,内存占用越大,估计鸿蒙内存还能省!太强了吧,没想到学术界的想法这么快就被华为应用了!,一个字, 牛!
=== 第一次更新
我刚刚看到了鸿蒙 os 的演示代码,先上图
果然不出所料,鸿蒙果然是走的路线在 isa level 直接支持 java 的运行,这结合了刚刚看到的 html,完美的实现了 javascript!十分的巧妙!
====
鸿蒙内核 loader 写的太巧妙了,直接把整个 kernel 在 5 行指令就 load 到 cpu L1 cache,这是绝无仅有的,安卓哪里可能把 kernel 加载到 l1 cache? 看来鸿蒙系统配上麒麟芯片上巨大的 L1 cache 真的是太强了,以后不用考虑 cache hit 等问题。 预计比安卓的机制要快至少 60%,坐等华为发布测试数据。
=====
下面来个具体的例子,华为这次真的成了!
这是鸿蒙系统 mem.c 内核代码文件
外行用户可能看不懂,我讲解讲解,鸿蒙系统简化了以往 linux 系统有很多 file descriptor 的弊端,直接分布式的把所有 descriptor 设置为 0(打开文件速度显著提升),极大的简化了打开文件的 heap 内存开销,至少减少内存使用一半!
第二,所有 read 操作都会很快的返回 0 值,意思就是读写操作速度的巨大提升!
我觉得真不错!
很多人说这里 return 0 有啥用呢?我来补充一点,其实在鸿蒙的 assembly 里面,返回值已经存在了 register 里面。
那几个内存操作的函数,看起来只是 return 0,
其实是把整个内存操作塞在 return 这个 instruction 里面了。因为在底层的 isa 里,一个指令就能搞定内存操作。
说的挺好的。
=====
评论看到华为对 mmu 和调度器的优化也非常大,我有时间继续更新,先研究研究代码。
发布会没看,晚上八点多看到消息,在 gitee 上看了下项目文档:
快速入门里面支持的全部都是 Hi35xx 系列的芯片,这个系列芯片是属于小海思的产品,常用于视频监控领域,也就是常说的摄像头,性能无法与手机相提并论。
正巧,我手里有一块 Hi3518EV300 的开发板,跑下试试鸿蒙 OS 2.0。
过程很简单,参考下官网的文档:
[quick-start / 搭建环境 - 2.md · OpenHarmony/docs - 码云 Gitee.comgitee.com
装一堆的依赖,包括 Python3.8 和 llvm 这两个重头戏。构建系统和 Chromium 一样,都是 ninja 和 GN。整个安装过程还算比较顺利,当然前提是你使用的是国内的 PIP 源和镜像站。
下一步就是编译代码了,整个代码包下载 (226MB):
解压后如下:
vroot@deskmount:~/packages/code$ tree -L 2
.
├── applications
│ └── sample
├── base
│ ├── global
│ ├── hiviewdfx
│ ├── iot\_hardware
│ ├── security
│ └── startup
├── build
│ └── lite
├── build.py -> build/lite/build.py
├── docs
│ ├── api
│ ├── bundles
│ ├── contribute
│ ├── docs-en
│ ├── driver
│ ├── get-code
│ ├── guide
│ ├── kernel
│ ├── quick-start
│ ├── readme
│ ├── Readme-CN.md
│ ├── RELEASE-NOTES.txt
│ ├── security
│ ├── subsystems
│ └── term
├── domains
│ └── iot
├── drivers
│ ├── hdf
│ └── liteos
├── foundation
│ ├── aafwk
│ ├── ace
│ ├── appexecfwk
│ ├── communication
│ ├── distributedschedule
│ ├── graphic
│ └── multimedia
├── kernel
│ ├── liteos\_a
│ └── liteos\_m
├── prebuilts
│ └── lite
├── test
│ ├── developertest
│ ├── xdevice
│ └── xts
├── third\_party
│ ├── bounds\_checking\_function
│ ├── cJSON
│ ├── cmsis
│ ├── curl
│ ├── FatFs
│ ├── FreeBSD
│ ├── freetype
│ ├── googletest
│ ├── harfbuzz
│ ├── iniparser
│ ├── jerryscript
│ ├── libjpeg
│ ├── libpng
│ ├── Linux\_Kernel
│ ├── ltp
│ ├── lwip
│ ├── mbedtls
│ ├── mtd-utils
│ ├── musl
│ ├── NuttX
│ ├── openssl
│ ├── rt\_thread
│ ├── unity
│ ├── wpa\_supplicant
│ └── zlib
├── utils
│ └── native
└── vendor
├── hisi
└── huawei
77 directories, 3 files
里面 kernel 文件夹里有liteos_a
和 liteos_m
这两个文件夹,猜测分别对应 ARM 的 Cotex-A 和 Cortex-M 架构???其他还没有来的及看,后面再分析。
helloworld.c 程序在applications/sample/camera/app/src
目录,内容也比较简洁,和 Linux 的 helloworld 基本一致,除了引入los_sample.h
和 LOS_Sample(g_num);
。
在根目录下,使用python build.py ipcamera_hi3518ev300 -b debug
直接编译,过程很流畅,也没出什么幺蛾子。编译的时候没有看到之前要安装的交叉编译工具链 arm-himix100-linux-gcc,用的是 clang 这套东西。整个编译过程速度还是比较快的,几分钟解决战斗。
![](data:image/svg+xml;utf8,)
下一步就是烧写。
烧写使用的还是海思之前提供的工具,编译好的文件分为OHOS_Image.bin
应该是内核文件,
rootfs.img
应该是根文件系统,userfs.img
应该是用户文件系统。
内核编译完成只有 3.9MB。
因为是串口烧录的,整个过程花费了 28 分钟。。。
继续设置下 uboot 的参数,对你没看错,用的还是 Uboot。
启动后,运行下程序,正确打印!
Hello OHOS!
TencentOS-tiny
比又如何??PS : 求教怎么样支持 USB 网卡,有驱动吗???
证明一下在现场
作为比较早期跟鸿蒙团队有接触的开发者。
(此段避免误解,有修改)18 年那会是真的一行代码也不给看的,能给看的只有负责人手里的 20 页 ppt,讲鸿蒙概念,都非常宽泛。负责人也很虚心的听了我们开发者的一些想法和诉求。
19 年再交流就好了不少,看的出来有成型的思路了。当时讲的一些开发理念,在今天的大会上又再次确认。
到了今年前段时间,突然有了 60 多 Mb 的鸿蒙文档,事无巨细的讲每个鸿蒙概念,每个 API 出入参,用法,只能感慨这个团队是真的能做事的。
今天开源的应该是面向 iot 那部分,真正给手机用的部分要明年,所以我们跟鸿蒙合作的部分,还是不知道能不能细讲。
只能说手机鸿蒙已经有了,在存量设备上就能跑。但 api 还不完善,很多 android 有的特性,鸿蒙还没有,所以应用迁移起来还有点阻碍。到明年应该就还好了。
另外鸿蒙团队也很清楚存量 app 迁移的问题,跑 android 虚拟机的方案是不存在的。但他们有一个更折衷的方案去绕。暂不细讲。
最后,来东莞的路上遇到了暴雨,但从会场出来,看到了很漂亮的彩虹。祝福鸿蒙系统,祝福鸿蒙团队。
连结就不放了,推特传得到处都是,简单来说就是安卓改个名,源文件都没有改 Apk 改成 Hap,就是鸿蒙安装档,哈哈哈都笑吐了,搁那玩把戏呢,出了中国谷歌还不告死你 吹嘘动员 140 万人做鸿蒙,这个就是传说中的 大 型 抄 袭 现 场? 厉 …
品葱用户 马格斯 提问于 9/10/2020 华为开发者大会 发布了鸿蒙 OS 2.0 系统, 这次也不完全是ppt 系统了 开源了部分系统 大家怎么看 -——- 作为码农 发现这个问题算是自己的专业范畴 所以先说一 …
大家好,欢迎使用习近平小熊维尼VS Code语音包插件。 他会在你编码的时候,发出**小学语音,让你代码的质量提高一万倍**。 品葱用户 通音宽依 评论于 2020-08-25 加个rainbow-fart标签 (Topics) …
知乎用户 emmm 发表 外挂并不是逆向技术的唯一的用途,在回答里也说明了,我并不支持外挂。技术是一把双刃剑,用在什么地方在于人。仅回答问题,保持客观中立。 ====================== 现在国内辅助开发者,大都是早期跟着手 …
知乎用户 匿名用户 发表 大家好,虽然我拥有软件工程方向的硕士学位和计算机方向的高级职称,是一个不折不扣的码农,但是,我其实和篮球圈走得很近。下面我谈谈 “天赐” 是如何助力篮球运动智能化的。 对于国产操作系统 “天赐”,其实第一次听说的时 …