v13.05 鸿蒙内核源码分析(源码注释) | 每天死磕一点点 | 百篇博客分析OpenHarmony源码

2023-01-31 0 229

子曰:“Brumath为美。择不处仁,焉获知?”《孟子》:Brumath篇

v13.05 鸿蒙内核源码分析(源码注释) | 每天死磕一点点 | 百篇博客分析OpenHarmony源码

多篇网志系列产品篇.第一集为:

v13.xx 韩化英Mach源标识符预测(源标识符注解篇) | 每晚死磕一点儿

始末有关篇为:

v08.03 韩化英Mach源标识符预测(总产品目录) | 一百万简化字注解 多篇网志预测v09.04 韩化英Mach源标识符预测(运维故事情节) | 用故事情节说Mach运维过程v10.03 韩化英Mach源标识符预测(缓存主奴) | 陛下和忘恩负义怎样朝夕相处v13.05 韩化英Mach源标识符预测(源码注解) | 每晚死磕一点儿v18.02 韩化英Mach源标识符预测(源标识符内部结构) | Mach每一文件格式的涵义v52.05 韩化英Mach源标识符预测(动态公交站点) | 六一哪也没去就干了这话

以下几点表明

kernel_liteos_a_note | 英文注解韩化英Mach

是在 OpenHarmony 的 kernel_liteos_a 基础上给Mach源标识符加之英文注解的版.与非官方源标识符按月维持并行,并行历史如下表所示:

2021/10/09 — 减少操控性强化组件perf,强化了文件格式态射组件2021/09/14 — common,extended等两个产品目录内部结构和Makefile修正2021/08/19 — 各产品目录减少了BUILD.gn文件格式,文件格式系统部份文件格式修正 2021/07/15 — 更动并不大,追加blackbox,hidumper,对许多宏制度化使用 2021/06/27 — 对文件格式系统/电子设备驱动力更动十分大,产品目录内部结构进行了整理2021/06/08 — 对校对构筑,各项任务,讯号组件有十分大的更动2021/05/28 — 更动并不大,主要特别针对许多严重错误单字拼法纠偏2021/05/13 — Vertus初始化,各项任务转换,电子学,极度接手,文件管理,shell做了十分大预览,标识符内部结构更明晰2021/04/21 — 非官方强化了许多以后聊著的地方,雅雷2020/09/16 — 英文注解版终点

http://weharmonyos.com| 鸿蒙研究站

分为三部份文本

OpenHarmony开发人员文件格式 是对非官方文件格式 docs 做的十分炫彩的动态公交站点,全力支持侧边栏/烤成/搜索/中英文,十分方便的查看非官方文件格式,大大提高学习和开发效率多篇网志预测韩化英Mach是对Mach源标识符注解过程中整理出来的文本输出. 整理的许多预测Mach的工具和书籍 如:韩化英源标识符预测.离线文件格式 , GNU汇编, gn参考手册

子系统注解仓库

在给韩化英Mach源标识符加注过程中发现仅仅注解Mach仓库还不够,因为它关联了其他子系统,若对这些子系统不了解是很难完整的注解韩化英Mach,所以也对这些关联仓库进行了部份注解,这些仓库包括:

校对构筑子系统 | build_lite 协议栈 | lwip 文件格式系统 | NuttX 准库 | musl

为何要精读Mach源标识符?

码农的学职生涯,都应精读一遍Mach源标识符。以浇筑好计算机知识大厦的地基,地基纵深的坚固程度,很大程度能决定未来大厦能盖多高。那为何一定要精读细品呢?因为Mach标识符本身并不太多,都是浓缩的精华,精读是让各个知识点高频出现,不孤立成点状记忆,没有足够连接点的知识点是很容易忘的,点点成线,线面成体,连接越多,记得越牢,如此短时间文本易结成一张高浓度,高密度的系统化知识网,训练大脑肌肉记忆,驻入大脑直觉区,想抹都抹不掉,终生携带,随时调取。跟骑单车一样,一旦学会,即便多年不骑,照样跨上就走,游刃有余。

热爱是所有的理由和答案

