diff --git a/README.md b/README.md index e9535a3ccba214cd2f7c0c2b1ca3909f18972114..f6372e601d035c240577ac3928ae5e222574a26c 100644 --- a/README.md +++ b/README.md @@ -2,17 +2,14 @@ [百万汉字注解 >> 精读鸿蒙源码,中文注解分析, 深挖地基工程,大脑永久记忆,四大码仓每日同步更新<](https://gitee.com/weharmony/kernel_liteos_a_note)[ gitee ](https://gitee.com/weharmony/kernel_liteos_a_note)[| github ](https://github.com/kuangyufei/kernel_liteos_a_note)[| csdn ](https://codechina.csdn.net/kuangyufei/kernel_liteos_a_note)[| coding ](https://weharmony.coding.net/public/harmony/kernel_liteos_a_note/git/files)[>]() -[百篇博客分析 >> 故事说内核,问答式导读,生活式比喻,表格化说明,图形化展示,主流站点定期更新中<](https://my.oschina.net/weharmony)[ oschina ](https://my.oschina.net/weharmony)[ | 51cto ](https://harmonyos.51cto.com/column/34)[| csdn ](https://blog.csdn.net/kuangyufei)[| harmony ](https://weharmony.gitee.io/)[>]() - ---- - +[百篇博客分析 >> 故事说内核,问答式导读,生活式比喻,表格化说明,图形化展示,主流站点定期更新中<](https://my.oschina.net/weharmony)[ osc ](https://my.oschina.net/weharmony)[ | 51cto ](https://harmonyos.51cto.com/column/34)[| csdn ](https://blog.csdn.net/kuangyufei)[| harmony ](https://weharmony.gitee.io/)[>]() ## **百万汉字注解** **[kernel\_liteos\_a_note](https://gitee.com/weharmony/kernel_liteos_a_note)** 是在鸿蒙官方开源项目 **[kernel\_liteos\_a](https://gitee.com/openharmony/kernel_liteos_a)** 基础上给源码加上中文注解的版本. ### **同步官方源码历史** -* 后续将每月同步一次 +* 每月同步一次 * 2021/4/21 -- 官方优化了很多之前吐槽的地方,点赞鸿蒙的效率 * 2020/9/16 -- 中文注解版起点 @@ -64,121 +61,120 @@ ## 百篇博客分析 ### **鸿蒙源码百篇博客 往期回顾** -* 在给 [鸿蒙内核源码加中文注释](https://gitee.com/weharmony/kernel_liteos_a_note) 过程中,整理出以下文章.内容立足源码,常以生活场景打比方尽可能多的将内核知识点置入某种场景,具有画面感.百篇博客绝不是百度教条式的在说一堆诘屈聱牙的概念,那没什么意思.更希望让内核变得栩栩如生,倍感亲切.确实有难度,自不量力,但已经出发,回头已是不可能的了.:P +在给 [鸿蒙内核源码加中文注释](https://gitee.com/weharmony/kernel_liteos_a_note) 过程中,整理出以下文章.内容立足源码,常以生活场景打比方尽可能多的将内核知识点置入某种场景,具有画面感.百篇博客绝不是百度教条式的在说一堆诘屈聱牙的概念,那没什么意思.更希望让内核变得栩栩如生,倍感亲切.确实有难度,自不量力,但已经出发,回头已是不可能的了.:P -* 写文章比写代码累多了,越深入研究,越觉得没写好,所以文章和注解会反复修正, .xx代表修改的次数, 将持续完善源码注解和文档内容,精雕细琢,言简意赅, 尽全力打磨精品内容. +写文章比写代码累多了,越深入研究,越觉得没写好,所以文章和注解会反复修正, .xx代表修改的次数, 将持续完善源码注解和文档内容,精雕细琢,言简意赅, 尽全力打磨精品内容. +* [v51.xx (ELF反汇编篇) | 程序的入口函数并不是main ](https://my.oschina.net/weharmony/blog/5030288) **[<]()[ csdn](https://blog.csdn.net/kuangyufei/article/details/116097977) [ | 51cto ](https://harmonyos.51cto.com/posts/4124)[ | osc ](https://my.oschina.net/weharmony)[>]()** + +* [v50.xx (编译环境篇) | 编译鸿蒙看这篇或许真的够了 ](https://my.oschina.net/weharmony/blog/5028613) **[<]()[ csdn](https://blog.csdn.net/kuangyufei/article/details/116042551) [ | 51cto ](https://harmonyos.51cto.com/posts/4107)[ | osc ](https://my.oschina.net/weharmony)[>]()** + +* [v49.xx (信号消费篇) | 两次切换用户栈和内核栈 ](https://my.oschina.net/weharmony/blog/5027224) **[<]()[ csdn](https://blog.csdn.net/kuangyufei/article/details/115958293) [ | 51cto ](https://harmonyos.51cto.com/column/34)[ | osc ](https://my.oschina.net/weharmony)[>]()** -* [v49.xx (信号消费篇) | 用户栈到内核栈的两次切换 ](https://my.oschina.net/weharmony/blog/5027224) **[<]()[ csdn](https://blog.csdn.net/kuangyufei/article/details/115958293) [ | 51cto ](https://harmonyos.51cto.com/column/34)[ | harmony ](https://weharmony.gitee.io/49_信号消费篇.html)[>]()** - -* [v48.xx (信号生产篇) | 如何安装和发送信号? ](https://my.oschina.net/weharmony/blog/5022149) **[<]()[ csdn](https://blog.csdn.net/kuangyufei/article/details/115768099) [ | 51cto ](https://harmonyos.51cto.com/column/34)[ | harmony ](https://weharmony.gitee.io/48_信号分发篇.html)[>]()** +* [v48.xx (信号生产篇) | 如何安装和发送异步信号 ](https://my.oschina.net/weharmony/blog/5022149) **[<]()[ csdn](https://blog.csdn.net/kuangyufei/article/details/115768099) [ | 51cto ](https://harmonyos.51cto.com/column/34)[ | osc ](https://my.oschina.net/weharmony)[>]()** -* [v47.xx (进程回收篇) | 进程在临终前如何向老祖宗托孤 ](https://my.oschina.net/weharmony/blog/5017716) **[<]()[ csdn](https://blog.csdn.net/kuangyufei/article/details/115672752) [ | 51cto ](https://harmonyos.51cto.com/column/34)[ | harmony ](https://weharmony.gitee.io/47_进程回收篇.html)[>]()** +* [v47.xx (进程回收篇) | 进程在临终前如何向老祖宗托孤 ](https://my.oschina.net/weharmony/blog/5017716) **[<]()[ csdn](https://blog.csdn.net/kuangyufei/article/details/115672752) [ | 51cto ](https://harmonyos.51cto.com/column/34)[ | osc ](https://my.oschina.net/weharmony)[>]()** -* [v46.xx (特殊进程篇) | 龙生龙,凤生凤,老鼠生儿会打洞 ](https://my.oschina.net/weharmony/blog/5014444) **[<]()[ csdn](https://blog.csdn.net/kuangyufei/article/details/115556505) [ | 51cto ](https://harmonyos.51cto.com/column/34)[ | harmony ](https://weharmony.gitee.io/46_特殊进程篇.html)[>]()** +* [v46.xx (特殊进程篇) | 龙生龙,凤生凤,老鼠生儿会打洞 ](https://my.oschina.net/weharmony/blog/5014444) **[<]()[ csdn](https://blog.csdn.net/kuangyufei/article/details/115556505) [ | 51cto ](https://harmonyos.51cto.com/column/34)[ | osc ](https://my.oschina.net/weharmony)[>]()** -* [v45.xx (fork篇) | fork是如何做到调用一次,返回两次的 ? ](https://my.oschina.net/weharmony/blog/5010301) **[<]()[ csdn](https://blog.csdn.net/kuangyufei/article/details/115467961) [ | 51cto ](https://harmonyos.51cto.com/column/34)[ | harmony ](https://weharmony.gitee.io/45_fork篇.html)[>]()** +* [v45.xx (fork篇) | fork是如何做到调用一次,返回两次的 ](https://my.oschina.net/weharmony/blog/5010301) **[<]()[ csdn](https://blog.csdn.net/kuangyufei/article/details/115467961) [ | 51cto ](https://harmonyos.51cto.com/column/34)[ | osc ](https://my.oschina.net/weharmony)[>]()** -* [v44.xx (中断管理篇) | 硬中断的实现<>观察者模式 ](https://my.oschina.net/weharmony/blog/4995800) **[<]()[ csdn](https://blog.csdn.net/kuangyufei/article/details/115130055) [ | 51cto ](https://harmonyos.51cto.com/column/34)[ | harmony ](https://weharmony.gitee.io/44_中断管理篇.html)[>]()** +* [v44.xx (中断管理篇) | 硬中断的实现像观察者模式 ](https://my.oschina.net/weharmony/blog/4995800) **[<]()[ csdn](https://blog.csdn.net/kuangyufei/article/details/115130055) [ | 51cto ](https://harmonyos.51cto.com/column/34)[ | osc ](https://my.oschina.net/weharmony)[>]()** -* [v43.xx (中断概念篇) | 外人眼中权势滔天的当红海公公 ](https://my.oschina.net/weharmony/blog/4992750) **[<]()[ csdn](https://blog.csdn.net/kuangyufei/article/details/115014442) [ | 51cto ](https://harmonyos.51cto.com/column/34)[ | harmony ](https://weharmony.gitee.io/43_中断概念篇.html)[>]()** +* [v43.xx (中断概念篇) | 外人眼中权势滔天的当红海公公 ](https://my.oschina.net/weharmony/blog/4992750) **[<]()[ csdn](https://blog.csdn.net/kuangyufei/article/details/115014442) [ | 51cto ](https://harmonyos.51cto.com/column/34)[ | osc ](https://my.oschina.net/weharmony)[>]()** -* [v42.xx (中断切换篇) | 中断切换到底在切换什么?](https://my.oschina.net/weharmony/blog/4990948) **[<]()[ csdn](https://blog.csdn.net/kuangyufei/article/details/114988891) [ | 51cto ](https://harmonyos.51cto.com/column/34)[ | harmony ](https://weharmony.gitee.io/42_中断切换篇.html)[>]()** +* [v42.xx (中断切换篇) | 中断切换又在切换什么](https://my.oschina.net/weharmony/blog/4990948) **[<]()[ csdn](https://blog.csdn.net/kuangyufei/article/details/114988891) [ | 51cto ](https://harmonyos.51cto.com/column/34)[ | osc ](https://my.oschina.net/weharmony)[>]()** -* [v41.xx (任务切换篇) | 汇编告诉任务到底在切换什么 ](https://my.oschina.net/weharmony/blog/4988628) **[<]()[ csdn](https://blog.csdn.net/kuangyufei/article/details/114890180) [ | 51cto ](https://harmonyos.51cto.com/column/34)[ | harmony ](https://weharmony.gitee.io/41_任务切换篇.html)[>]()** +* [v41.xx (任务切换篇) | 汇编告诉任务到底在切换什么 ](https://my.oschina.net/weharmony/blog/4988628) **[<]()[ csdn](https://blog.csdn.net/kuangyufei/article/details/114890180) [ | 51cto ](https://harmonyos.51cto.com/column/34)[ | osc ](https://my.oschina.net/weharmony)[>]()** -* [v40.xx (汇编汇总篇) | 所有的汇编代码都在这里 ](https://my.oschina.net/weharmony/blog/4977924) **[<]()[ csdn](https://blog.csdn.net/kuangyufei/article/details/114597179) [ | 51cto ](https://harmonyos.51cto.com/column/34)[ | harmony ](https://weharmony.gitee.io/40_汇编汇总篇.html)[>]()** +* [v40.xx (汇编汇总篇) | 所有的汇编代码都在呢 ](https://my.oschina.net/weharmony/blog/4977924) **[<]()[ csdn](https://blog.csdn.net/kuangyufei/article/details/114597179) [ | 51cto ](https://harmonyos.51cto.com/column/34)[ | osc ](https://my.oschina.net/weharmony)[>]()** -* [v39.xx (异常接管篇) | 社会很单纯,复杂的是人 ](https://my.oschina.net/weharmony/blog/4973016) **[<]()[ csdn](https://blog.csdn.net/kuangyufei/article/details/114438285) [ | 51cto ](https://harmonyos.51cto.com/column/34)[ | harmony ](https://weharmony.gitee.io/39_异常接管篇.html)[>]()** +* [v39.xx (异常接管篇) | 社会很单纯,复杂的是人 ](https://my.oschina.net/weharmony/blog/4973016) **[<]()[ csdn](https://blog.csdn.net/kuangyufei/article/details/114438285) [ | 51cto ](https://harmonyos.51cto.com/column/34)[ | osc ](https://my.oschina.net/weharmony)[>]()** -* [v38.xx (寄存器篇) | arm所有寄存器一网打尽,不再神秘 ](https://my.oschina.net/weharmony/blog/4969487) **[<]()[ csdn](https://blog.csdn.net/kuangyufei/article/details/114326994) [ | 51cto ](https://harmonyos.51cto.com/column/34)[ | harmony ](https://weharmony.gitee.io/38_寄存器篇.html)[>]()** +* [v38.xx (寄存器篇) | 看完再也不对寄存器怕怕 ](https://my.oschina.net/weharmony/blog/4969487) **[<]()[ csdn](https://blog.csdn.net/kuangyufei/article/details/114326994) [ | 51cto ](https://harmonyos.51cto.com/column/34)[ | osc ](https://my.oschina.net/weharmony)[>]()** -* [v37.xx (系统调用篇) | 系统调用到底经历了什么 ](https://my.oschina.net/weharmony/blog/4967613) **[<]()[ csdn](https://blog.csdn.net/kuangyufei/article/details/114285166) [ | 51cto ](https://harmonyos.51cto.com/column/34)[ | harmony ](https://weharmony.gitee.io/37_系统调用篇.html)[>]()** +* [v37.xx (系统调用篇) | 系统调用到底经历了什么 ](https://my.oschina.net/weharmony/blog/4967613) **[<]()[ csdn](https://blog.csdn.net/kuangyufei/article/details/114285166) [ | 51cto ](https://harmonyos.51cto.com/column/34)[ | osc ](https://my.oschina.net/weharmony)[>]()** -* [v36.xx (工作模式篇) | cpu是韦小宝,有哪七个老婆? ](https://my.oschina.net/weharmony/blog/4965052) **[<]()[ csdn](https://blog.csdn.net/kuangyufei/article/details/114168567) [ | 51cto ](https://harmonyos.51cto.com/column/34)[ | harmony ](https://weharmony.gitee.io/36_工作模式篇.html)[>]()** +* [v36.xx (工作模式篇) | cpu是韦小宝,有哪七个老婆 ](https://my.oschina.net/weharmony/blog/4965052) **[<]()[ csdn](https://blog.csdn.net/kuangyufei/article/details/114168567) [ | 51cto ](https://harmonyos.51cto.com/column/34)[ | osc ](https://my.oschina.net/weharmony)[>]()** -* [v35.xx (时间管理篇) | tick是操作系统的基本时间单位 ](https://my.oschina.net/weharmony/blog/4956163) **[<]()[ csdn](https://blog.csdn.net/kuangyufei/article/details/113867785) [ | 51cto ](https://harmonyos.51cto.com/column/34)[ | harmony ](https://weharmony.gitee.io/35_时间管理篇.html)[>]()** +* [v35.xx (时间管理篇) | tick是操作系统的基本时间单位 ](https://my.oschina.net/weharmony/blog/4956163) **[<]()[ csdn](https://blog.csdn.net/kuangyufei/article/details/113867785) [ | 51cto ](https://harmonyos.51cto.com/column/34)[ | osc ](https://my.oschina.net/weharmony)[>]()** -* [v34.xx (原子操作篇) | 是谁在为原子操作保驾护航? ](https://my.oschina.net/weharmony/blog/4955290) **[<]()[ csdn](https://blog.csdn.net/kuangyufei/article/details/113850603) [ | 51cto ](https://harmonyos.51cto.com/column/34)[ | harmony ](https://weharmony.gitee.io/34_原子操作篇.html)[>]()** +* [v34.xx (原子操作篇) | 是谁在为原子操作保驾护航 ](https://my.oschina.net/weharmony/blog/4955290) **[<]()[ csdn](https://blog.csdn.net/kuangyufei/article/details/113850603) [ | 51cto ](https://harmonyos.51cto.com/column/34)[ | osc ](https://my.oschina.net/weharmony)[>]()** -* [v33.xx (消息队列篇) | 进程间如何异步解耦传递大数据 ? ](https://my.oschina.net/weharmony/blog/4952961) **[<]()[ csdn](https://blog.csdn.net/kuangyufei/article/details/113815355) [ | 51cto ](https://harmonyos.51cto.com/column/34)[ | harmony ](https://weharmony.gitee.io/33_消息队列篇.html)[>]()** +* [v33.xx (消息队列篇) | 进程间如何异步解耦传递大数据 ](https://my.oschina.net/weharmony/blog/4952961) **[<]()[ csdn](https://blog.csdn.net/kuangyufei/article/details/113815355) [ | 51cto ](https://harmonyos.51cto.com/column/34)[ | osc ](https://my.oschina.net/weharmony)[>]()** -* [v32.xx (cpu篇) | 整个内核就是一个死循环 ](https://my.oschina.net/weharmony/blog/4952034) **[<]()[ csdn](https://blog.csdn.net/kuangyufei/article/details/113782749) [ | 51cto ](https://harmonyos.51cto.com/column/34)[ | harmony ](https://weharmony.gitee.io/32_CPU篇.html)[>]()** +* [v32.xx (cpu篇) | 整个内核就是一个死循环 ](https://my.oschina.net/weharmony/blog/4952034) **[<]()[ csdn](https://blog.csdn.net/kuangyufei/article/details/113782749) [ | 51cto ](https://harmonyos.51cto.com/column/34)[ | osc ](https://my.oschina.net/weharmony)[>]()** -* [v31.xx (定时器篇) | 内核最高优先级任务是谁? ](https://my.oschina.net/weharmony/blog/4951625) **[<]()[ csdn](https://blog.csdn.net/kuangyufei/article/details/113774260) [ | 51cto ](https://harmonyos.51cto.com/column/34)[ | harmony ](https://weharmony.gitee.io/31_定时器机制篇.html)[>]()** +* [v31.xx (定时器篇) | 内核最高优先级任务是谁 ](https://my.oschina.net/weharmony/blog/4951625) **[<]()[ csdn](https://blog.csdn.net/kuangyufei/article/details/113774260) [ | 51cto ](https://harmonyos.51cto.com/column/34)[ | osc ](https://my.oschina.net/weharmony)[>]()** -* [v30.xx (事件控制篇) | 任务间多对多的同步方案 ](https://my.oschina.net/weharmony/blog/4950956) **[<]()[ csdn](https://blog.csdn.net/kuangyufei/article/details/113759481) [ | 51cto ](https://harmonyos.51cto.com/column/34)[ | harmony ](https://weharmony.gitee.io/30_事件控制篇.html)[>]()** +* [v30.xx (事件控制篇) | 任务间多对多的同步方案 ](https://my.oschina.net/weharmony/blog/4950956) **[<]()[ csdn](https://blog.csdn.net/kuangyufei/article/details/113759481) [ | 51cto ](https://harmonyos.51cto.com/column/34)[ | osc ](https://my.oschina.net/weharmony)[>]()** -* [v29.xx (信号量篇) | 信号量解决任务同步问题 ](https://my.oschina.net/weharmony/blog/4949720) **[<]()[ csdn](https://blog.csdn.net/kuangyufei/article/details/113744267) [ | 51cto ](https://harmonyos.51cto.com/column/34)[ | harmony ](https://weharmony.gitee.io/29_信号量篇.html)[>]()** +* [v29.xx (信号量篇) | 信号量解决任务的什么问题 ](https://my.oschina.net/weharmony/blog/4949720) **[<]()[ csdn](https://blog.csdn.net/kuangyufei/article/details/113744267) [ | 51cto ](https://harmonyos.51cto.com/column/34)[ | osc ](https://my.oschina.net/weharmony)[>]()** -* [v28.xx (进程通讯篇) | 进程间通讯有哪九大方式? ](https://my.oschina.net/weharmony/blog/4947398) **[<]()[ csdn](https://blog.csdn.net/kuangyufei/article/details/113700751) [ | 51cto ](https://harmonyos.51cto.com/column/34)[ | harmony ](https://weharmony.gitee.io/28_进程通讯篇.html)[>]()** +* [v28.xx (进程通讯篇) | 九种进程间通讯方式速揽 ](https://my.oschina.net/weharmony/blog/4947398) **[<]()[ csdn](https://blog.csdn.net/kuangyufei/article/details/113700751) [ | 51cto ](https://harmonyos.51cto.com/column/34)[ | osc ](https://my.oschina.net/weharmony)[>]()** -* [v27.xx (互斥锁篇) | 互斥锁比自旋锁可丰满许多 ](https://my.oschina.net/weharmony/blog/4945465) **[<]()[ csdn](https://blog.csdn.net/kuangyufei/article/details/113660357) [ | 51cto ](https://harmonyos.51cto.com/column/34)[ | harmony ](https://weharmony.gitee.io/27_互斥锁篇.html)[>]()** +* [v27.xx (互斥锁篇) | 比自旋锁丰满的互斥锁 ](https://my.oschina.net/weharmony/blog/4945465) **[<]()[ csdn](https://blog.csdn.net/kuangyufei/article/details/113660357) [ | 51cto ](https://harmonyos.51cto.com/column/34)[ | osc ](https://my.oschina.net/weharmony)[>]()** -* [v26.xx (自旋锁篇) | 真的好想为自旋锁立贞节牌坊! ](https://my.oschina.net/weharmony/blog/4944129) **[<]()[ csdn](https://blog.csdn.net/kuangyufei/article/details/113616250) [ | 51cto ](https://harmonyos.51cto.com/column/34)[ | harmony ](https://weharmony.gitee.io/26_自旋锁篇.html)[>]()** +* [v26.xx (自旋锁篇) | 自旋锁当立贞节牌坊 ](https://my.oschina.net/weharmony/blog/4944129) **[<]()[ csdn](https://blog.csdn.net/kuangyufei/article/details/113616250) [ | 51cto ](https://harmonyos.51cto.com/column/34)[ | osc ](https://my.oschina.net/weharmony)[>]()** -* [v25.xx (并发并行篇) | 怎么记住并发并行的区别? ](https://my.oschina.net/u/3751245/blog/4940329) **[<]()[ csdn](https://blog.csdn.net/kuangyufei/article/details/113516222) [ | 51cto ](https://harmonyos.51cto.com/column/34)[ | harmony ](https://weharmony.gitee.io/25_并发并行篇.html)[>]()** +* [v25.xx (并发并行篇) | 两个字永远记住二者区别 ](https://my.oschina.net/u/3751245/blog/4940329) **[<]()[ csdn](https://blog.csdn.net/kuangyufei/article/details/113516222) [ | 51cto ](https://harmonyos.51cto.com/column/34)[ | osc ](https://my.oschina.net/weharmony)[>]()** -* [v24.xx (进程概念篇) | 进程在管理哪些资源? ](https://my.oschina.net/u/3751245/blog/4937521) **[<]()[ csdn](https://blog.csdn.net/kuangyufei/article/details/113395872) [ | 51cto ](https://harmonyos.51cto.com/column/34)[ | harmony ](https://weharmony.gitee.io/24_进程概念篇.html)[>]()** +* [v24.xx (进程概念篇) | 进程在管理哪些资源 ](https://my.oschina.net/u/3751245/blog/4937521) **[<]()[ csdn](https://blog.csdn.net/kuangyufei/article/details/113395872) [ | 51cto ](https://harmonyos.51cto.com/column/34)[ | osc ](https://my.oschina.net/weharmony)[>]()** -* [v23.xx (汇编传参篇) | 汇编如何传递复杂的参数? ](https://my.oschina.net/u/3751245/blog/4927892) **[<]()[ csdn](https://blog.csdn.net/kuangyufei/article/details/113265990) [ | 51cto ](https://harmonyos.51cto.com/column/34)[ | harmony ](https://weharmony.gitee.io/23_汇编传参篇.html)[>]()** +* [v23.xx (汇编传参篇) | 汇编如何传递复杂的参数 ](https://my.oschina.net/u/3751245/blog/4927892) **[<]()[ csdn](https://blog.csdn.net/kuangyufei/article/details/113265990) [ | 51cto ](https://harmonyos.51cto.com/column/34)[ | osc ](https://my.oschina.net/weharmony)[>]()** -* [v22.xx (汇编基础篇) | cpu在哪里打卡上班? ](https://my.oschina.net/u/3751245/blog/4920361) **[<]()[ csdn](https://blog.csdn.net/kuangyufei/article/details/112986628) [ | 51cto ](https://harmonyos.51cto.com/column/34)[ | harmony ](https://weharmony.gitee.io/22_汇编基础篇.html)[>]()** +* [v22.xx (汇编基础篇) | cpu在哪里打卡上班 ](https://my.oschina.net/u/3751245/blog/4920361) **[<]()[ csdn](https://blog.csdn.net/kuangyufei/article/details/112986628) [ | 51cto ](https://harmonyos.51cto.com/column/34)[ | osc ](https://my.oschina.net/weharmony)[>]()** -* [v21.xx (线程概念篇) | 是谁在不断的折腾cpu? ](https://my.oschina.net/u/3751245/blog/4915543) **[<]()[ csdn](https://blog.csdn.net/kuangyufei/article/details/112870193) [ | 51cto ](https://harmonyos.51cto.com/column/34)[ | harmony ](https://weharmony.gitee.io/21_线程概念篇.html)[>]()** +* [v21.xx (线程概念篇) | 是谁在不断的折腾cpu ](https://my.oschina.net/u/3751245/blog/4915543) **[<]()[ csdn](https://blog.csdn.net/kuangyufei/article/details/112870193) [ | 51cto ](https://harmonyos.51cto.com/column/34)[ | osc ](https://my.oschina.net/weharmony)[>]()** -* [v20.xx (用栈方式篇) | 栈是构建底层运行的基础 ](https://my.oschina.net/u/3751245/blog/4893388) **[<]()[ csdn](https://blog.csdn.net/kuangyufei/article/details/112534331) [ | 51cto ](https://harmonyos.51cto.com/column/34)[ | harmony ](https://weharmony.gitee.io/20_用栈方式篇.html)[>]()** +* [v20.xx (用栈方式篇) | 栈是构建底层运行的基础 ](https://my.oschina.net/u/3751245/blog/4893388) **[<]()[ csdn](https://blog.csdn.net/kuangyufei/article/details/112534331) [ | 51cto ](https://harmonyos.51cto.com/column/34)[ | osc ](https://my.oschina.net/weharmony)[>]()** -* [v19.xx (位图管理篇) | 为何进程和线程优先级都是32个? ](https://my.oschina.net/u/3751245/blog/4888467) **[<]()[ csdn](https://blog.csdn.net/kuangyufei/article/details/112394982) [ | 51cto ](https://harmonyos.51cto.com/column/34)[ | harmony ](https://weharmony.gitee.io/19_位图管理篇.html)[>]()** +* [v19.xx (位图管理篇) | 为何进程和线程优先级都是32个 ](https://my.oschina.net/u/3751245/blog/4888467) **[<]()[ csdn](https://blog.csdn.net/kuangyufei/article/details/112394982) [ | 51cto ](https://harmonyos.51cto.com/column/34)[ | osc ](https://my.oschina.net/weharmony)[>]()** -* [v18.xx (源码结构篇) | 梳理内核源文件的作用和含义 ](https://my.oschina.net/u/3751245/blog/4869137) **[<]()[ csdn](https://blog.csdn.net/kuangyufei/article/details/111938348) [ | 51cto ](https://harmonyos.51cto.com/column/34)[ | harmony ](https://weharmony.gitee.io/18_源码结构篇.html)[>]()** +* [v18.xx (源码结构篇) | 梳理内核源文件的作用和含义 ](https://my.oschina.net/u/3751245/blog/4869137) **[<]()[ csdn](https://blog.csdn.net/kuangyufei/article/details/111938348) [ | 51cto ](https://harmonyos.51cto.com/column/34)[ | osc ](https://my.oschina.net/weharmony)[>]()** -* [v17.xx (物理内存篇) | 这样记伙伴算法永远不会忘 ](https://my.oschina.net/u/3751245/blog/4842408) **[<]()[ csdn](https://blog.csdn.net/kuangyufei/article/details/111765600) [ | 51cto ](https://harmonyos.51cto.com/column/34)[ | harmony ](https://weharmony.gitee.io/17_物理内存篇.html)[>]()** +* [v17.xx (物理内存篇) | 怎么管理物理内存 ](https://my.oschina.net/u/3751245/blog/4842408) **[<]()[ csdn](https://blog.csdn.net/kuangyufei/article/details/111765600) [ | 51cto ](https://harmonyos.51cto.com/column/34)[ | osc ](https://my.oschina.net/weharmony)[>]()** -* [v16.xx (内存规则篇) | 内存管理到底在管什么? ](https://my.oschina.net/u/3751245/blog/4698384) **[<]()[ csdn](https://blog.csdn.net/kuangyufei/article/details/109437223) [ | 51cto ](https://harmonyos.51cto.com/column/34)[ | harmony ](https://weharmony.gitee.io/16_内存规则篇.html)[>]()** +* [v16.xx (内存规则篇) | 内存管理到底在管什么 ](https://my.oschina.net/u/3751245/blog/4698384) **[<]()[ csdn](https://blog.csdn.net/kuangyufei/article/details/109437223) [ | 51cto ](https://harmonyos.51cto.com/column/34)[ | osc ](https://my.oschina.net/weharmony)[>]()** -* [v15.xx (内存映射篇) | 什么是内存最重要的实现基础 ? ](https://my.oschina.net/u/3751245/blog/4694841) **[<]()[ csdn](https://blog.csdn.net/kuangyufei/article/details/109032636) [ | 51cto ](https://harmonyos.51cto.com/column/34)[ | harmony ](https://weharmony.gitee.io/15_内存映射篇.html)[>]()** +* [v15.xx (内存映射篇) | 虚拟内存虚在哪里 ](https://my.oschina.net/u/3751245/blog/4694841) **[<]()[ csdn](https://blog.csdn.net/kuangyufei/article/details/109032636) [ | 51cto ](https://harmonyos.51cto.com/column/34)[ | osc ](https://my.oschina.net/weharmony)[>]()** -* [v14.xx (内存汇编篇) | 什么是虚拟内存的实现基础? ](https://my.oschina.net/u/3751245/blog/4692156) **[<]()[ csdn](https://blog.csdn.net/kuangyufei/article/details/108994081) [ | 51cto ](https://harmonyos.51cto.com/column/34)[ | harmony ](https://weharmony.gitee.io/14_内存汇编篇.html)[>]()** +* [v14.xx (内存汇编篇) | 什么是虚拟内存的实现基础 ](https://my.oschina.net/u/3751245/blog/4692156) **[<]()[ csdn](https://blog.csdn.net/kuangyufei/article/details/108994081) [ | 51cto ](https://harmonyos.51cto.com/column/34)[ | osc ](https://my.oschina.net/weharmony)[>]()** -* [v13.xx (源码注释篇) | 鸿蒙必须成功,也必然成功 ](https://my.oschina.net/u/3751245/blog/4686747) **[<]()[ csdn](https://blog.csdn.net/kuangyufei/article/details/109251754) [ | 51cto ](https://harmonyos.51cto.com/column/34)[ | harmony ](https://weharmony.gitee.io/13_源码注释篇.html)[>]()** +* [v13.xx (源码注释篇) | 鸿蒙必须成功,也必然成功 ](https://my.oschina.net/u/3751245/blog/4686747) **[<]()[ csdn](https://blog.csdn.net/kuangyufei/article/details/109251754) [ | 51cto ](https://harmonyos.51cto.com/column/34)[ | osc ](https://my.oschina.net/weharmony)[>]()** -* [v12.xx (内存管理篇) | 虚拟内存全景图是怎样的? ](https://my.oschina.net/u/3751245/blog/4652284) **[<]()[ csdn](https://blog.csdn.net/kuangyufei/article/details/108821442) [ | 51cto ](https://harmonyos.51cto.com/column/34)[ | harmony ](https://weharmony.gitee.io/12_内存管理篇.html)[>]()** +* [v12.xx (内存管理篇) | 虚拟内存全景图是怎样的 ](https://my.oschina.net/u/3751245/blog/4652284) **[<]()[ csdn](https://blog.csdn.net/kuangyufei/article/details/108821442) [ | 51cto ](https://harmonyos.51cto.com/column/34)[ | osc ](https://my.oschina.net/weharmony)[>]()** -* [v11.xx (内存分配篇) | 内存有哪些分配方式? ](https://my.oschina.net/u/3751245/blog/4646802) **[<]()[ csdn](https://blog.csdn.net/kuangyufei/article/details/108989906) [ | 51cto ](https://harmonyos.51cto.com/column/34)[ | harmony ](https://weharmony.gitee.io/11_内存分配篇.html)[>]()** +* [v11.xx (内存分配篇) | 内存有哪些分配方式 ](https://my.oschina.net/u/3751245/blog/4646802) **[<]()[ csdn](https://blog.csdn.net/kuangyufei/article/details/108989906) [ | 51cto ](https://harmonyos.51cto.com/column/34)[ | osc ](https://my.oschina.net/weharmony)[>]()** -* [v10.xx (内存主奴篇) | 紫禁城的主子和奴才如何相处? ](https://my.oschina.net/u/3751245/blog/4646802) **[<]()[ csdn](https://blog.csdn.net/kuangyufei/article/details/108723672) [ | 51cto ](https://harmonyos.51cto.com/column/34)[ | harmony ](https://weharmony.gitee.io/10_内存主奴篇.html)[>]()** +* [v10.xx (内存主奴篇) | 紫禁城的主子和奴才如何相处 ](https://my.oschina.net/u/3751245/blog/4646802) **[<]()[ csdn](https://blog.csdn.net/kuangyufei/article/details/108723672) [ | 51cto ](https://harmonyos.51cto.com/column/34)[ | osc ](https://my.oschina.net/weharmony)[>]()** -* [v09.xx (调度故事篇) | 用故事说内核调度过程 ](https://my.oschina.net/u/3751245/blog/4634668) **[<]()[ csdn](https://blog.csdn.net/kuangyufei/article/details/108745174) [ | 51cto ](https://harmonyos.51cto.com/column/34)[ | harmony ](https://weharmony.gitee.io/09_调度故事篇.html)[>]()** +* [v09.xx (调度故事篇) | 用故事说内核调度过程 ](https://my.oschina.net/u/3751245/blog/4634668) **[<]()[ csdn](https://blog.csdn.net/kuangyufei/article/details/108745174) [ | 51cto ](https://harmonyos.51cto.com/column/34)[ | osc ](https://my.oschina.net/weharmony)[>]()** -* [v08.xx (总目录) | 百万汉字注解 百篇博客分析 ](https://my.oschina.net/weharmony) **[<]()[ csdn](https://blog.csdn.net/kuangyufei) [ | 51cto ](https://harmonyos.51cto.com/column/34)[ | harmony ](https://weharmony.gitee.io/08_总目录.html)[>]()** +* [v08.xx (总目录) | 百万汉字注解 百篇博客分析 ](https://my.oschina.net/weharmony/blog/4626852) **[<]()[ csdn](https://blog.csdn.net/kuangyufei/article/details/108727970) [ | 51cto ](https://harmonyos.51cto.com/column/34)[ | osc ](https://my.oschina.net/weharmony)[>]()** -* [v07.xx (调度机制篇) | 任务是如何被调度执行的? ](https://my.oschina.net/u/3751245/blog/4623040) **[<]()[ csdn](https://blog.csdn.net/kuangyufei/article/details/108705968) [ | 51cto ](https://harmonyos.51cto.com/column/34)[ | harmony ](https://weharmony.gitee.io/07_调度机制篇.html)[>]()** +* [v07.xx (调度机制篇) | 任务是如何被调度执行的 ](https://my.oschina.net/u/3751245/blog/4623040) **[<]()[ csdn](https://blog.csdn.net/kuangyufei/article/details/108705968) [ | 51cto ](https://harmonyos.51cto.com/column/34)[ | osc ](https://my.oschina.net/weharmony)[>]()** -* [v06.xx (调度队列篇) | 内核有多少个调度队列? ](https://my.oschina.net/u/3751245/blog/4606916) **[<]()[ csdn](https://blog.csdn.net/kuangyufei/article/details/108626671) [ | 51cto ](https://harmonyos.51cto.com/column/34)[ | harmony ](https://weharmony.gitee.io/06_调度队列篇.html)[>]()** +* [v06.xx (调度队列篇) | 内核有多少个调度队列 ](https://my.oschina.net/u/3751245/blog/4606916) **[<]()[ csdn](https://blog.csdn.net/kuangyufei/article/details/108626671) [ | 51cto ](https://harmonyos.51cto.com/column/34)[ | osc ](https://my.oschina.net/weharmony)[>]()** -* [v05.xx (任务管理篇) | 任务池是如何管理的? ](https://my.oschina.net/u/3751245/blog/4603919) **[<]()[ csdn](https://blog.csdn.net/kuangyufei/article/details/108661248) [ | 51cto ](https://harmonyos.51cto.com/column/34)[ | harmony ](https://weharmony.gitee.io/05_任务管理篇.html)[>]()** +* [v05.xx (任务管理篇) | 任务池是如何管理的 ](https://my.oschina.net/u/3751245/blog/4603919) **[<]()[ csdn](https://blog.csdn.net/kuangyufei/article/details/108661248) [ | 51cto ](https://harmonyos.51cto.com/column/34)[ | osc ](https://my.oschina.net/weharmony)[>]()** -* [v04.xx (任务调度篇) | 任务是内核调度的单元 ](https://my.oschina.net/weharmony/blog/4595539) **[<]()[ csdn](https://blog.csdn.net/kuangyufei/article/details/108621428) [ | 51cto ](https://harmonyos.51cto.com/column/34)[ | harmony ](https://weharmony.gitee.io/04_任务调度篇.html)[>]()** - -* [v03.xx (时钟任务篇) | 调度最大的源动力来自哪里? ](https://my.oschina.net/u/3751245/blog/4574493) **[<]()[ csdn](https://blog.csdn.net/kuangyufei/article/details/108603468) [ | 51cto ](https://harmonyos.51cto.com/column/34)[ | harmony ](https://weharmony.gitee.io/03_时钟任务篇.html)[>]()** +* [v04.xx (任务调度篇) | 任务是内核调度的单元 ](https://my.oschina.net/weharmony/blog/4595539) **[<]()[ csdn](https://blog.csdn.net/kuangyufei/article/details/108621428) [ | 51cto ](https://harmonyos.51cto.com/column/34)[ | osc ](https://my.oschina.net/weharmony)[>]()** -* [v02.xx (进程管理篇) | 进程是内核资源管理单元 ](https://my.oschina.net/u/3751245/blog/4574429) **[<]()[ csdn](https://blog.csdn.net/kuangyufei/article/details/108595941) [ | 51cto ](https://harmonyos.51cto.com/column/34)[ | harmony ](https://weharmony.gitee.io/02_进程管理篇.html)[>]()** +* [v03.xx (时钟任务篇) | 谁是触发调度的最大动力 ](https://my.oschina.net/u/3751245/blog/4574493) **[<]()[ csdn](https://blog.csdn.net/kuangyufei/article/details/108603468) [ | 51cto ](https://harmonyos.51cto.com/column/34)[ | osc ](https://my.oschina.net/weharmony)[>]()** -* [v01.xx (双向链表篇) | 谁是内核最重要结构体? ](https://my.oschina.net/u/3751245/blog/4572304) **[<]()[ csdn](https://blog.csdn.net/kuangyufei/article/details/108585659) [ | 51cto ](https://harmonyos.51cto.com/column/34)[ | harmony ](https://weharmony.gitee.io/01_双向链表篇.html)[>]()** +* [v02.xx (进程管理篇) | 进程是内核资源管理单元 ](https://my.oschina.net/u/3751245/blog/4574429) **[<]()[ csdn](https://blog.csdn.net/kuangyufei/article/details/108595941) [ | 51cto ](https://harmonyos.51cto.com/posts/3926)[ | osc ](https://my.oschina.net/weharmony)[>]()** -* [进入 >> oschina ](https://my.oschina.net/weharmony)[| csdn ](https://blog.csdn.net/kuangyufei)[| 51cto ](https://harmonyos.51cto.com/column/34)[| 掘金 ](https://juejin.cn/user/756888642000808/posts)[| harmony ](https://weharmony.gitee.io/) +* [v01.xx (双向链表篇) | 谁是内核最重要结构体 ](https://my.oschina.net/u/3751245/blog/4572304) **[<]()[ csdn](https://blog.csdn.net/kuangyufei/article/details/108585659) [ | 51cto ](https://harmonyos.51cto.com/posts/3925)[ | osc ](https://my.oschina.net/weharmony)[>]()** ### 主流站点输出 -感谢 `oschina`,`csdn`,`华为开发者论坛`, `51cto`, `掘金`,`电子发烧友`,以及其他小伙伴对系列文章的转载和推荐。 - -[oschina |](https://my.oschina.net/weharmony)[ csdn |](https://blog.csdn.net/kuangyufei)[ 51cto |](https://harmonyos.51cto.com/column/34)[ 简书 |](https://www.jianshu.com/u/f7f5bf861106)[ 掘金 |](https://harmonyos.51cto.com/column/34)[ 华为开发者论坛 |](https://developer.huawei.com/consumer/cn/forum/)[ 头条号 |](https://gitee.com/weharmony/docs/raw/master/pic/other/tt.png)[ 公众号 |](https://gitee.com/weharmony/docs/raw/master/pic/other/so1so.png)[ weharmony.gitee.io |](https://weharmony.gitee.io)[ weharmony.github.io |](https://weharmony.github.io) +[进入 >> osc ](https://my.oschina.net/weharmony)[| csdn ](https://blog.csdn.net/kuangyufei)[| 51cto ](https://harmonyos.51cto.com/column/34)[| 掘金 ](https://juejin.cn/user/756888642000808/posts)[| 公众号 ](https://gitee.com/weharmony/docs/raw/master/pic/other/so1so.png)[| 头条号 ](https://gitee.com/weharmony/docs/raw/master/pic/other/tt.png)[| gitee ](https://weharmony.gitee.io/)[| github ](https://weharmony.github.io/) ## **Fork Me** -注解几乎占用了所有的空闲时间,每天都会更新,每天都有新感悟,一行行源码在不断的刷新和拓展对内核知识的认知边界. 对已经关注和fork的同学请及时同步最新的注解内容. 内核知识点体量实在太过巨大,跟软件一样,会存在bug,但会反复修正完善,力求言简意赅,词达本意. +注解几乎占用了所有的空闲时间,每天都会更新,每天都有新感悟,一行行源码在不断的刷新和拓展对内核知识的认知边界. 对已经关注和fork的同学请及时同步最新的注解内容. 内核知识点体量实在太过巨大,跟软件一样,会存在bug,但会反复Debug. ### **有哪些特殊的记号** @@ -209,5 +205,3 @@ * [![鸿蒙内核源码分析](https://gitee.com/weharmony/docs/raw/master/pic/other/so1so.png)](https://gitee.com/weharmony/docs/raw/master/pic/other/so1so.png) * 各大站点搜 **「鸿蒙内核源码分析」**.欢迎转载,请注明出处. - -* [进入 >> oschina ](https://my.oschina.net/weharmony)[| csdn ](https://blog.csdn.net/kuangyufei)[| 51cto ](https://harmonyos.51cto.com/column/34)[| 简书 ](https://www.jianshu.com/u/f7f5bf861106)[| 掘金 ](https://juejin.cn/user/756888642000808)[| harmony ](https://weharmony.gitee.io/) \ No newline at end of file diff --git a/kernel/base/include/los_task_pri.h b/kernel/base/include/los_task_pri.h index e7c80e7c2b05010e06ce4424006075e1a8bfbafd..2279bb66840bc8821de7331faa4335906108dd25 100644 --- a/kernel/base/include/los_task_pri.h +++ b/kernel/base/include/los_task_pri.h @@ -301,7 +301,7 @@ extern SPIN_LOCK_S g_taskSpin;//任务自旋锁 #define OS_TCB_NAME_LEN 32 typedef struct { - VOID *stackPointer; /**< Task stack pointer */ //栈指针SP,任务当前执行栈的位置(用户栈和内核栈切换) + VOID *stackPointer; /**< Task stack pointer */ //内核栈指针位置(SP) UINT16 taskStatus; /**< Task status */ //各种状态标签,可以拥有多种标签,按位标识 UINT16 priority; /**< Task priority */ //任务优先级[0:31],默认是31级 UINT16 policy; //任务的调度方式(三种 .. LOS_SCHED_RR ) diff --git a/kernel/extended/dynload/include/los_ld_elf_pri.h b/kernel/extended/dynload/include/los_ld_elf_pri.h index 39e8594980dc37e95fa3fc3e442442eb54c548a1..aa83f6fdf2d410407da617dc90b7620e9363b6b2 100644 --- a/kernel/extended/dynload/include/los_ld_elf_pri.h +++ b/kernel/extended/dynload/include/los_ld_elf_pri.h @@ -44,22 +44,23 @@ extern "C" { #define LD_EI_NIDENT 16 typedef struct { - UINT8 elfIdent[LD_EI_NIDENT]; /* Magic number and other info */ - UINT16 elfType; /* Object file type */ - UINT16 elfMachine; /* Architecture */ - UINT32 elfVersion; /* Object file version */ - UINT32 elfEntry; /* Entry point virtual address */ - UINT32 elfPhoff; /* Program header table file offset */ - UINT32 elfShoff; /* Section header table file offset */ - UINT32 elfFlags; /* Processor-specific flags */ - UINT16 elfHeadSize; /* ELF header size in bytes */ - UINT16 elfPhEntSize; /* Program header table entry size */ - UINT16 elfPhNum; /* Program header table entry count */ - UINT16 elfShEntSize; /* Section header table entry size */ - UINT16 elfShNum; /* Section header table entry count */ - UINT16 elfShStrIndex; /* Section header string table index */ + UINT8 elfIdent[LD_EI_NIDENT]; /* Magic number and other info *///含前16个字节,又可细分成class、data、version等字段,具体含义不用太关心,只需知道前4个字节点包含”ELF”关键字,这样可以判断当前文件是否是ELF格式; + UINT16 elfType; /* Object file type *///表示具体ELF类型,可重定位文件/可执行文件/共享库文件,显然这里是一个可执行文件;e_machine表示执行的机器平台,这里是x86_64; + UINT16 elfMachine; /* Architecture *///表示cpu架构 + UINT32 elfVersion; /* Object file version *///表示文件版本号,这里的1表示初始版本号; + UINT32 elfEntry; /* Entry point virtual address *///对应”Entry point address”,程序入口函数地址,通过进程虚拟地址空间地址(0x400440)表达; + UINT32 elfPhoff; /* Program header table file offset *///对应“Start of program headers”,表示program header table在文件内的偏移位置,这里是从第64号字节(假设初始为0号字节)开始; + UINT32 elfShoff; /* Section header table file offset *///对应”Start of section headers”,表示section header table在文件内的偏移位置,这里是从第4472号字节开始,靠近文件尾部; + UINT32 elfFlags; /* Processor-specific flags *///表示与CPU处理器架构相关的信息,这里为零; + UINT16 elfHeadSize; /* ELF header size in bytes *///对应”Size of this header”,表示本ELF header自身的长度,这里为64个字节,回看前面的e_phoff为64,说明ELF header后紧跟着program header table; + UINT16 elfPhEntSize; /* Program header table entry size *///对应“Size of program headers”,表示program header table中每个元素的大小,这里为56个字节; + UINT16 elfPhNum; /* Program header table entry count *///对应”Number of program headers”,表示program header table中元素个数,这里为9个; + UINT16 elfShEntSize; /* Section header table entry size *///e_shentsize 对应”Size of section headers”,表示section header table中每个元素的大小,这里为64个字节; + UINT16 elfShNum; /* Section header table entry count *///e_shnum 对应”Number of section headers”,表示section header table中元素的个数,这里为30个; + UINT16 elfShStrIndex; /* Section header string table index *///e_shstrndx 对应”Section header string table index”,表示描述各section字符名称的string table在section header table中的下标,详见后文对string table的介绍。 } LDElf32Ehdr; + typedef struct { UINT8 elfIdent[LD_EI_NIDENT]; /* Magic number and other info */ UINT16 elfType; /* Object file type */ @@ -220,18 +221,19 @@ typedef struct { /* Section header */ typedef struct { - UINT32 shName; /* Section name (string tbl index) */ - UINT32 shType; /* Section type */ - UINT32 shFlags; /* Section flags */ - UINT32 shAddr; /* Section virtual addr at execution */ - UINT32 shOffset; /* Section file offset */ - UINT32 shSize; /* Section size in bytes */ - UINT32 shLink; /* Link to another section */ - UINT32 shInfo; /* Additional section information */ - UINT32 shAddrAlign; /* Section alignment */ - UINT32 shEntSize; /* Entry size if section holds table */ + UINT32 shName; /* Section name (string tbl index) *///表示每个区的名字 + UINT32 shType; /* Section type *///表示每个区的功能 + UINT32 shFlags; /* Section flags *///表示每个区的属性 + UINT32 shAddr; /* Section virtual addr at execution *///表示每个区的进程映射地址 + UINT32 shOffset; /* Section file offset *///表示文件内偏移 + UINT32 shSize; /* Section size in bytes *///表示区的大小 + UINT32 shLink; /* Link to another section *///Link和Info记录不同类型区的相关信息 + UINT32 shInfo; /* Additional section information *///Link和Info记录不同类型区的相关信息 + UINT32 shAddrAlign; /* Section alignment *///表示区的对齐单位 + UINT32 shEntSize; /* Entry size if section holds table *///表示区中每个元素的大小(如果该区为一个数组的话,否则该值为0) } LDElf32Shdr; + typedef struct { UINT32 shName; /* Section name (string tbl index) */ UINT32 shType; /* Section type */ @@ -278,14 +280,15 @@ typedef struct { /* Symbol table */ typedef struct { - UINT32 stName; /* Symbol table name (string tbl index) */ - UINT32 stValue; /* Symbol table value */ - UINT32 stSize; /* Symbol table size */ - UINT8 stInfo; /* Symbol table type and binding */ + UINT32 stName; /* Symbol table name (string tbl index) *///表示符号对应的源码字符串,为对应String Table中的索引 + UINT32 stValue; /* Symbol table value *///表示符号对应的数值 + UINT32 stSize; /* Symbol table size *///表示符号对应数值的空间占用大小 + UINT8 stInfo; /* Symbol table type and binding *///表示符号的相关信息 如符号类型(变量符号、函数符号) UINT8 stOther; /* Symbol table visibility */ - UINT16 stShndx; /* Section table index */ + UINT16 stShndx; /* Section table index *///表示与该符号相关的区的索引,例如函数符号与对应的代码区相关 } LDElf32Sym; + typedef struct { UINT32 stName; /* Symbol table name (string tbl index) */ UINT8 stInfo; /* Symbol table type and binding */ diff --git a/zzz/git/push.sh b/zzz/git/push.sh index 6f417558b8523ace607d4f8fb5f548a29ff4654c..5c0432420203aa10539960f3570e32ca3ee77146 100644 --- a/zzz/git/push.sh +++ b/zzz/git/push.sh @@ -1,5 +1,5 @@ git add -A -git commit -m '注解0号进程 +git commit -m 'elf 结构体注解 百万汉字注解 + 百篇博客分析 => 挖透鸿蒙内核源码 https://my.oschina.net/weharmony '