v73.01 鸿蒙内核源码分析(注释文档篇) | 内核所有函数调用关系图 | 百篇博客分析OpenHarmony源码
百篇博客分析.本篇为: (注释文档篇) | 内核所有函数调用关系图
前因后果相关篇为:
- v08.03 鸿蒙内核源码分析(总目录) | 百万汉字注解 百篇博客分析
- v09.04 鸿蒙内核源码分析(调度故事) | 用故事说内核调度
- v10.03 鸿蒙内核源码分析(内存主奴) | 皇上和奴才如何相处
- v13.05 鸿蒙内核源码分析(源码注释) | 每天死磕一点点
- v18.02 鸿蒙内核源码分析(源码结构) | 内核文件各自含义
- v52.05 鸿蒙内核源码分析(静态站点) | 码农都不爱写注释和文档
- v73.01 鸿蒙内核源码分析(注释文档) | 内核所有函数调用关系图
工欲善其事 必先利其器
本篇尝试去摸索下鸿蒙内核毛细血管级的脉络,跟踪以下几个问题.
- 鸿蒙有多少个结构体,结构体中每个成员变量的含义是什么?
- 鸿蒙main长啥样,其是如何初始化各个模块的?
- 鸿蒙的任意一个函数的调用和引用关系关系是怎样的?
它已成为众多鸿蒙内核阅读者必不可少的参考手册.
鸿蒙 main 函数长啥样
前往 >> 鸿蒙研究站 | 源码文档版块 点击函数跟踪.
/** * @brief * 内核入口函数,由汇编调用,见于reset_vector_up.S 和 reset_vector_mp.S * up指单核CPU, mp指多核CPU bl main * @return LITE_OS_SEC_TEXT_INIT */ LITE_OS_SEC_TEXT_INIT INT32 main(VOID)//由主CPU执行,默认0号CPU 为主CPU { UINT32 uwRet; uwRet = OsMain();// 内核各模块初始化 if (uwRet != LOS_OK) { return LOS_NOK; } CPU_MAP_SET(0, OsHwIDGet());//设置CPU映射,参数0 代表0号CPU OsSchedStart();//调度开始 while (1) { __asm volatile("wfi");//WFI: wait for Interrupt 等待中断,即下一次中断发生前都在此hold住不干活 } }
结构体/宏/枚举类型
前往 >> 鸿蒙研究站 | 查看所有结构体索引
< 任意函数关系图 | 代码实现 | 注解说明 > 三位一体
模块之间关系图
任意头文件的关系图
内核协作图
前往 >> 查看内核模块协作
百篇博客分析.深挖内核地基
- 给鸿蒙内核源码加注释过程中,整理出以下文章。内容立足源码,常以生活场景打比方尽可能多的将内核知识点置入某种场景,具有画面感,容易理解记忆。说别人能听得懂的话很重要! 百篇博客绝不是百度教条式的在说一堆诘屈聱牙的概念,那没什么意思。更希望让内核变得栩栩如生,倍感亲切.确实有难度,自不量力,但已经出发,回头已是不可能的了。 😛
- 与代码有bug需不断debug一样,文章和注解内容会存在不少错漏之处,请多包涵,但会反复修正,持续更新,v**.xx 代表文章序号和修改的次数,精雕细琢,言简意赅,力求打造精品内容。
按功能模块:
so | tools | load | process |
---|---|---|---|
总目录 调度故事 内存主奴 源码注释 源码结构 静态站点 注释文档 | 双向链表 位图管理 用栈方式 定时器 原子操作 时间管理 | ELF格式 ELF解析 静态链接 重定位 进程映像 | 进程管理 进程概念 Fork 特殊进程 进程回收 信号生产 信号消费 Shell编辑 Shell解析 |
compile | ipc | mem | task |
编译环境 编译过程 环境脚本 构建工具 gn应用 忍者ninja | 自旋锁 互斥锁 进程通讯 信号量 事件控制 消息队列 | 内存分配 内存管理 内存汇编 内存映射 内存规则 物理内存 | 时钟任务 任务调度 任务管理 调度队列 调度机制 线程概念 并发并行 CPU 系统调用 任务切换 |
fs | hw | ||
文件概念 文件系统 索引节点 挂载目录 根文件系统 字符设备 VFS 文件句柄 管道文件 | 汇编基础 汇编传参 工作模式 寄存器 异常接管 汇编汇总 中断切换 中断概念 中断管理 |
百万汉字注解.精读内核源码
四大码仓中文注解 . 定期同步官方代码
鸿蒙研究站( weharmonyos ) | 每天死磕一点点,原创不易,欢迎转载,请注明出处。若能支持点赞则更佳,感谢每一份支持。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
妙手试探MySQL单表Inter插入极限-已实现每秒插入8.5万条数据
很多同学都有这样的困扰: 工作中项目的数据量不大,遇不到sql优化的场景:单表就几万,我优化个der啊; 业务对性能要求不高,远远没达到性能瓶颈:咱这项目又不是不能跑,优化个der啊; 确实,如果你的项目体量不大,不管是数据层还是应用层,都很难接触到性能优化,但是我们可以自己造数据啊!! 今天我带来了一个demo,不仅让你能把多线程运用到实际项目中,还能用它往数据库造测试数据,让你体验下大数据量的表优化 定个小目标,今天造它一亿条数据!! 首先搞清楚,不要为了用技术而用技术,技术一定是为了实现需求: 插入一亿条数据,这是需求; 为了提高效率,运用多线程异步插入,这是方案; 1、为了尽可能模拟真实场景,我们new个对象 靠phone和createTime俩字段,能大大降低数据重复度,抛开别的字段不说,这俩字段基本能保证没有重复数据,所以我们最终的数据很真实,没有一条是重复的,而且,最后还能通过createTime来统计每秒插入条数,nice~ public class Person { private Long id; private String name;//姓名 privat...
- 下一篇
Grafana 任意文件读取漏洞通告
报告编号:B6-2021-120701 报告来源:360CERT 报告作者:360CERT 更新日期:2021-12-07 1漏洞简述 2021年12月07日,360CERT监测发现网上存在Grafana 任意文件读取漏洞,该漏洞目前为0day漏洞,漏洞编号:暂无,漏洞等级:高危,漏洞评分:7.5。 目前该漏洞POC已公开 对此,360CERT建议广大用户做好资产自查以及预防工作,以免遭受黑客攻击。 2风险等级 360CERT对该漏洞的评定结果如下 评定方式 等级 威胁等级 高危 影响面 广泛 攻击者价值 高 利用难度 低 360CERT评分 7.5 3漏洞详情 Grafana 任意文件读取漏洞 CVE: 暂无 组件: Grafana 漏洞类型: 文件读取 影响: 获取敏感信息 简述: 未授权的攻击者利用该漏洞,能够获取服务器敏感文件。 4影响版本 组件 影响版本 安全版本 Grafana 8.x 暂无 5修复建议 通用修补建议 目前暂无相关补丁,即使关注官方动态,获取最新版本。 https://github.com/grafana/grafana/releases https://g...
相关文章
文章评论
共有0条评论来说两句吧...