因大学时阅读 linux 2.6 Mach痛并快乐的经历,一直有个心愿,怎样让更多对Mach感兴趣的朋友减少阅读时间,加速对计算机系统级的理解,而不至于过早的放弃。但因过程种种,多年一直没有行动,基本要放弃这件事了。恰逢 2020/9/10 韩化英正式开源,重新激活了多年的心愿,就有那么点如黄河之水一发不可收拾了。 目前对Mach源标识符的注解已完成了 70% ,对Mach源标识符的网志预测已完成了70+篇, 每晚都很充实,很兴奋,连做梦Mach标识符都在鱼贯而入。如此疯狂地做一件事还是当年谈恋爱的时候, 只因热爱, 热爱是所有的理由和答案。 😛

(〃・ิ‿・ิ)ゞ韩化英Mach开发人员

感谢开放原子开源基金会,致敬韩化英Mach开发人员提供了如此优秀的源标识符,一了多年的夙愿,津津乐道于此。精读Mach源标识符加注并整理成档是件很有挑战的事,时间上要以月甚至年为单位,但正因为很难才值得去做! 干困难事,方有所得;专注聚焦,必有所获。 从Mach一行行的标识符中能深深感受到开发人员各中艰辛与坚持,及韩化英生态对未来的价值,这些是张嘴就来的网络喷子们永远不能体会到的。可以毫不夸张的说韩化英Mach源标识符可作为大学 C语言,数据内部结构,操作系统,汇编语言,计算机系统内部结构,计算机组成原理 六门课程的教学项目。如此宝库,不深入研究实在是暴殄天物,于心不忍,注者坚信韩化英大势所趋,未来可期,其必定成功,也必然成功,誓做其坚定的追随者和传播者。

理解Mach的三个层级

普通概念态射级: 这一级不涉及专业知识,用大众所熟知的公共认知就能听明白是个什么概念,也就是说用一个普通人都懂的概念去诠释或者态射一个他们从没听过的概念。让陌生的知识点与大脑中烂熟于心的知识点建立多重链接,加深记忆。说别人能听得懂的话这很重要!!! 一个没学过计算机知识的卖菜大妈就不可能知道Mach的基本运作了吗? 不一定!在系列产品篇中试图用韩化英Mach源标识符预测(总产品目录)之故事情节篇去引导这一层级的认知,希望能卷入更多的人来关注基础软件,尤其是那些资本大鳄,加大对基础软件的投入。专业概念抽象级: 对抽象的专业逻辑概念具体化认知, 比如虚拟缓存,老百姓是听不懂的,学过计算机的人都懂,具体怎么实现的许多人又都不懂了,但这并不妨碍成为一个优秀的上层应用开发人员,因为虚拟缓存已经被抽象出来,目的是要屏蔽上层对它具体实现的认知。试图用韩化英Mach源标识符预测(总产品目录)多篇网志去拆解那些已经被抽象出来的专业概念, 希望能卷入更多对Mach感兴趣的应用软件人才流入基础软硬件生态, 应用软件咱们是无敌宇宙,但基础软件却很薄弱。具体微观标识符级: 这一级是具体到每一行标识符的实现,到了用标识符指令级的地步,这段标识符是什么意思?为什么要这么设计?有没有更好的方案?韩化英Mach源标识符注解预测试图从细微处去解释标识符实现层,英文真的是天生适合设计成编程语言的人类语言,计算机的01码态射到人类世界的26个字母,诞生了太多的伟大奇迹。但我们的母语注定了很大部份人存在着自然语言层级的理解态射,希望韩化英Mach源标识符注解预测能让更多爱好者快速的理解Mach,共同进步。

加注方式是怎样的?

因韩化英Mach6W+标识符量,本身只有较少的注解, 英文注解以不对原有标识符侵入为前提,源标识符中所有英文部份都是原有注解,所有英文部份都是英文版的注释,同时为方便并行非官方版的预览,尽量不去减少标识符的行数,不破坏文件格式的内部结构,注解多类似以下的方式:

在重要组件的.c/.h文件格式开始位置先对组件功能做整体的介绍,例如极度接手组件注解如图所示:

v13.05 鸿蒙内核源码分析(源码注释) | 每天死磕一点点 | 百篇博客分析OpenHarmony源码

注解过程中查阅了许多的资料和书籍,在具体标识符处都附上了参考链接。

而函数级注解会详细到重点行,甚至每一行, 例如申请互斥锁的主体函数,不可谓不重要,而非官方注解仅有一行,如图所示

