昨日(2020.9.10),在华为开发者大会2020上,华为宣布推出鸿蒙OS2.0版本(HarmonyOS 2.0),并且将其开源,代码捐赠给开放原子开源基金会。
笔者带大家进入开源社区,看看鸿蒙的神秘面纱
可以看到,现在的鸿蒙OS还没有明确说明可以应用在手机终端,目前可应用在智能家居物联网终端、智能穿戴、智慧大屏、汽车智能座舱、音箱等智能终端。手机终端是非常复杂的存在, 无论是芯片还是软件,能做好手机上应用的OS,那才是真的试金石,由此可见,鸿蒙依然还是任重而道远。
目前市场上两大霸主就是安卓和苹果了,而10年前大火的塞班也都渐渐退出了历史舞台。
进入gitee社区,查看鸿蒙代码文件目录
安卓代码架构如下:
可以看到,鸿蒙的架构还是相对安卓比较轻量级的。与安卓相比,主要是少了java和虚拟机的一些内容,可能在接口支持上也少了一些。
下载源码后,查看代码目录和内核文件(代码目前大概220多M,比安卓小了很多,安卓都在几个G以上)内核感觉都是liteOS的东西
可以看到,内核文件夹里有两个系列,查看说明
感觉跟ARM开发板的cortex-M,cortex-A这种系列很像,应该就是针对这两种平台设计的吧
进入a系列里面的内核文件
可以看到有一些基本的消息通信(IPC),内存管理(mem),任务管理(sched),设备管理(misc),多进程处理(mp),vm下面貌似是虚拟内存的东西,不知道和安卓java虚拟机有啥关系
fs是文件系统,net里是tcp/ip协议的东西,主要是lwIP
粗略看了下代码框架,实在看不出什么东东,我要放弃治疗了,只能进一步看代码,慢慢研究鸿蒙的真实架构了。不过粗略看了下代码,有个印象就是,鸿蒙的单独文件的大小都很小,基本上都是不到10k的样子
宏内核与微内核
宏内核将所有的系统功能(包括内存管理、文件系统、设备驱动等)都在内核里实现,而微内核则只在内核中保留了必须在内核态运行的功能,而把其他功能都移至用户态以服务线程的方式来实现。(有待查看鸿蒙的代码,看看微内核到底是咋实现的……)咋理解呢?举个不恰当的例子,仅代表个人观点,宏内核是朝鲜,所有资源为内核掌握,优点是办事麻利,说干你就干你,三下五除二,事情嗖嗖的就办好了,缺点是内核太庞大,一旦事情办的卡住了,那就真的卡住了微内核是美国,内核只掌握有限的资源,大部分功能在内核外,需要什么服务还得发消息申请,办事效率慢,但是业务和业务之间相当独立,这个业务挂了不影响另外的业务。
代码还得深入研究啊,暂时看不出来和安卓,linux有嘛关系,毕竟和安卓相比,目前实在是太精简了,而和linux比,设计思想都不一样,毕竟一个是宏内核(linux),一个是微内核(鸿蒙)。但是说实话,刚开始看,还没摸清代码消息管理、进程管理、内存管理这些东西,还得进一步看看,到底啥是个微内核