每个码农,职业生涯,都应精读一遍内核源码,鸿蒙内核源码就是很好的精读项目。一旦熟悉内核代码的实现,将迅速拔高对计算机整体理解,从此高屋建瓴看问题。
# 做了些什么呢?
kernel_liteos_a_note 是在鸿蒙官方开源项目 OpenHarmony/kernel_liteos_a 基础上给源码加上中文注解的版本,目前几大核心模块加注已基本完成,正持续加注完善中…
# 为何想给鸿蒙源码加上中文注释
源于注者大学时阅读linux 2.6 内核痛苦经历,一直有个心愿,想让更多计算机尤其是内核感兴趣的减少阅读时间,加速对计算机系统级的理解,不至于过早的放弃.但因过程种种,一直没有成行,基本要放弃这件事了。但9月10日鸿蒙正式开源,重新激活了注者多年的心愿,就有那么点一发不可收拾了 。
# 致敬鸿蒙内核开发者
感谢开放原子开源基金会,鸿蒙内核开发者提供了如此优秀的源码,一了多年的夙愿,津津乐道于此。越深入精读内核源码,越能感受到设计者的精巧用心,创新突破. 向开发者致敬。可以毫不夸张的说 OpenHarmony/kernel_liteos_a 可作为大学C语言,数据结构,操作系统,汇编语言 四门课程的教学项目.如此宝库,不深入研究实在是太可惜了。
# 理解内核的三个层级
笔者认为理解内核需分三个层级:
# 第一: 普通概念映射级
这一级不涉及专业知识,用大众所熟知的公共认知就能听明白是个什么概念,也就是说用一个普通人都懂的概念去诠释或者映射一个他们从没听过的概念。说别人能听得懂的话这很重要!!! 一个没学过计算机知识的卖菜大妈就不可能知道内核的基本运作了吗? NO!笔者在系列篇中试图用 鸿蒙源码分析系列篇|张大爷系列故事去构建这一层级的认知,希望能卷入更多的人来关注基础软件,尤其是那些有钱的投资人加大对国家基础软件的投入。
# 第二: 专业概念抽象级
这一级是抽象出一个专业的逻辑概念,让学过点计算机知识的人能听得懂,可以不用去了解具体的细节点, 比如虚拟内存,老百姓是听不懂的,学过计算机的人都懂,具体怎么实现的很多人又都不懂了,但这并不妨碍成为一个优秀的上层应用程序员,笔者试图用 鸿蒙源码分析系列篇 去构建这一层级的认知,希望能卷入更多对内核感兴趣的应用软件人才流入基础软件生态, 应用软件咱们是无敌宇宙,但基础软件却很薄弱。
# 第三: 具体微观代码级
这一级是具体到每一行代码的实现,到了用代码指令级的地步, 鸿蒙内核源码注释中文版 kernel_liteos_a_note 试图解构这一层级的认知,英文是天生适合设计成编程语言的人类语言,计算机的01码映射到人类世界的26个字母,诞生了太多的伟大奇迹.但我们的母语注定了很大部分人存在着语言层级的映射,希望注释中文版能让更多爱好者参与进来一起研究,拔高咱基础软件的地位。
鸿蒙是面向未来设计的系统,高瞻远瞩,格局远大,设计精良, 知识点巨多, 把研究过程心得写成鸿蒙源码分析系列篇,如此:源码中文注释+系列篇文章 将加速理解鸿蒙内核实现过程。
# 加注释方式是怎样的?
因鸿蒙内核6W+代码量,本身只有很少的注释, 中文注解以不对原有代码侵入为前提,源码所有英文部分都是原有鸿蒙注释,所有中文部分都是笔者的注释,尽量不去增加代码的行数,不破坏文件的结构,注释多类似以下的方式,笔者试图把每个知识点当场讲透彻。如图:
另外用字符画了一些图方便理解,直接嵌入到头文件中,比如虚拟内存的全景图,因没有这些图是很难理解内存是如何管理的,后续还会陆续加入更多的图方便理解。
# 仰望星空还是埋头走路
精读内核源码当然是件很困难的事,时间上要以月为单位,但正因为很难才值得去做! 内心不渴望的永远不可能靠近自己.笔者一直坚信兴趣是最好的老师,加注也是在做自己感兴趣的事.如果能让更多人参与到内核的研究,减少学习的成本,哪怕就节省一天的时间,这么多人能节省多少时间, 这是件多好玩,多有意义的事情啊。
时代需要仰望星空的人,但也需要埋头走路的人, 从鸿蒙一行行的代码中笔者能深深体会到各中艰辛和坚持,及时鸿蒙对未来的价值,只因心中有目标,就不怕道阻且长。
# 新增的zzz目录是干什么的?
中文加注版比官方版只多了一个zzz的目录,里面放了一些笔者使用的文件,它与内核代码无关,大家可以忽略它,取名zzz是为了排在最后,减少对原有代码目录级的侵入,zzz的想法源于微信中名称为AAA的那批牛人,你的微信里应该也有他们熟悉的身影。
扫二维码|关注我们
HarmonyOS技术社区
电子发烧友与华为官方共建
点击阅读原文,获取更多鸿蒙资料!