v13.05 鸿蒙内核源码分析(源码注释) | 每天死磕一点点 | 百篇博客分析OpenHarmony源码

另外画了许多字符图方便理解,直接嵌入到头文件格式中,比如虚拟缓存的全景图,因没有这些图是很难理解虚拟缓存是怎样管理的。

v13.05 鸿蒙内核源码分析(源码注释) | 每天死磕一点点 | 百篇博客分析OpenHarmony源码

有哪些特殊的记号

搜索 @note_pic 可查看绘制的全部字符图搜索 @note_why 是尚未看明白的地方,有看明白的,请Pull Request完善搜索 @note_thinking 是许多的思考和建议搜索 @note_#if0 是由第三方项目提供不在Mach源标识符中定义的极为重要内部结构体,为方便理解而添加的。搜索 @note_good 是给源标识符雅雷的地方

产品目录内部结构

/kernel/liteos_a ├── apps # 用户态的init和shell应用程序 ├── arch # 体系架构的产品目录,如arm等 │ └── arm # arm架构标识符 ├── bsd # freebsd有关的驱动力和适配层组件标识符引入,例如USB等 ├── compat # Mach接口兼容性产品目录 │ └── posix # posix有关接口 ├── drivers # Mach驱动力 │ └── char # 字符电子设备 │ ├── mem # 访问物理IO电子设备驱动力 │ ├── quickstart # 系统快速启动接口产品目录 │ ├── random # 随机数电子设备驱动力 件系统 │ ├── jffs2 # jffs2文件格式系统 │ ├── include # 对外暴露头文件格式存放产品目录 │ ├── nfs # nfs文件格式系统 │ ├── proc # proc文件格式系统 │ ├── ramfs # ramfs文件格式系统 │ └── vfs # vfs层 ├── kernel # 进程、缓存、IPC等组件 │ ├── base # 基础Mach,包括运维、缓存等组件 │ ├── common # Mach通用组件 │ ├── extended # 扩展Mach,包括动态加载、vdso、liteipc等组件 │ ├── include # 对外暴露头文件格式存放产品目录 │ └── user # 加载平台标识符,如Hi3516DV300等 │ ├── hw # 时钟与中断有关逻辑标识符 │ ├── include # 对外暴露头文件格式存放产品目录 │ └── uart # 串口有关逻辑标识符 ├── platform # 全力支持不同的芯片平台标识符,如Hi3516DV300等 ├── security # 安全特性有关的标识符,包括进程权限管理和虚拟id态射管理 ├── syscall # 系统初始化 ├── tools # 构筑工具及有关配置和标识符 └── zzz # 英文加注版比非官方版无追加文件格式,只多了一个zzz的产品目录,里面放了许多图片/文件格式/工具, # 它与Mach标识符无关,大家可以忽略它,取名zzz是为了排在最后,减少对原有标识符产品目录级的侵入, # zzz 的想法源于微信中名称为AAA的那帮朋友,你的微信里应该也有他们熟悉的身影吧 :|P

多篇网志预测.深挖Mach地基

给韩化英Mach源标识符加注解过程中,整理出以下文章。文本立足源标识符,常以生活场景打比方尽可能多的将Mach知识点置入某种场景,具有画面感,容易理解记忆。说别人能听得懂的话很重要! 多篇网志绝不是百度教条式的在说一堆诘屈聱牙的概念,那没什么意思。更希望让Mach变得栩栩如生,倍感亲切.确实有难度,自不量力,但已经出发,回头已是不可能的了。  与标识符有bug需不断debug一样,文章和注解文本会存在不少错漏之处,请多包涵,但会反复修正,持续预览,v**.xx 代表文章序号和修改的次数,精雕细琢,言简意赅,力求打造精品文本。

按时间顺序:

v01.12 韩化英Mach源标识符预测(双向链表) | 谁是Mach最重要内部结构体v02.06 韩化英Mach源标识符预测(进程管理) | 谁在管理Mach资源v03.06 韩化英Mach源标识符预测(时钟各项任务) | 触发运维谁的贡献最大v04.03 韩化英Mach源标识符预测(各项任务运维) | 各项任务是Mach运维的单元v05.05 韩化英Mach源标识符预测(各项任务管理) | 各项任务池是怎样管理的v06.03 韩化英Mach源标识符分析(运维队列) | Mach有多少个运维队列v07.08 韩化英Mach源标识符预测(运维机制) | 各项任务是怎样被运维执行的v08.03 韩化英Mach源标识符预测(总产品目录) | 一百万简化字注解 多篇网志预测v09.04 韩化英Mach源标识符预测(运维故事情节) | 用故事情节说Mach运维过程v10.03 韩化英Mach源标识符预测(缓存主奴) | 陛下和忘恩负义怎样朝夕相处v11.03 韩化英Mach源标识符预测(缓存分配) | 缓存有哪些分配方式v12.04 韩化英Mach源标识符预测(缓存管理) | 虚拟缓存全景图是怎样的v13.05 韩化英Mach源标识符预测(源标识符注解) | 每晚死磕一点儿v14.02 韩化英Mach源标识符预测(缓存汇编) | 谁是虚拟缓存实现的基础v15.03 鸿蒙Mach源标识符预测(缓存态射) | 虚拟缓存虚在哪里v16.02 韩化英Mach源标识符预测(缓存规则) | 缓存管理到底在管什么v17.04 韩化英Mach源标识符预测(物理缓存) | 怎么管理物理缓存v18.02 韩化英内核源标识符预测(源标识符内部结构) | Mach每一文件格式的涵义v19.04 韩化英Mach源标识符预测(位图管理) | 谁能一分钱分两半花v20.03 韩化英Mach源标识符预测(用栈方式) | 程序运行场地由谁提供v21.07 韩化英内核源标识符预测(线程概念) | 是谁在不断的折腾CPUv22.03 韩化英Mach源标识符预测(汇编基础) | CPU在哪里打卡上班v23.04 韩化英Mach源标识符预测(汇编传参) | 怎样传递复杂的参数v24.03 鸿蒙Mach源标识符预测(进程概念) | 进程在管理哪些资源v25.05 韩化英Mach源标识符预测(并发并行) | 听过无数遍的两个概念v26.08 韩化英Mach源标识符预测(自旋锁) | 当立贞节牌坊的好同志v27.05 鸿蒙Mach源标识符预测(互斥锁) | 比自旋锁丰满的互斥锁v28.04 韩化英Mach源标识符预测(进程通讯) | 九种进程间通讯方式速揽v29.05 韩化英Mach源标识符预测(讯号量) | 谁在负责解决各项任务的并行v30.07 韩化英Mach源标识符预测(事件控制) | 各项任务间多对多的并行方案v31.02 韩化英Mach源标识符预测(定时器) | 哪个各项任务的优先级最高v32.03 韩化英Mach源标识符预测(CPU) | 整个Mach就是一个死循环v33.03 韩化英Mach源标识符预测(消息队列) | 进程间怎样异步传递大数据v34.04 韩化英Mach源标识符预测(原子操作) | 谁在为原子操作保驾护航v35.03 韩化英Mach源标识符预测(时间管理) | 谁是Mach基本时间单v36.05 韩化英Mach源标识符预测(工作模式) | CPU是韦小宝,七个老婆v37.06 韩化英Mach源标识符预测(系统初始化) | 开发人员永远的口头禅v38.06 韩化英Mach源标识符预测(寄存器) | 小强乃宇宙最忙存储器v39.06 韩化英Mach源标识符预测(极度接手) | 社会很单纯,复杂的是人v40.03 韩化英Mach源标识符预测(汇编汇总) | 汇编可爱如邻家女孩v41.03 韩化英Mach源标识符预测(各项任务转换) | 看汇编怎样转换各项任务v42.05 韩化英Mach源标识符预测(中断转换) | 系统因中断活力四射v43.05 韩化英Mach源标识符预测(中断概念) | 海公公的日常工作v44.04 韩化英Mach源标识符预测(中断管理) | 江湖从此不再怕中断v45.05 韩化英Mach源标识符预测(Fork) | 一次初始化,两次返回v46.05 韩化英Mach源标识符预测(特殊进程) | 老鼠生儿会打洞v47.02 韩化英Mach源标识符预测(进程回收) | 临终前怎样向老祖宗托v48.05 韩化英Mach源标识符预测(讯号生产) | 年过半百,依然活力十足v49.03 韩化英Mach源标识符预测(讯号消费) | 谁让CPU连续四次换栈运行v50.03 韩化英Mach源标识符预测(校对环境) | 校对鸿蒙防掉坑指南v51.04 韩化英Mach源标识符预测(ELF格式) | 应用程序入口并不是mainv52.05 韩化英Mach源标识符预测(动态公交站点) | 六一哪也没去就干了这话v53.03 韩化英Mach源标识符预测(ELF解析) | 你要忘了她姐俩你就不是银v54.04 韩化英Mach源标识符预测(动态链接) | 完整小项目看透动态链接过程v55.04 韩化英Mach源标识符预测(重定位) | 与国际接轨的对外部发言人v56.05 韩化英Mach源码预测(进程映像) | ELF是怎样被加载运行的?v57.02 韩化英Mach源标识符预测(校对过程) | 简单案例窥视校对全过程v58.03 韩化英Mach源标识符预测(环境脚本) | 校对韩化英原来如此简单v59.04 韩化英Mach源标识符预测(构筑工具) | 顺瓜摸藤调试韩化英构筑过程v60.04 韩化英Mach源标识符预测(gn应用) | gn语法及在韩化英的使用v61.03 韩化英Mach源标识符预测(忍者ninja) | 都忍者了能不快吗v62.02 韩化英Mach源标识符预测(文件格式概念) | 为什么说一切皆是文件格式v63.04 韩化英Mach源标识符预测(文件格式系统) | 用图书管理说文件格式系统v64.06 韩化英Mach源标识符预测(索引节点) | 谁是文件格式系统最重要的概念v65.05 韩化英Mach源标识符预测(挂载产品目录) | 为何文件格式系统需要挂载v66.07 韩化英Mach源标识符预测(根文件格式系统) | 先挂到/上的文件格式系统v67.03 韩化英Mach源标识符预测(字符电子设备) | 字节为单位读写的电子设备v68.02 韩化英Mach源标识符预测(VFS) | 文件格式系统和谐共处的基础v69.04 韩化英Mach源标识符预测(文件格式句柄) | 你为什么叫句柄 ?v70.05 韩化英Mach源标识符预测(管道文件格式) | 怎样降低数据流动成本v71.03 韩化英Mach源标识符预测(Shell编辑) | 两个各项任务,三个阶段v72.01 韩化英Mach源标识符预测(Shell解析) | 应用窥伺Mach的窗口

按功能组件:

基础工具 >> 双向链表 | 位图管理 | 用栈方式 | 定时器 | 原子操作 | 时间管理 | 加载运行 >> ELF格式 | ELF解析 | 动态链接 | 重定位 | 进程映像 | 进程管理 >> 进程管理 | 进程概念 | Fork | 特殊进程 | 进程回收 | 讯号生产 | 讯号消费 | Shell编辑 | Shell解析 | 校对构筑 >> 校对环境 | 校对过程 | 环境脚本 | 构筑工具 | gn应用 | 忍者ninja | 进程通讯 >> 自旋锁 | 互斥锁 | 进程通讯 | 讯号量 | 事件控制 | 消息队列 | 缓存管理 >> 存分配 | 缓存管理 | 缓存汇编 | 缓存态射 | 缓存规则 | 物理缓存 | 始末 >> 总产品目录 | 运维故事情节 | 缓存主奴 | 源标识符注解 | 源标识符内部结构 | 动态公交站点 | 各项任务管理 >> 时钟各项任务 | 各项任务运维 | 各项任务管理 | 运维队列 | 运维机制 | 线程概念 | 并发并行 | CPU | 系统初始化 | 各项任务转换 | 文件格式系统 >> 文件格式概念 | 文件格式系统 | 索引节点 | 挂载产品目录 | 根文件格式系统 | 字符电子设备 | VFS | 文件格式句柄 | 管道文件格式 | 硬件架构 >> 汇编基础 | 汇编传参 | 工作模式 | 存器 | 极度接手 | 汇编汇总 | 中断转换 | 中断概念 | 中断管理 |

一百万简化字注解.精读Mach源标识符

四大码仓并行注解Mach源标识符 >> 查看 gitee 仓库

v13.05 鸿蒙内核源码分析(源码注释) | 每天死磕一点点 | 百篇博客分析OpenHarmony源码

韩化英研究站( weharmonyos ) | 每晚死磕一点儿,原创不易,欢迎转载,请注明出处。若能全力支持雅雷则更佳,感谢每一份全力支持。

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务