From 547a4b3582581da3321c82b7e19114c165db0c94 Mon Sep 17 00:00:00 2001 From: kuangyufei Date: Wed, 30 Jun 2021 10:06:44 +0800 Subject: [PATCH] =?UTF-8?q?=20http://weharmonyos.com=20=E4=B8=8A=E7=BA=BF?= =?UTF-8?q?=20=20=20=20=20=E7=99=BE=E4=B8=87=E6=B1=89=E5=AD=97=E6=B3=A8?= =?UTF-8?q?=E8=A7=A3=20+=20=E7=99=BE=E7=AF=87=E5=8D=9A=E5=AE=A2=E5=88=86?= =?UTF-8?q?=E6=9E=90=20=3D>=20=E6=8C=96=E9=80=8F=E9=B8=BF=E8=92=99?= =?UTF-8?q?=E5=86=85=E6=A0=B8=E6=BA=90=E7=A0=81=20=20=20=20=20=E5=8D=9A?= =?UTF-8?q?=E5=AE=A2=E8=BE=93=E5=87=BA=E7=AB=99=E7=82=B9(=E5=9B=BD?= =?UTF-8?q?=E5=86=85):https://weharmonyos.com=20=E6=88=96=20http://8.134.1?= =?UTF-8?q?22.205=20=20=20=20=20=E5=8D=9A=E5=AE=A2=E8=BE=93=E5=87=BA?= =?UTF-8?q?=E7=AB=99=E7=82=B9(=E5=9B=BD=E5=A4=96):https://weharmony.github?= =?UTF-8?q?.io=20=20=20=20=20=E6=B3=A8=E8=A7=A3=E6=96=87=E4=BB=B6=E7=B3=BB?= =?UTF-8?q?=E7=BB=9F:https://gitee.com/weharmony/third=5Fparty=5FNuttX=20?= =?UTF-8?q?=20=20=20=20=E6=B3=A8=E8=A7=A3=E5=8D=8F=E8=AE=AE=E6=A0=88:https?= =?UTF-8?q?://gitee.com/weharmony/third=5Fparty=5Flwip?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 138 +++++++++++++++---------------- compat/posix/src/misc.c | 1 + fs/fat/os_adapt/fatfs.c | 4 +- fs/jffs2/src/vfs_jffs2.c | 10 +-- fs/vfs/include/vnode.h | 13 +-- kernel/base/include/los_signal.h | 2 +- shell/full/include/shcmd.h | 18 ++-- shell/full/src/base/shcmd.c | 44 +++++----- shell/full/src/base/shmsg.c | 6 +- syscall/misc_syscall.c | 14 ++-- syscall/vm_syscall.c | 2 +- zzz/git/push.sh | 2 +- 12 files changed, 128 insertions(+), 126 deletions(-) diff --git a/README.md b/README.md index aca9c985..1cb0d636 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ -[OpenHarmony | 鸿蒙研究站 | WeHarmony](https://openharmony.github.io/) **[ < 国内](https://openharmony.github.io/)[ | 国外 >](https://weharmony.github.io/)** +[OpenHarmony | 鸿蒙研究站 | WeHarmony](http://weharmonyos.com/) **[ < 国内](http://weharmonyos.com/)[ | 国外 >](https://weharmony.github.io/)** -[![在这里插入图片描述](https://gitee.com/weharmony/docs/raw/master/pic/other/io.png)](https://openharmony.github.io/) +[![在这里插入图片描述](https://gitee.com/weharmony/docs/raw/master/pic/other/io.png)](http://weharmonyos.com/) 百篇博客系列篇.本篇为: @@ -17,19 +17,19 @@ ### 几点说明 -* 百万汉字注解仓库:[kernel_liteos_a_note](https://gitee.com/weharmony/kernel_liteos_a_note) 是在 OpenHarmony 的 [kernel_liteos_a](https://gitee.com/openharmony/kernel_liteos_a) (鸿蒙轻内核项目)基础上给源码加上中文注解的版本.加注版与官方最新源码保持同步. +* 百万汉字注解仓库:[kernel_liteos_a_note](https://gitee.com/weharmony/kernel_liteos_a_note) 是在 OpenHarmony 的 [kernel_liteos_a](https://gitee.com/openharmony/kernel_liteos_a) (鸿蒙轻内核项目)基础上给源码加上中文注解的版本.加注版与官方最新源码每月同步. * 百篇博客分析地址: - * 国内: [ https://weharmony.21cloudbox.com/weharmony](https://weharmony.21cloudbox.com/weharmony) + * 国内: [ http://weharmonyos.com/weharmony](http://weharmonyos.com/weharmony) * 国外: [ https://weharmony.github.io/weharmony](https://weharmony.github.io/weharmony) -* [OpenHarmony开发者文档](https://weharmony.github.io/openharmony) 是对官方文档 [docs](https://gitee.com/openharmony/docs) 做的非常炫酷的静态站点,支持侧边栏/面包屑/搜索/中英文,非常方便的查看官方文档,大大提高学习和开发效率. - * 国内: [https://weharmony.21cloudbox.com/openharmony](https://weharmony.21cloudbox.com/openharmony) +* [OpenHarmony开发者文档](http://weharmonyos.com/openharmony) 是对官方文档 [docs](https://gitee.com/openharmony/docs) 做的非常炫酷的静态站点,支持侧边栏/面包屑/搜索/中英文,非常方便的查看官方文档,大大提高学习和开发效率. + * 国内: [http://weharmonyos.com/openharmony](http://weharmonyos.com/openharmony) * 国外: [https://weharmony.github.io/openharmony](https://weharmony.github.io/openharmony) -* [下载.鸿蒙源码分析.离线文档 < 国内](https://weharmony.21cloudbox.com/history.html)[ | 国外 > ](https://weharmony.github.io/history.html) +* [下载.鸿蒙源码分析.离线文档 < 国内](http://weharmonyos.com/history.html)[ | 国外 > ](https://weharmony.github.io/history.html) -* [加入兴趣小组.微信群聊 < 国内](https://weharmony.21cloudbox.com/qun.html)[ | 国外 > ](https://weharmony.github.io/qun.html) +* [加入兴趣小组.微信群聊 < 国内](http://weharmonyos.com/qun.html)[ | 国外 > ](https://weharmony.github.io/qun.html) ### **为何要精读内核源码?** @@ -76,126 +76,126 @@ 与代码有bug需不断debug一样,文章和注解内容会存在不少错漏之处,请多包涵,但会反复修正,持续更新,`.xx`代表修改的次数,精雕细琢,言简意赅,力求打造精品内容。 -* [v57.xx 鸿蒙内核源码分析(编译过程篇) | 简单案例窥视GCC编译全过程 ](https://my.oschina.net/weharmony/blog/5064209) **[ | 51](https://harmonyos.51cto.com/posts/5032)[ .c](https://blog.csdn.net/kuangyufei/article/details/117419679)[ .h](https://weharmony.gitee.io/57_编译过程篇.html)[ .o](https://my.oschina.net/weharmony)** +* [v57.xx 鸿蒙内核源码分析(编译过程篇) | 简单案例窥视GCC编译全过程 ](https://my.oschina.net/weharmony/blog/5064209) **[ | 51](https://harmonyos.51cto.com/posts/5032)[ .c](https://blog.csdn.net/kuangyufei/article/details/117419679)[ .h](http://weharmonyos.com/57_编译过程篇.html)[ .o](https://my.oschina.net/weharmony)** -* [v56.xx 鸿蒙内核源码分析(进程映像篇) | ELF是如何被加载运行的? ](https://my.oschina.net/weharmony/blog/5060359) **[ | 51](https://harmonyos.51cto.com/posts/4815)[ .c](https://blog.csdn.net/kuangyufei/article/details/117325933)[ .h](https://weharmony.gitee.io/56_进程映像篇.html)[ .o](https://my.oschina.net/weharmony)** +* [v56.xx 鸿蒙内核源码分析(进程映像篇) | ELF是如何被加载运行的? ](https://my.oschina.net/weharmony/blog/5060359) **[ | 51](https://harmonyos.51cto.com/posts/4815)[ .c](https://blog.csdn.net/kuangyufei/article/details/117325933)[ .h](http://weharmonyos.com/56_进程映像篇.html)[ .o](https://my.oschina.net/weharmony)** -* [v55.xx 鸿蒙内核源码分析(重定位篇) | 与国际接轨的对外部发言人 ](https://my.oschina.net/weharmony/blog/5055124) **[ | 51](https://harmonyos.51cto.com/posts/4519)[ .c](https://blog.csdn.net/kuangyufei/article/details/117110422)[ .h](https://weharmony.gitee.io/55_重定位篇.html)[ .o](https://my.oschina.net/weharmony)** +* [v55.xx 鸿蒙内核源码分析(重定位篇) | 与国际接轨的对外部发言人 ](https://my.oschina.net/weharmony/blog/5055124) **[ | 51](https://harmonyos.51cto.com/posts/4519)[ .c](https://blog.csdn.net/kuangyufei/article/details/117110422)[ .h](http://weharmonyos.com/55_重定位篇.html)[ .o](https://my.oschina.net/weharmony)** -* [v54.xx 鸿蒙内核源码分析(静态链接篇) | 完整小项目看透静态链接过程 ](https://my.oschina.net/weharmony/blog/5049918) **[ | 51](https://harmonyos.51cto.com/posts/4430)[ .c](https://blog.csdn.net/kuangyufei/article/details/116835578)[ .h](https://weharmony.gitee.io/54_静态链接篇.html)[ .o](https://my.oschina.net/weharmony)** +* [v54.xx 鸿蒙内核源码分析(静态链接篇) | 完整小项目看透静态链接过程 ](https://my.oschina.net/weharmony/blog/5049918) **[ | 51](https://harmonyos.51cto.com/posts/4430)[ .c](https://blog.csdn.net/kuangyufei/article/details/116835578)[ .h](http://weharmonyos.com/54_静态链接篇.html)[ .o](https://my.oschina.net/weharmony)** -* [v53.xx 鸿蒙内核源码分析(ELF解析篇) | 你要忘了她姐俩你就不是银 ](https://my.oschina.net/weharmony/blog/5048746) **[ | 51](https://harmonyos.51cto.com/posts/4413)[ .c](https://blog.csdn.net/kuangyufei/article/details/116781446)[ .h](https://weharmony.gitee.io/53_ELF解析篇.html)[ .o](https://my.oschina.net/weharmony)** +* [v53.xx 鸿蒙内核源码分析(ELF解析篇) | 你要忘了她姐俩你就不是银 ](https://my.oschina.net/weharmony/blog/5048746) **[ | 51](https://harmonyos.51cto.com/posts/4413)[ .c](https://blog.csdn.net/kuangyufei/article/details/116781446)[ .h](http://weharmonyos.com/53_ELF解析篇.html)[ .o](https://my.oschina.net/weharmony)** -* [v52.xx 鸿蒙内核源码分析(静态站点篇) | 五一哪也没去就干了这事 ](https://my.oschina.net/weharmony/blog/5042657) **[ | 51](https://harmonyos.51cto.com/posts/4312)[ .c](https://blog.csdn.net/kuangyufei/article/details/116517461)[ .h](https://weharmony.gitee.io/blog/52_静态站点篇.html)[ .o](https://my.oschina.net/weharmony)** +* [v52.xx 鸿蒙内核源码分析(静态站点篇) | 五一哪也没去就干了这事 ](https://my.oschina.net/weharmony/blog/5042657) **[ | 51](https://harmonyos.51cto.com/posts/4312)[ .c](https://blog.csdn.net/kuangyufei/article/details/116517461)[ .h](http://weharmonyos.com/blog/52_静态站点篇.html)[ .o](https://my.oschina.net/weharmony)** -* [v51.xx 鸿蒙内核源码分析(ELF格式篇) | 应用程序入口并不是main ](https://my.oschina.net/weharmony/blog/5030288) **[ | 51](https://harmonyos.51cto.com/column/34)[ .c](https://blog.csdn.net/kuangyufei/article/details/116097977)[ .h](https://weharmony.gitee.io/blog/51_ELF格式篇.html)[ .o](https://my.oschina.net/weharmony)** +* [v51.xx 鸿蒙内核源码分析(ELF格式篇) | 应用程序入口并不是main ](https://my.oschina.net/weharmony/blog/5030288) **[ | 51](https://harmonyos.51cto.com/column/34)[ .c](https://blog.csdn.net/kuangyufei/article/details/116097977)[ .h](http://weharmonyos.com/blog/51_ELF格式篇.html)[ .o](https://my.oschina.net/weharmony)** -* [v50.xx 鸿蒙内核源码分析(编译环境篇) | 编译鸿蒙看这篇或许真的够了 ](https://my.oschina.net/weharmony/blog/5028613) **[ | 51](https://harmonyos.51cto.com/column/34)[ .c](https://blog.csdn.net/kuangyufei/article/details/116042551)[ .h](https://weharmony.gitee.io/blog/50_编译环境篇.html) [ .o](https://my.oschina.net/weharmony)** +* [v50.xx 鸿蒙内核源码分析(编译环境篇) | 编译鸿蒙看这篇或许真的够了 ](https://my.oschina.net/weharmony/blog/5028613) **[ | 51](https://harmonyos.51cto.com/column/34)[ .c](https://blog.csdn.net/kuangyufei/article/details/116042551)[ .h](http://weharmonyos.com/blog/50_编译环境篇.html) [ .o](https://my.oschina.net/weharmony)** -* [v49.xx 鸿蒙内核源码分析(信号消费篇) | 谁让CPU连续四次换栈运行 ](https://my.oschina.net/weharmony/blog/5027224) **[ | 51](https://harmonyos.51cto.com/column/34)[ .c](https://blog.csdn.net/kuangyufei/article/details/115958293)[ .h](https://weharmony.gitee.io/blog/49_信号消费篇.html) [ .o](https://my.oschina.net/weharmony)** +* [v49.xx 鸿蒙内核源码分析(信号消费篇) | 谁让CPU连续四次换栈运行 ](https://my.oschina.net/weharmony/blog/5027224) **[ | 51](https://harmonyos.51cto.com/column/34)[ .c](https://blog.csdn.net/kuangyufei/article/details/115958293)[ .h](http://weharmonyos.com/blog/49_信号消费篇.html) [ .o](https://my.oschina.net/weharmony)** -* [v48.xx 鸿蒙内核源码分析(信号生产篇) | 年过半百,依然活力十足 ](https://my.oschina.net/weharmony/blog/5022149) **[ | 51](https://harmonyos.51cto.com/column/34)[ .c](https://blog.csdn.net/kuangyufei/article/details/115768099)[ .h](https://weharmony.gitee.io/blog/48_信号生产篇.html) [ .o](https://my.oschina.net/weharmony)** +* [v48.xx 鸿蒙内核源码分析(信号生产篇) | 年过半百,依然活力十足 ](https://my.oschina.net/weharmony/blog/5022149) **[ | 51](https://harmonyos.51cto.com/column/34)[ .c](https://blog.csdn.net/kuangyufei/article/details/115768099)[ .h](http://weharmonyos.com/blog/48_信号生产篇.html) [ .o](https://my.oschina.net/weharmony)** -* [v47.xx 鸿蒙内核源码分析(进程回收篇) | 临终前如何向老祖宗托孤 ](https://my.oschina.net/weharmony/blog/5017716) **[ | 51](https://harmonyos.51cto.com/column/34)[ .c](https://blog.csdn.net/kuangyufei/article/details/115672752)[ .h](https://weharmony.gitee.io/blog/47_进程回收篇.html) [ .o](https://my.oschina.net/weharmony)** +* [v47.xx 鸿蒙内核源码分析(进程回收篇) | 临终前如何向老祖宗托孤 ](https://my.oschina.net/weharmony/blog/5017716) **[ | 51](https://harmonyos.51cto.com/column/34)[ .c](https://blog.csdn.net/kuangyufei/article/details/115672752)[ .h](http://weharmonyos.com/blog/47_进程回收篇.html) [ .o](https://my.oschina.net/weharmony)** -* [v46.xx 鸿蒙内核源码分析(特殊进程篇) | 龙生龙凤生凤老鼠生儿会打洞 ](https://my.oschina.net/weharmony/blog/5014444) **[ | 51](https://harmonyos.51cto.com/column/34)[ .c](https://blog.csdn.net/kuangyufei/article/details/115556505)[ .h](https://weharmony.gitee.io/blog/46_特殊进程篇.html) [ .o](https://my.oschina.net/weharmony)** +* [v46.xx 鸿蒙内核源码分析(特殊进程篇) | 龙生龙凤生凤老鼠生儿会打洞 ](https://my.oschina.net/weharmony/blog/5014444) **[ | 51](https://harmonyos.51cto.com/column/34)[ .c](https://blog.csdn.net/kuangyufei/article/details/115556505)[ .h](http://weharmonyos.com/blog/46_特殊进程篇.html) [ .o](https://my.oschina.net/weharmony)** -* [v45.xx 鸿蒙内核源码分析(Fork篇) | 一次调用,两次返回 ](https://my.oschina.net/weharmony/blog/5010301) **[ | 51](https://harmonyos.51cto.com/column/34)[ .c](https://blog.csdn.net/kuangyufei/article/details/115467961)[ .h](https://weharmony.gitee.io/blog/45_Fork篇.html) [ .o](https://my.oschina.net/weharmony)** +* [v45.xx 鸿蒙内核源码分析(Fork篇) | 一次调用,两次返回 ](https://my.oschina.net/weharmony/blog/5010301) **[ | 51](https://harmonyos.51cto.com/column/34)[ .c](https://blog.csdn.net/kuangyufei/article/details/115467961)[ .h](http://weharmonyos.com/blog/45_Fork篇.html) [ .o](https://my.oschina.net/weharmony)** -* [v44.xx 鸿蒙内核源码分析(中断管理篇) | 江湖从此不再怕中断 ](https://my.oschina.net/weharmony/blog/4995800) **[ | 51](https://harmonyos.51cto.com/column/34)[ .c](https://blog.csdn.net/kuangyufei/article/details/115130055)[ .h](https://weharmony.gitee.io/blog/44_中断管理篇.html) [ .o](https://my.oschina.net/weharmony)** +* [v44.xx 鸿蒙内核源码分析(中断管理篇) | 江湖从此不再怕中断 ](https://my.oschina.net/weharmony/blog/4995800) **[ | 51](https://harmonyos.51cto.com/column/34)[ .c](https://blog.csdn.net/kuangyufei/article/details/115130055)[ .h](http://weharmonyos.com/blog/44_中断管理篇.html) [ .o](https://my.oschina.net/weharmony)** -* [v43.xx 鸿蒙内核源码分析(中断概念篇) | 海公公的日常工作 ](https://my.oschina.net/weharmony/blog/4992750) **[ | 51](https://harmonyos.51cto.com/column/34)[ .c](https://blog.csdn.net/kuangyufei/article/details/115014442)[ .h](https://weharmony.gitee.io/blog/43_中断概念篇.html) [ .o](https://my.oschina.net/weharmony)** +* [v43.xx 鸿蒙内核源码分析(中断概念篇) | 海公公的日常工作 ](https://my.oschina.net/weharmony/blog/4992750) **[ | 51](https://harmonyos.51cto.com/column/34)[ .c](https://blog.csdn.net/kuangyufei/article/details/115014442)[ .h](http://weharmonyos.com/blog/43_中断概念篇.html) [ .o](https://my.oschina.net/weharmony)** -* [v42.xx 鸿蒙内核源码分析(中断切换篇) | 系统因中断活力四射](https://my.oschina.net/weharmony/blog/4990948) **[ | 51](https://harmonyos.51cto.com/column/34)[ .c](https://blog.csdn.net/kuangyufei/article/details/114988891)[ .h](https://weharmony.gitee.io/blog/42_中断切换篇.html) [ .o](https://my.oschina.net/weharmony)** +* [v42.xx 鸿蒙内核源码分析(中断切换篇) | 系统因中断活力四射](https://my.oschina.net/weharmony/blog/4990948) **[ | 51](https://harmonyos.51cto.com/column/34)[ .c](https://blog.csdn.net/kuangyufei/article/details/114988891)[ .h](http://weharmonyos.com/blog/42_中断切换篇.html) [ .o](https://my.oschina.net/weharmony)** -* [v41.xx 鸿蒙内核源码分析(任务切换篇) | 看汇编如何切换任务 ](https://my.oschina.net/weharmony/blog/4988628) **[ | 51](https://harmonyos.51cto.com/column/34)[ .c](https://blog.csdn.net/kuangyufei/article/details/114890180)[ .h](https://weharmony.gitee.io/blog/41_任务切换篇.html) [ .o](https://my.oschina.net/weharmony)** +* [v41.xx 鸿蒙内核源码分析(任务切换篇) | 看汇编如何切换任务 ](https://my.oschina.net/weharmony/blog/4988628) **[ | 51](https://harmonyos.51cto.com/column/34)[ .c](https://blog.csdn.net/kuangyufei/article/details/114890180)[ .h](http://weharmonyos.com/blog/41_任务切换篇.html) [ .o](https://my.oschina.net/weharmony)** -* [v40.xx 鸿蒙内核源码分析(汇编汇总篇) | 汇编可爱如邻家女孩 ](https://my.oschina.net/weharmony/blog/4977924) **[ | 51](https://harmonyos.51cto.com/column/34)[ .c](https://blog.csdn.net/kuangyufei/article/details/114597179)[ .h](https://weharmony.gitee.io/blog/40_汇编汇总篇.html) [ .o](https://my.oschina.net/weharmony)** +* [v40.xx 鸿蒙内核源码分析(汇编汇总篇) | 汇编可爱如邻家女孩 ](https://my.oschina.net/weharmony/blog/4977924) **[ | 51](https://harmonyos.51cto.com/column/34)[ .c](https://blog.csdn.net/kuangyufei/article/details/114597179)[ .h](http://weharmonyos.com/blog/40_汇编汇总篇.html) [ .o](https://my.oschina.net/weharmony)** -* [v39.xx 鸿蒙内核源码分析(异常接管篇) | 社会很单纯,复杂的是人 ](https://my.oschina.net/weharmony/blog/4973016) **[ | 51](https://harmonyos.51cto.com/column/34)[ .c](https://blog.csdn.net/kuangyufei/article/details/114438285)[ .h](https://weharmony.gitee.io/blog/39_异常接管篇.html) [ .o](https://my.oschina.net/weharmony)** +* [v39.xx 鸿蒙内核源码分析(异常接管篇) | 社会很单纯,复杂的是人 ](https://my.oschina.net/weharmony/blog/4973016) **[ | 51](https://harmonyos.51cto.com/column/34)[ .c](https://blog.csdn.net/kuangyufei/article/details/114438285)[ .h](http://weharmonyos.com/blog/39_异常接管篇.html) [ .o](https://my.oschina.net/weharmony)** -* [v38.xx 鸿蒙内核源码分析(寄存器篇) | 小强乃宇宙最忙存储器 ](https://my.oschina.net/weharmony/blog/4969487) **[ | 51](https://harmonyos.51cto.com/column/34)[ .c](https://blog.csdn.net/kuangyufei/article/details/114326994)[ .h](https://weharmony.gitee.io/blog/38_寄存器篇.html) [ .o](https://my.oschina.net/weharmony)** +* [v38.xx 鸿蒙内核源码分析(寄存器篇) | 小强乃宇宙最忙存储器 ](https://my.oschina.net/weharmony/blog/4969487) **[ | 51](https://harmonyos.51cto.com/column/34)[ .c](https://blog.csdn.net/kuangyufei/article/details/114326994)[ .h](http://weharmonyos.com/blog/38_寄存器篇.html) [ .o](https://my.oschina.net/weharmony)** -* [v37.xx 鸿蒙内核源码分析(系统调用篇) | 开发者永远的口头禅 ](https://my.oschina.net/weharmony/blog/4967613) **[ | 51](https://harmonyos.51cto.com/column/34)[ .c](https://blog.csdn.net/kuangyufei/article/details/114285166)[ .h](https://weharmony.gitee.io/blog/37_系统调用篇.html) [ .o](https://my.oschina.net/weharmony)** +* [v37.xx 鸿蒙内核源码分析(系统调用篇) | 开发者永远的口头禅 ](https://my.oschina.net/weharmony/blog/4967613) **[ | 51](https://harmonyos.51cto.com/column/34)[ .c](https://blog.csdn.net/kuangyufei/article/details/114285166)[ .h](http://weharmonyos.com/blog/37_系统调用篇.html) [ .o](https://my.oschina.net/weharmony)** -* [v36.xx 鸿蒙内核源码分析(工作模式篇) | CPU是韦小宝,七个老婆 ](https://my.oschina.net/weharmony/blog/4965052) **[ | 51](https://harmonyos.51cto.com/column/34)[ .c](https://blog.csdn.net/kuangyufei/article/details/114168567)[ .h](https://weharmony.gitee.io/blog/36_工作模式篇.html) [ .o](https://my.oschina.net/weharmony)** +* [v36.xx 鸿蒙内核源码分析(工作模式篇) | CPU是韦小宝,七个老婆 ](https://my.oschina.net/weharmony/blog/4965052) **[ | 51](https://harmonyos.51cto.com/column/34)[ .c](https://blog.csdn.net/kuangyufei/article/details/114168567)[ .h](http://weharmonyos.com/blog/36_工作模式篇.html) [ .o](https://my.oschina.net/weharmony)** -* [v35.xx 鸿蒙内核源码分析(时间管理篇) | 谁是内核基本时间单位 ](https://my.oschina.net/weharmony/blog/4956163) **[ | 51](https://harmonyos.51cto.com/column/34)[ .c](https://blog.csdn.net/kuangyufei/article/details/113867785)[ .h](https://weharmony.gitee.io/blog/35_时间管理篇.html) [ .o](https://my.oschina.net/weharmony)** +* [v35.xx 鸿蒙内核源码分析(时间管理篇) | 谁是内核基本时间单位 ](https://my.oschina.net/weharmony/blog/4956163) **[ | 51](https://harmonyos.51cto.com/column/34)[ .c](https://blog.csdn.net/kuangyufei/article/details/113867785)[ .h](http://weharmonyos.com/blog/35_时间管理篇.html) [ .o](https://my.oschina.net/weharmony)** -* [v34.xx 鸿蒙内核源码分析(原子操作篇) | 谁在为原子操作保驾护航 ](https://my.oschina.net/weharmony/blog/4955290) **[ | 51](https://harmonyos.51cto.com/column/34)[ .c](https://blog.csdn.net/kuangyufei/article/details/113850603)[ .h](https://weharmony.gitee.io/blog/34_原子操作篇.html) [ .o](https://my.oschina.net/weharmony)** +* [v34.xx 鸿蒙内核源码分析(原子操作篇) | 谁在为原子操作保驾护航 ](https://my.oschina.net/weharmony/blog/4955290) **[ | 51](https://harmonyos.51cto.com/column/34)[ .c](https://blog.csdn.net/kuangyufei/article/details/113850603)[ .h](http://weharmonyos.com/blog/34_原子操作篇.html) [ .o](https://my.oschina.net/weharmony)** -* [v33.xx 鸿蒙内核源码分析(消息队列篇) | 进程间如何异步传递大数据 ](https://my.oschina.net/weharmony/blog/4952961) **[ | 51](https://harmonyos.51cto.com/column/34)[ .c](https://blog.csdn.net/kuangyufei/article/details/113815355)[ .h](https://weharmony.gitee.io/blog/33_消息队列篇.html) [ .o](https://my.oschina.net/weharmony)** +* [v33.xx 鸿蒙内核源码分析(消息队列篇) | 进程间如何异步传递大数据 ](https://my.oschina.net/weharmony/blog/4952961) **[ | 51](https://harmonyos.51cto.com/column/34)[ .c](https://blog.csdn.net/kuangyufei/article/details/113815355)[ .h](http://weharmonyos.com/blog/33_消息队列篇.html) [ .o](https://my.oschina.net/weharmony)** -* [v32.xx 鸿蒙内核源码分析(CPU篇) | 整个内核就是一个死循环 ](https://my.oschina.net/weharmony/blog/4952034) **[ | 51](https://harmonyos.51cto.com/column/34)[ .c](https://blog.csdn.net/kuangyufei/article/details/113782749)[ .h](https://weharmony.gitee.io/blog/32_CPU篇.html) [ .o](https://my.oschina.net/weharmony)** +* [v32.xx 鸿蒙内核源码分析(CPU篇) | 整个内核就是一个死循环 ](https://my.oschina.net/weharmony/blog/4952034) **[ | 51](https://harmonyos.51cto.com/column/34)[ .c](https://blog.csdn.net/kuangyufei/article/details/113782749)[ .h](http://weharmonyos.com/blog/32_CPU篇.html) [ .o](https://my.oschina.net/weharmony)** -* [v31.xx 鸿蒙内核源码分析(定时器篇) | 哪个任务的优先级最高 ](https://my.oschina.net/weharmony/blog/4951625) **[ | 51](https://harmonyos.51cto.com/column/34)[ .c](https://blog.csdn.net/kuangyufei/article/details/113774260)[ .h](https://weharmony.gitee.io/blog/31_定时器篇.html) [ .o](https://my.oschina.net/weharmony)** +* [v31.xx 鸿蒙内核源码分析(定时器篇) | 哪个任务的优先级最高 ](https://my.oschina.net/weharmony/blog/4951625) **[ | 51](https://harmonyos.51cto.com/column/34)[ .c](https://blog.csdn.net/kuangyufei/article/details/113774260)[ .h](http://weharmonyos.com/blog/31_定时器篇.html) [ .o](https://my.oschina.net/weharmony)** -* [v30.xx 鸿蒙内核源码分析(事件控制篇) | 任务间多对多的同步方案 ](https://my.oschina.net/weharmony/blog/4950956) **[ | 51](https://harmonyos.51cto.com/column/34)[ .c](https://blog.csdn.net/kuangyufei/article/details/113759481)[ .h](https://weharmony.gitee.io/blog/30_事件控制篇.html) [ .o](https://my.oschina.net/weharmony)** +* [v30.xx 鸿蒙内核源码分析(事件控制篇) | 任务间多对多的同步方案 ](https://my.oschina.net/weharmony/blog/4950956) **[ | 51](https://harmonyos.51cto.com/column/34)[ .c](https://blog.csdn.net/kuangyufei/article/details/113759481)[ .h](http://weharmonyos.com/blog/30_事件控制篇.html) [ .o](https://my.oschina.net/weharmony)** -* [v29.xx 鸿蒙内核源码分析(信号量篇) | 谁在负责解决任务的同步 ](https://my.oschina.net/weharmony/blog/4949720) **[ | 51](https://harmonyos.51cto.com/column/34)[ .c](https://blog.csdn.net/kuangyufei/article/details/113744267)[ .h](https://weharmony.gitee.io/blog/29_信号量篇.html) [ .o](https://my.oschina.net/weharmony)** +* [v29.xx 鸿蒙内核源码分析(信号量篇) | 谁在负责解决任务的同步 ](https://my.oschina.net/weharmony/blog/4949720) **[ | 51](https://harmonyos.51cto.com/column/34)[ .c](https://blog.csdn.net/kuangyufei/article/details/113744267)[ .h](http://weharmonyos.com/blog/29_信号量篇.html) [ .o](https://my.oschina.net/weharmony)** -* [v28.xx 鸿蒙内核源码分析(进程通讯篇) | 九种进程间通讯方式速揽 ](https://my.oschina.net/weharmony/blog/4947398) **[ | 51](https://harmonyos.51cto.com/column/34)[ .c](https://blog.csdn.net/kuangyufei/article/details/113700751)[ .h](https://weharmony.gitee.io/blog/28_进程通讯篇.html) [ .o](https://my.oschina.net/weharmony)** +* [v28.xx 鸿蒙内核源码分析(进程通讯篇) | 九种进程间通讯方式速揽 ](https://my.oschina.net/weharmony/blog/4947398) **[ | 51](https://harmonyos.51cto.com/column/34)[ .c](https://blog.csdn.net/kuangyufei/article/details/113700751)[ .h](http://weharmonyos.com/blog/28_进程通讯篇.html) [ .o](https://my.oschina.net/weharmony)** -* [v27.xx 鸿蒙内核源码分析(互斥锁篇) | 比自旋锁丰满的互斥锁 ](https://my.oschina.net/weharmony/blog/4945465) **[ | 51](https://harmonyos.51cto.com/column/34)[ .c](https://blog.csdn.net/kuangyufei/article/details/113660357)[ .h](https://weharmony.gitee.io/blog/27_互斥锁篇.html) [ .o](https://my.oschina.net/weharmony)** +* [v27.xx 鸿蒙内核源码分析(互斥锁篇) | 比自旋锁丰满的互斥锁 ](https://my.oschina.net/weharmony/blog/4945465) **[ | 51](https://harmonyos.51cto.com/column/34)[ .c](https://blog.csdn.net/kuangyufei/article/details/113660357)[ .h](http://weharmonyos.com/blog/27_互斥锁篇.html) [ .o](https://my.oschina.net/weharmony)** -* [v26.xx 鸿蒙内核源码分析(自旋锁篇) | 自旋锁当立贞节牌坊 ](https://my.oschina.net/weharmony/blog/4944129) **[ | 51](https://harmonyos.51cto.com/column/34)[ .c](https://blog.csdn.net/kuangyufei/article/details/113616250)[ .h](https://weharmony.gitee.io/blog/26_自旋锁篇.html) [ .o](https://my.oschina.net/weharmony)** +* [v26.xx 鸿蒙内核源码分析(自旋锁篇) | 自旋锁当立贞节牌坊 ](https://my.oschina.net/weharmony/blog/4944129) **[ | 51](https://harmonyos.51cto.com/column/34)[ .c](https://blog.csdn.net/kuangyufei/article/details/113616250)[ .h](http://weharmonyos.com/blog/26_自旋锁篇.html) [ .o](https://my.oschina.net/weharmony)** -* [v25.xx 鸿蒙内核源码分析(并发并行篇) | 听过无数遍的两个概念 ](https://my.oschina.net/u/3751245/blog/4940329) **[ | 51](https://harmonyos.51cto.com/column/34)[ .c](https://blog.csdn.net/kuangyufei/article/details/113516222)[ .h](https://weharmony.gitee.io/blog/25_并发并行篇.html) [ .o](https://my.oschina.net/weharmony)** +* [v25.xx 鸿蒙内核源码分析(并发并行篇) | 听过无数遍的两个概念 ](https://my.oschina.net/u/3751245/blog/4940329) **[ | 51](https://harmonyos.51cto.com/column/34)[ .c](https://blog.csdn.net/kuangyufei/article/details/113516222)[ .h](http://weharmonyos.com/blog/25_并发并行篇.html) [ .o](https://my.oschina.net/weharmony)** -* [v24.xx 鸿蒙内核源码分析(进程概念篇) | 进程在管理哪些资源 ](https://my.oschina.net/u/3751245/blog/4937521) **[ | 51](https://harmonyos.51cto.com/column/34)[ .c](https://blog.csdn.net/kuangyufei/article/details/113395872)[ .h](https://weharmony.gitee.io/blog/24_进程概念篇.html) [ .o](https://my.oschina.net/weharmony)** +* [v24.xx 鸿蒙内核源码分析(进程概念篇) | 进程在管理哪些资源 ](https://my.oschina.net/u/3751245/blog/4937521) **[ | 51](https://harmonyos.51cto.com/column/34)[ .c](https://blog.csdn.net/kuangyufei/article/details/113395872)[ .h](http://weharmonyos.com/blog/24_进程概念篇.html) [ .o](https://my.oschina.net/weharmony)** -* [v23.xx 鸿蒙内核源码分析(汇编传参篇) | 如何传递复杂的参数 ](https://my.oschina.net/u/3751245/blog/4927892) **[ | 51](https://harmonyos.51cto.com/column/34)[ .c](https://blog.csdn.net/kuangyufei/article/details/113265990)[ .h](https://weharmony.gitee.io/blog/23_汇编传参篇.html) [ .o](https://my.oschina.net/weharmony)** +* [v23.xx 鸿蒙内核源码分析(汇编传参篇) | 如何传递复杂的参数 ](https://my.oschina.net/u/3751245/blog/4927892) **[ | 51](https://harmonyos.51cto.com/column/34)[ .c](https://blog.csdn.net/kuangyufei/article/details/113265990)[ .h](http://weharmonyos.com/blog/23_汇编传参篇.html) [ .o](https://my.oschina.net/weharmony)** -* [v22.xx 鸿蒙内核源码分析(汇编基础篇) | CPU在哪里打卡上班 ](https://my.oschina.net/u/3751245/blog/4920361) **[ | 51](https://harmonyos.51cto.com/column/34)[ .c](https://blog.csdn.net/kuangyufei/article/details/112986628)[ .h](https://weharmony.gitee.io/blog/22_汇编基础篇.html) [ .o](https://my.oschina.net/weharmony)** +* [v22.xx 鸿蒙内核源码分析(汇编基础篇) | CPU在哪里打卡上班 ](https://my.oschina.net/u/3751245/blog/4920361) **[ | 51](https://harmonyos.51cto.com/column/34)[ .c](https://blog.csdn.net/kuangyufei/article/details/112986628)[ .h](http://weharmonyos.com/blog/22_汇编基础篇.html) [ .o](https://my.oschina.net/weharmony)** -* [v21.xx 鸿蒙内核源码分析(线程概念篇) | 是谁在不断的折腾CPU ](https://my.oschina.net/u/3751245/blog/4915543) **[ | 51](https://harmonyos.51cto.com/column/34)[ .c](https://blog.csdn.net/kuangyufei/article/details/112870193)[ .h](https://weharmony.gitee.io/blog/21_线程概念篇.html) [ .o](https://my.oschina.net/weharmony)** +* [v21.xx 鸿蒙内核源码分析(线程概念篇) | 是谁在不断的折腾CPU ](https://my.oschina.net/u/3751245/blog/4915543) **[ | 51](https://harmonyos.51cto.com/column/34)[ .c](https://blog.csdn.net/kuangyufei/article/details/112870193)[ .h](http://weharmonyos.com/blog/21_线程概念篇.html) [ .o](https://my.oschina.net/weharmony)** -* [v20.xx 鸿蒙内核源码分析(用栈方式篇) | 程序运行场地由谁提供 ](https://my.oschina.net/u/3751245/blog/4893388) **[ | 51](https://harmonyos.51cto.com/column/34)[ .c](https://blog.csdn.net/kuangyufei/article/details/112534331)[ .h](https://weharmony.gitee.io/blog/20_用栈方式篇.html) [ .o](https://my.oschina.net/weharmony)** +* [v20.xx 鸿蒙内核源码分析(用栈方式篇) | 程序运行场地由谁提供 ](https://my.oschina.net/u/3751245/blog/4893388) **[ | 51](https://harmonyos.51cto.com/column/34)[ .c](https://blog.csdn.net/kuangyufei/article/details/112534331)[ .h](http://weharmonyos.com/blog/20_用栈方式篇.html) [ .o](https://my.oschina.net/weharmony)** -* [v19.xx 鸿蒙内核源码分析(位图管理篇) | 谁能一分钱分两半花 ](https://my.oschina.net/u/3751245/blog/4888467) **[ | 51](https://harmonyos.51cto.com/column/34)[ .c](https://blog.csdn.net/kuangyufei/article/details/112394982)[ .h](https://weharmony.gitee.io/blog/19_位图管理篇.html) [ .o](https://my.oschina.net/weharmony)** +* [v19.xx 鸿蒙内核源码分析(位图管理篇) | 谁能一分钱分两半花 ](https://my.oschina.net/u/3751245/blog/4888467) **[ | 51](https://harmonyos.51cto.com/column/34)[ .c](https://blog.csdn.net/kuangyufei/article/details/112394982)[ .h](http://weharmonyos.com/blog/19_位图管理篇.html) [ .o](https://my.oschina.net/weharmony)** -* [v18.xx 鸿蒙内核源码分析(源码结构篇) | 内核每个文件的含义 ](https://my.oschina.net/u/3751245/blog/4869137) **[ | 51](https://harmonyos.51cto.com/column/34)[ .c](https://blog.csdn.net/kuangyufei/article/details/111938348)[ .h](https://weharmony.gitee.io/blog/18_源码结构篇.html) [ .o](https://my.oschina.net/weharmony)** +* [v18.xx 鸿蒙内核源码分析(源码结构篇) | 内核每个文件的含义 ](https://my.oschina.net/u/3751245/blog/4869137) **[ | 51](https://harmonyos.51cto.com/column/34)[ .c](https://blog.csdn.net/kuangyufei/article/details/111938348)[ .h](http://weharmonyos.com/blog/18_源码结构篇.html) [ .o](https://my.oschina.net/weharmony)** -* [v17.xx 鸿蒙内核源码分析(物理内存篇) | 怎么管理物理内存 ](https://my.oschina.net/u/3751245/blog/4842408) **[ | 51](https://harmonyos.51cto.com/column/34)[ .c](https://blog.csdn.net/kuangyufei/article/details/111765600)[ .h](https://weharmony.gitee.io/blog/17_物理内存篇.html) [ .o](https://my.oschina.net/weharmony)** +* [v17.xx 鸿蒙内核源码分析(物理内存篇) | 怎么管理物理内存 ](https://my.oschina.net/u/3751245/blog/4842408) **[ | 51](https://harmonyos.51cto.com/column/34)[ .c](https://blog.csdn.net/kuangyufei/article/details/111765600)[ .h](http://weharmonyos.com/blog/17_物理内存篇.html) [ .o](https://my.oschina.net/weharmony)** -* [v16.xx 鸿蒙内核源码分析(内存规则篇) | 内存管理到底在管什么 ](https://my.oschina.net/u/3751245/blog/4698384) **[ | 51](https://harmonyos.51cto.com/column/34)[ .c](https://blog.csdn.net/kuangyufei/article/details/109437223)[ .h](https://weharmony.gitee.io/blog/16_内存规则篇.html) [ .o](https://my.oschina.net/weharmony)** +* [v16.xx 鸿蒙内核源码分析(内存规则篇) | 内存管理到底在管什么 ](https://my.oschina.net/u/3751245/blog/4698384) **[ | 51](https://harmonyos.51cto.com/column/34)[ .c](https://blog.csdn.net/kuangyufei/article/details/109437223)[ .h](http://weharmonyos.com/blog/16_内存规则篇.html) [ .o](https://my.oschina.net/weharmony)** -* [v15.xx 鸿蒙内核源码分析(内存映射篇) | 虚拟内存虚在哪里 ](https://my.oschina.net/u/3751245/blog/4694841) **[ | 51](https://harmonyos.51cto.com/column/34)[ .c](https://blog.csdn.net/kuangyufei/article/details/109032636)[ .h](https://weharmony.gitee.io/blog/15_内存映射篇.html) [ .o](https://my.oschina.net/weharmony)** +* [v15.xx 鸿蒙内核源码分析(内存映射篇) | 虚拟内存虚在哪里 ](https://my.oschina.net/u/3751245/blog/4694841) **[ | 51](https://harmonyos.51cto.com/column/34)[ .c](https://blog.csdn.net/kuangyufei/article/details/109032636)[ .h](http://weharmonyos.com/blog/15_内存映射篇.html) [ .o](https://my.oschina.net/weharmony)** -* [v14.xx 鸿蒙内核源码分析(内存汇编篇) | 谁是虚拟内存实现的基础 ](https://my.oschina.net/u/3751245/blog/4692156) **[ | 51](https://harmonyos.51cto.com/column/34)[ .c](https://blog.csdn.net/kuangyufei/article/details/108994081)[ .h](https://weharmony.gitee.io/blog/14_内存汇编篇.html) [ .o](https://my.oschina.net/weharmony)** +* [v14.xx 鸿蒙内核源码分析(内存汇编篇) | 谁是虚拟内存实现的基础 ](https://my.oschina.net/u/3751245/blog/4692156) **[ | 51](https://harmonyos.51cto.com/column/34)[ .c](https://blog.csdn.net/kuangyufei/article/details/108994081)[ .h](http://weharmonyos.com/blog/14_内存汇编篇.html) [ .o](https://my.oschina.net/weharmony)** -* [v13.xx 鸿蒙内核源码分析(源码注释篇) | 鸿蒙必定成功,也必然成功 ](https://my.oschina.net/u/3751245/blog/4686747) **[ | 51](https://harmonyos.51cto.com/posts/4049)[ .c](https://blog.csdn.net/kuangyufei/article/details/109251754)[ .h](https://weharmony.gitee.io/blog/13_源码注释篇.html) [ .o](https://my.oschina.net/weharmony)** +* [v13.xx 鸿蒙内核源码分析(源码注释篇) | 鸿蒙必定成功,也必然成功 ](https://my.oschina.net/u/3751245/blog/4686747) **[ | 51](https://harmonyos.51cto.com/posts/4049)[ .c](https://blog.csdn.net/kuangyufei/article/details/109251754)[ .h](http://weharmonyos.com/blog/13_源码注释篇.html) [ .o](https://my.oschina.net/weharmony)** -* [v12.xx 鸿蒙内核源码分析(内存管理篇) | 虚拟内存全景图是怎样的 ](https://my.oschina.net/u/3751245/blog/4652284) **[ | 51](https://harmonyos.51cto.com/column/34)[ .c](https://blog.csdn.net/kuangyufei/article/details/108821442)[ .h](https://weharmony.gitee.io/blog/12_内存管理篇.html) [ .o](https://my.oschina.net/weharmony)** +* [v12.xx 鸿蒙内核源码分析(内存管理篇) | 虚拟内存全景图是怎样的 ](https://my.oschina.net/u/3751245/blog/4652284) **[ | 51](https://harmonyos.51cto.com/column/34)[ .c](https://blog.csdn.net/kuangyufei/article/details/108821442)[ .h](http://weharmonyos.com/blog/12_内存管理篇.html) [ .o](https://my.oschina.net/weharmony)** -* [v11.xx 鸿蒙内核源码分析(内存分配篇) | 内存有哪些分配方式 ](https://my.oschina.net/u/3751245/blog/4646802) **[ | 51](https://harmonyos.51cto.com/column/34)[ .c](https://blog.csdn.net/kuangyufei/article/details/108989906)[ .h](https://weharmony.gitee.io/blog/11_内存分配篇.html) [ .o](https://my.oschina.net/weharmony)** +* [v11.xx 鸿蒙内核源码分析(内存分配篇) | 内存有哪些分配方式 ](https://my.oschina.net/u/3751245/blog/4646802) **[ | 51](https://harmonyos.51cto.com/column/34)[ .c](https://blog.csdn.net/kuangyufei/article/details/108989906)[ .h](http://weharmonyos.com/blog/11_内存分配篇.html) [ .o](https://my.oschina.net/weharmony)** -* [v10.xx 鸿蒙内核源码分析(内存主奴篇) | 皇上和奴才如何相处 ](https://my.oschina.net/u/3751245/blog/4646802) **[ | 51](https://harmonyos.51cto.com/column/34)[ .c](https://blog.csdn.net/kuangyufei/article/details/108723672)[ .h](https://weharmony.gitee.io/blog/10_内存主奴篇.html) [ .o](https://my.oschina.net/weharmony)** +* [v10.xx 鸿蒙内核源码分析(内存主奴篇) | 皇上和奴才如何相处 ](https://my.oschina.net/u/3751245/blog/4646802) **[ | 51](https://harmonyos.51cto.com/column/34)[ .c](https://blog.csdn.net/kuangyufei/article/details/108723672)[ .h](http://weharmonyos.com/blog/10_内存主奴篇.html) [ .o](https://my.oschina.net/weharmony)** -* [v09.xx 鸿蒙内核源码分析(调度故事篇) | 用故事说内核调度过程 ](https://my.oschina.net/u/3751245/blog/4634668) **[ | 51](https://harmonyos.51cto.com/column/34)[ .c](https://blog.csdn.net/kuangyufei/article/details/108745174)[ .h](https://weharmony.gitee.io/blog/09_调度故事篇.html) [ .o](https://my.oschina.net/weharmony)** +* [v09.xx 鸿蒙内核源码分析(调度故事篇) | 用故事说内核调度过程 ](https://my.oschina.net/u/3751245/blog/4634668) **[ | 51](https://harmonyos.51cto.com/column/34)[ .c](https://blog.csdn.net/kuangyufei/article/details/108745174)[ .h](http://weharmonyos.com/blog/09_调度故事篇.html) [ .o](https://my.oschina.net/weharmony)** -* [v08.xx 鸿蒙内核源码分析(总目录) | 百万汉字注解 百篇博客分析 ](https://my.oschina.net/weharmony/blog/4626852) **[ | 51](https://harmonyos.51cto.com/column/34)[ .c](https://blog.csdn.net/kuangyufei/article/details/108727970)[ .h](https://weharmony.gitee.io/blog/08_总目录.html) [ .o](https://my.oschina.net/weharmony)** +* [v08.xx 鸿蒙内核源码分析(总目录) | 百万汉字注解 百篇博客分析 ](https://my.oschina.net/weharmony/blog/4626852) **[ | 51](https://harmonyos.51cto.com/column/34)[ .c](https://blog.csdn.net/kuangyufei/article/details/108727970)[ .h](http://weharmonyos.com/blog/08_总目录.html) [ .o](https://my.oschina.net/weharmony)** -* [v07.xx 鸿蒙内核源码分析(调度机制篇) | 任务是如何被调度执行的 ](https://my.oschina.net/u/3751245/blog/4623040) **[ | 51](https://harmonyos.51cto.com/column/34)[ .c](https://blog.csdn.net/kuangyufei/article/details/108705968)[ .h](https://weharmony.gitee.io/blog/07_调度机制篇.html) [ .o](https://my.oschina.net/weharmony)** +* [v07.xx 鸿蒙内核源码分析(调度机制篇) | 任务是如何被调度执行的 ](https://my.oschina.net/u/3751245/blog/4623040) **[ | 51](https://harmonyos.51cto.com/column/34)[ .c](https://blog.csdn.net/kuangyufei/article/details/108705968)[ .h](http://weharmonyos.com/blog/07_调度机制篇.html) [ .o](https://my.oschina.net/weharmony)** -* [v06.xx 鸿蒙内核源码分析(调度队列篇) | 内核有多少个调度队列 ](https://my.oschina.net/u/3751245/blog/4606916) **[ | 51](https://harmonyos.51cto.com/column/34)[ .c](https://blog.csdn.net/kuangyufei/article/details/108626671)[ .h](https://weharmony.gitee.io/blog/06_调度队列篇.html) [ .o](https://my.oschina.net/weharmony)** +* [v06.xx 鸿蒙内核源码分析(调度队列篇) | 内核有多少个调度队列 ](https://my.oschina.net/u/3751245/blog/4606916) **[ | 51](https://harmonyos.51cto.com/column/34)[ .c](https://blog.csdn.net/kuangyufei/article/details/108626671)[ .h](http://weharmonyos.com/blog/06_调度队列篇.html) [ .o](https://my.oschina.net/weharmony)** -* [v05.xx 鸿蒙内核源码分析(任务管理篇) | 任务池是如何管理的 ](https://my.oschina.net/u/3751245/blog/4603919) **[ | 51](https://harmonyos.51cto.com/column/34)[ .c](https://blog.csdn.net/kuangyufei/article/details/108661248)[ .h](https://weharmony.gitee.io/blog/05_任务管理篇.html) [ .o](https://my.oschina.net/weharmony)** +* [v05.xx 鸿蒙内核源码分析(任务管理篇) | 任务池是如何管理的 ](https://my.oschina.net/u/3751245/blog/4603919) **[ | 51](https://harmonyos.51cto.com/column/34)[ .c](https://blog.csdn.net/kuangyufei/article/details/108661248)[ .h](http://weharmonyos.com/blog/05_任务管理篇.html) [ .o](https://my.oschina.net/weharmony)** -* [v04.xx 鸿蒙内核源码分析(任务调度篇) | 任务是内核调度的单元 ](https://my.oschina.net/weharmony/blog/4595539) **[ | 51](https://harmonyos.51cto.com/column/34)[ .c](https://blog.csdn.net/kuangyufei/article/details/108621428)[ .h](https://weharmony.gitee.io/blog/04_任务调度篇.html) [ .o](https://my.oschina.net/weharmony)** +* [v04.xx 鸿蒙内核源码分析(任务调度篇) | 任务是内核调度的单元 ](https://my.oschina.net/weharmony/blog/4595539) **[ | 51](https://harmonyos.51cto.com/column/34)[ .c](https://blog.csdn.net/kuangyufei/article/details/108621428)[ .h](http://weharmonyos.com/blog/04_任务调度篇.html) [ .o](https://my.oschina.net/weharmony)** -* [v03.xx 鸿蒙内核源码分析(时钟任务篇) | 触发调度谁的贡献最大 ](https://my.oschina.net/u/3751245/blog/4574493) **[ | 51](https://harmonyos.51cto.com/column/34)[ .c](https://blog.csdn.net/kuangyufei/article/details/108603468)[ .h](https://weharmony.gitee.io/blog/03_时钟任务篇.html) [ .o](https://my.oschina.net/weharmony)** +* [v03.xx 鸿蒙内核源码分析(时钟任务篇) | 触发调度谁的贡献最大 ](https://my.oschina.net/u/3751245/blog/4574493) **[ | 51](https://harmonyos.51cto.com/column/34)[ .c](https://blog.csdn.net/kuangyufei/article/details/108603468)[ .h](http://weharmonyos.com/blog/03_时钟任务篇.html) [ .o](https://my.oschina.net/weharmony)** -* [v02.xx 鸿蒙内核源码分析(进程管理篇) | 谁在管理内核资源 ](https://my.oschina.net/u/3751245/blog/4574429) **[ | 51](https://harmonyos.51cto.com/posts/3926)[ .c](https://blog.csdn.net/kuangyufei/article/details/108595941)[ .h](https://weharmony.gitee.io/blog/02_进程管理篇.html) [ .o](https://my.oschina.net/weharmony)** +* [v02.xx 鸿蒙内核源码分析(进程管理篇) | 谁在管理内核资源 ](https://my.oschina.net/u/3751245/blog/4574429) **[ | 51](https://harmonyos.51cto.com/posts/3926)[ .c](https://blog.csdn.net/kuangyufei/article/details/108595941)[ .h](http://weharmonyos.com/blog/02_进程管理篇.html) [ .o](https://my.oschina.net/weharmony)** -* [v01.xx 鸿蒙内核源码分析(双向链表篇) | 谁是内核最重要结构体 ](https://my.oschina.net/u/3751245/blog/4572304) **[ | 51](https://harmonyos.51cto.com/posts/3925)[ .c](https://blog.csdn.net/kuangyufei/article/details/108585659)[ .h](https://weharmony.gitee.io/blog/01_双向链表篇.html) [ .o](https://my.oschina.net/weharmony)** +* [v01.xx 鸿蒙内核源码分析(双向链表篇) | 谁是内核最重要结构体 ](https://my.oschina.net/u/3751245/blog/4572304) **[ | 51](https://harmonyos.51cto.com/posts/3925)[ .c](https://blog.csdn.net/kuangyufei/article/details/108585659)[ .h](http://weharmonyos.com/blog/01_双向链表篇.html) [ .o](https://my.oschina.net/weharmony)** ### 关于 51 .c .h .o 看系列篇文章会常看到 `51 .c .h .o`,希望这对大家阅读不会造成影响. 分别对应以下四个站点的首个字符,感谢这些站点一直以来对系列篇的支持和推荐,尤其是 **oschina gitee** ,很喜欢它的界面风格,简洁大方,让人感觉到开源的伟大! * [51cto](https://harmonyos.51cto.com/column/34) * [csdn](https://blog.csdn.net/kuangyufei) -* [harmony](https://weharmony.gitee.io/) +* [harmony](http://weharmonyos.com/) * [oschina](https://my.oschina.net/weharmony) 而巧合的是`.c .h .o`是C语言的头/源/目标文件,这就很有意思了,冥冥之中似有天数,将这四个宝贝以这种方式融合在一起. `51 .c .h .o` , 我要CHO ,嗯嗯,hin 顺口 : ) @@ -203,11 +203,11 @@ ### 百万汉字注解.百篇博客分析 [百万汉字注解 >> 精读鸿蒙源码,中文注解分析, 深挖地基工程,大脑永久记忆,四大码仓每日同步更新](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) -[百篇博客分析 >> 故事说内核,问答式导读,生活式比喻,表格化说明,图形化展示,主流站点定期更新中](http://weharmony.gitee.io)[< 51cto ](https://harmonyos.51cto.com/column/34)[| csdn ](https://blog.csdn.net/kuangyufei)[| harmony ](http://weharmony.gitee.io/)[ | osc >](https://my.oschina.net/weharmony) +[百篇博客分析 >> 故事说内核,问答式导读,生活式比喻,表格化说明,图形化展示,主流站点定期更新中](http://weharmonyos.com)[< 51cto ](https://harmonyos.51cto.com/column/34)[| csdn ](https://blog.csdn.net/kuangyufei)[| harmony ](http://weharmonyos.com/)[ | osc >](https://my.oschina.net/weharmony) ### 关注不迷路.代码即人生 [![鸿蒙内核源码分析](https://gitee.com/weharmony/docs/raw/master/pic/other/so1so.png)](https://gitee.com/weharmony/docs/raw/master/pic/other/so1so.png) -[热爱是所有的理由和答案 - turing](https://weharmony.gitee.io/) +[热爱是所有的理由和答案 - turing](http://weharmonyos.com/) -原创不易,欢迎转载,但麻烦请注明出处. +原创不易,欢迎转载,但麻烦请注明出处. \ No newline at end of file diff --git a/compat/posix/src/misc.c b/compat/posix/src/misc.c index 5973dfd7..c57af429 100644 --- a/compat/posix/src/misc.c +++ b/compat/posix/src/misc.c @@ -49,6 +49,7 @@ case (name): \ return (val) +//uname命令用于显示当前操作系统的名称,版本创建时间,系统名称,版本信息等 int uname(struct utsname *name) { INT32 ret; diff --git a/fs/fat/os_adapt/fatfs.c b/fs/fat/os_adapt/fatfs.c index d3fea144..9b9e8a52 100644 --- a/fs/fat/os_adapt/fatfs.c +++ b/fs/fat/os_adapt/fatfs.c @@ -239,7 +239,7 @@ static mode_t fatfs_get_mode(BYTE attribute, mode_t fs_mode) } return fs_mode; } - +//类型转换 static enum VnodeType fatfstype_2_vnodetype(BYTE type) { switch (type) { case AM_ARC: @@ -355,7 +355,7 @@ static int fatfs_create_obj(struct Vnode *parent, const char *name, int mode, st FRESULT result; int ret; - if ((type != AM_ARC) && (type != AM_DIR) && (type != AM_LNK)) { + if ((type != AM_ARC) && (type != AM_DIR) && (type != AM_LNK)) {//文件类型 result = FR_INVALID_NAME; goto ERROR_EXIT; } diff --git a/fs/jffs2/src/vfs_jffs2.c b/fs/jffs2/src/vfs_jffs2.c index 6ea1440a..99bc4f61 100644 --- a/fs/jffs2/src/vfs_jffs2.c +++ b/fs/jffs2/src/vfs_jffs2.c @@ -74,10 +74,6 @@ JFFS2分区在“spinor”上使用,而“nand”是提供给YAFFS2使用的 第二个参数表示起始地址,第三个参数表示分区大小,这两个参数都以16进制的形式传入。 最后一个参数表示分区号,有效值为0~19。 - - - - *************************************************************/ #ifdef LOSCFG_FS_JFFS @@ -88,8 +84,8 @@ struct file_operations_vfs g_jffs2Fops;//vfs接口实现 static LosMux g_jffs2FsLock; /* lock for all jffs2 ops *///操作 jffs2文件系统锁 static pthread_mutex_t g_jffs2NodeLock = PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP; -struct Vnode *g_jffs2PartList[CONFIG_MTD_PATTITION_NUM];//分区列表 - +struct Vnode *g_jffs2PartList[CONFIG_MTD_PATTITION_NUM];//jffs2 分区列表 +//设置vnode节点的文件类型 static void Jffs2SetVtype(struct jffs2_inode *node, struct Vnode *pVnode) { switch (node->i_mode & S_IFMT) { @@ -217,7 +213,7 @@ int VfsJffs2Lookup(struct Vnode *parentVnode, const char *path, int len, struct LOS_MuxLock(&g_jffs2FsLock, (uint32_t)JFFS2_WAITING_FOREVER); - parentNode = (struct jffs2_inode *)parentVnode->data; + parentNode = (struct jffs2_inode *)parentVnode->data;//获取私有数据 node = jffs2_lookup(parentNode, (const unsigned char *)path, len); if (!node) { LOS_MuxUnlock(&g_jffs2FsLock); diff --git a/fs/vfs/include/vnode.h b/fs/vfs/include/vnode.h index d70b7526..af9b0220 100644 --- a/fs/vfs/include/vnode.h +++ b/fs/vfs/include/vnode.h @@ -151,20 +151,22 @@ struct IATTR; 由于 vnode 是对所有设备的一个抽象,因此不同类型的设备,他们的操作方法也不一样, 因此 vop ,fop 都是接口, data 因设备不同而不同. + +如果底层是磁盘存储,Inode结构会保存到磁盘。当需要时从磁盘读取到内存中进行缓存。 */ -struct Vnode { +struct Vnode {//vnode并不包含文件名,因为 vnode和文件名是 1:N 的关系 enum VnodeType type; /* vnode type */ //节点类型 (文件|目录|链接...) int useCount; /* ref count of users *///节点引用(链接)数,即有多少文件名指向这个vnode,即上层理解的硬链接数 uint32_t hash; /* vnode hash */ //节点哈希值 - uint uid; /* uid for dac */ //DAC用户ID - uint gid; /* gid for dac */ //DAC用户组ID - mode_t mode; /* mode for dac */ //DAC的模式 + uint uid; /* uid for dac */ //文件拥有者的User ID + uint gid; /* gid for dac */ //文件的Group ID + mode_t mode; /* mode for dac */ //chmod 文件的读、写、执行权限 LIST_HEAD parentPathCaches; /* pathCaches point to parents */ //指向父级路径缓存,上面的都是当了爸爸节点 LIST_HEAD childPathCaches; /* pathCaches point to children */ //指向子级路径缓存,上面都是当了别人儿子的节点 struct Vnode *parent; /* parent vnode */ //父节点 struct VnodeOps *vop; /* vnode operations */ //以 Vnode 方式操作数据(接口实现|驱动程序) struct file_operations_vfs *fop; /* file operations */ //以 file 方式操作数据(接口实现|驱动程序) - void *data; /* private data */ //指向每种具体设备私有的成员,例如 ( drv_data | nfsnode | ....) + void *data; /* private data */ //文件数据block的位置,指向每种具体设备私有的成员,例如 ( drv_data | nfsnode | ....) uint32_t flag; /* vnode flag */ //节点标签 LIST_ENTRY hashEntry; /* list entry for bucket in hash table */ //通过它挂入哈希表 g_vnodeHashEntrys[i], i:[0,g_vnodeHashMask] LIST_ENTRY actFreeEntry; /* vnode active/free list entry */ //通过本节点挂到空闲链表和使用链表上 @@ -178,6 +180,7 @@ struct Vnode { struct VnodeOps { int (*Create)(struct Vnode *parent, const char *name, int mode, struct Vnode **vnode);//创建节点 int (*Lookup)(struct Vnode *parent, const char *name, int len, struct Vnode **vnode);//查询节点 + //Lookup向底层文件系统查找获取inode信息 int (*Open)(struct Vnode *vnode, int fd, int mode, int flags);//打开节点 int (*Close)(struct Vnode *vnode);//关闭节点 int (*Reclaim)(struct Vnode *vnode);//回收节点 diff --git a/kernel/base/include/los_signal.h b/kernel/base/include/los_signal.h index 3e9410e4..2f74b210 100644 --- a/kernel/base/include/los_signal.h +++ b/kernel/base/include/los_signal.h @@ -72,7 +72,7 @@ https://www.cnblogs.com/hoys/archive/2012/08/19/2646377.html #define SIGUSR2 12 //用户自定义信号2 #define SIGPIPE 13 //向某个非读管道中写入数据 #define SIGALRM 14 //由alarm(2)发出的信号,默认行为为进程终止 -#define SIGTERM 15 //终止信号 +#define SIGTERM 15 //终止信号, kill不带参数时默认发送这个信号 #define SIGSTKFLT 16 //栈溢出 #define SIGCHLD 17 //子进程结束信号 #define SIGCONT 18 //进程继续(曾被停止的进程) diff --git a/shell/full/include/shcmd.h b/shell/full/include/shcmd.h index 754f30dc..1f6c3d6e 100644 --- a/shell/full/include/shcmd.h +++ b/shell/full/include/shcmd.h @@ -50,24 +50,24 @@ extern "C" { typedef BOOL (*CmdVerifyTransID)(UINT32 transID); -typedef struct { +typedef struct {//命令项 CmdType cmdType; - const CHAR *cmdKey; - UINT32 paraNum; - CmdCallBackFunc cmdHook; + const CHAR *cmdKey; //按键 + UINT32 paraNum; //参数个数 + CmdCallBackFunc cmdHook; //回调函数 } CmdItem; -typedef struct { +typedef struct { //命令节点 LOS_DL_LIST list; CmdItem *cmd; } CmdItemNode; /* global info for shell module */ -typedef struct { +typedef struct {//shell 模块的全局信息 CmdItemNode cmdList; - UINT32 listNum; - UINT32 initMagicFlag; - LosMux muxLock; + UINT32 listNum;//节点数量 + UINT32 initMagicFlag;//初始魔法标签 0xABABABAB + LosMux muxLock; //操作链表互斥锁 CmdVerifyTransID transIdHook; } CmdModInfo; diff --git a/shell/full/src/base/shcmd.c b/shell/full/src/base/shcmd.c index a7480eba..c4b55b11 100644 --- a/shell/full/src/base/shcmd.c +++ b/shell/full/src/base/shcmd.c @@ -44,7 +44,7 @@ #define SHELL_INIT_MAGIC_FLAG 0xABABABAB #define CTRL_C 0x03 /* 0x03: ctrl+c ASCII */ -STATIC CmdModInfo g_cmdInfo; +STATIC CmdModInfo g_cmdInfo;//命令模块信息,上面挂了所有的命令项目 LOS_HAL_TABLE_BEGIN(g_shellcmd, shellcmd); LOS_HAL_TABLE_END(g_shellcmdEnd, shellcmd); @@ -494,7 +494,7 @@ LITE_OS_SEC_TEXT_MINOR UINT32 OsCmdKeyShift(const CHAR *cmdKey, CHAR *cmdOut, UI return LOS_OK; } - +//类型变量命名,必须是数字字母下划线,首字母不能是数字 LITE_OS_SEC_TEXT_MINOR BOOL OsCmdKeyCheck(const CHAR *cmdKey) { const CHAR *temp = cmdKey; @@ -733,7 +733,7 @@ END: (VOID)pthread_mutex_unlock(&shellCB->historyMutex); return; } - +//执行命令,shell是运行程序的程序. LITE_OS_SEC_TEXT_MINOR UINT32 OsCmdExec(CmdParsed *cmdParsed, CHAR *cmdStr) { UINT32 ret; @@ -746,7 +746,7 @@ LITE_OS_SEC_TEXT_MINOR UINT32 OsCmdExec(CmdParsed *cmdParsed, CHAR *cmdStr) return (UINT32)OS_ERROR; } - ret = OsCmdParse(cmdStr, cmdParsed); + ret = OsCmdParse(cmdStr, cmdParsed);//解析命令 if (ret != LOS_OK) { goto OUT; } @@ -762,7 +762,7 @@ LITE_OS_SEC_TEXT_MINOR UINT32 OsCmdExec(CmdParsed *cmdParsed, CHAR *cmdStr) } ret = OS_ERROR; - if (cmdHook != NULL) { + if (cmdHook != NULL) {//执行命令,即回调函数 ret = (cmdHook)(cmdParsed->paramCnt, (const CHAR **)cmdParsed->paramArray); } @@ -776,26 +776,26 @@ OUT: return (UINT32)ret; } - +//命令初始化 LITE_OS_SEC_TEXT_MINOR UINT32 OsCmdInit(VOID) { UINT32 ret; - LOS_ListInit(&(g_cmdInfo.cmdList.list)); - g_cmdInfo.listNum = 0; - g_cmdInfo.initMagicFlag = SHELL_INIT_MAGIC_FLAG; - ret = LOS_MuxInit(&g_cmdInfo.muxLock, NULL); + LOS_ListInit(&(g_cmdInfo.cmdList.list));//初始化双向链表 + g_cmdInfo.listNum = 0; //命令数量 + g_cmdInfo.initMagicFlag = SHELL_INIT_MAGIC_FLAG;//魔法数字 + ret = LOS_MuxInit(&g_cmdInfo.muxLock, NULL);//初始化互斥量,确保链表安全访问 if (ret != LOS_OK) { PRINT_ERR("Create mutex for shell cmd info failed\n"); return OS_ERROR; } return LOS_OK; } - +//创建一个命令项 STATIC UINT32 OsCmdItemCreate(CmdType cmdType, const CHAR *cmdKey, UINT32 paraNum, CmdCallBackFunc cmdProc) { CmdItem *cmdItem = NULL; CmdItemNode *cmdItemNode = NULL; - + //1.构造命令节点过程 cmdItem = (CmdItem *)LOS_MemAlloc(m_aucSysMem0, sizeof(CmdItem)); if (cmdItem == NULL) { return OS_ERRNO_SHELL_CMDREG_MEMALLOC_ERROR; @@ -813,28 +813,28 @@ STATIC UINT32 OsCmdItemCreate(CmdType cmdType, const CHAR *cmdKey, UINT32 paraNu cmdItemNode->cmd->paraNum = paraNum; cmdItemNode->cmd->cmdType = cmdType; cmdItemNode->cmd->cmdKey = cmdKey; - + //2.完成构造后挂入全局链表 (VOID)LOS_MuxLock(&g_cmdInfo.muxLock, LOS_WAIT_FOREVER); - OsCmdAscendingInsert(cmdItemNode); - g_cmdInfo.listNum++; + OsCmdAscendingInsert(cmdItemNode);//按升序方式插入 + g_cmdInfo.listNum++;//命令总数增加 (VOID)LOS_MuxUnlock(&g_cmdInfo.muxLock); return LOS_OK; } -/* open API */ +/* open API */ //注册命令至全局 LITE_OS_SEC_TEXT_MINOR UINT32 osCmdReg(CmdType cmdType, const CHAR *cmdKey, UINT32 paraNum, CmdCallBackFunc cmdProc) { CmdItemNode *cmdItemNode = NULL; - (VOID)LOS_MuxLock(&g_cmdInfo.muxLock, LOS_WAIT_FOREVER); - if (g_cmdInfo.initMagicFlag != SHELL_INIT_MAGIC_FLAG) { + (VOID)LOS_MuxLock(&g_cmdInfo.muxLock, LOS_WAIT_FOREVER);//1.确保先拿到锁 + if (g_cmdInfo.initMagicFlag != SHELL_INIT_MAGIC_FLAG) { //验证全局变量的有效性 (VOID)LOS_MuxUnlock(&g_cmdInfo.muxLock); PRINT_ERR("[%s] shell is not yet initialized!\n", __FUNCTION__); return OS_ERRNO_SHELL_NOT_INIT; } (VOID)LOS_MuxUnlock(&g_cmdInfo.muxLock); - + //2.参数检查 if ((cmdProc == NULL) || (cmdKey == NULL) || (cmdType >= CMD_TYPE_BUTT) || (strlen(cmdKey) >= CMD_KEY_LEN) || !strlen(cmdKey)) { return OS_ERRNO_SHELL_CMDREG_PARA_ERROR; @@ -845,11 +845,11 @@ LITE_OS_SEC_TEXT_MINOR UINT32 osCmdReg(CmdType cmdType, const CHAR *cmdKey, UINT return OS_ERRNO_SHELL_CMDREG_PARA_ERROR; } } - + //3.按键检查 if (OsCmdKeyCheck(cmdKey) != TRUE) { return OS_ERRNO_SHELL_CMDREG_CMD_ERROR; } - + //4.遍历链表节点,验证是否命令存在 (VOID)LOS_MuxLock(&g_cmdInfo.muxLock, LOS_WAIT_FOREVER); LOS_DL_LIST_FOR_EACH_ENTRY(cmdItemNode, &(g_cmdInfo.cmdList.list), CmdItemNode, list) { if ((cmdType == cmdItemNode->cmd->cmdType) && @@ -860,7 +860,7 @@ LITE_OS_SEC_TEXT_MINOR UINT32 osCmdReg(CmdType cmdType, const CHAR *cmdKey, UINT } } (VOID)LOS_MuxUnlock(&g_cmdInfo.muxLock); - + //5.正式创建命令,挂入链表 return OsCmdItemCreate(cmdType, cmdKey, paraNum, cmdProc); } diff --git a/shell/full/src/base/shmsg.c b/shell/full/src/base/shmsg.c index f1873c28..9abf2fea 100644 --- a/shell/full/src/base/shmsg.c +++ b/shell/full/src/base/shmsg.c @@ -202,13 +202,13 @@ LITE_OS_SEC_TEXT_MINOR VOID ShellCmdLineParse(CHAR c, pf_OUTPUT outputFunc, Shel shellCB->shellKeyType = STAT_NOMAL_KEY; } - +//获取shell消息类型 LITE_OS_SEC_TEXT_MINOR UINT32 ShellMsgTypeGet(CmdParsed *cmdParsed, const CHAR *cmdType) { CmdItemNode *curCmdItem = (CmdItemNode *)NULL; UINT32 len; UINT32 minLen; - CmdModInfo *cmdInfo = OsCmdInfoGet(); + CmdModInfo *cmdInfo = OsCmdInfoGet();//获取全局变量 if ((cmdParsed == NULL) || (cmdType == NULL)) { return OS_INVALID; @@ -217,7 +217,7 @@ LITE_OS_SEC_TEXT_MINOR UINT32 ShellMsgTypeGet(CmdParsed *cmdParsed, const CHAR * len = strlen(cmdType); LOS_DL_LIST_FOR_EACH_ENTRY(curCmdItem, &(cmdInfo->cmdList.list), CmdItemNode, list) { if ((len == strlen(curCmdItem->cmd->cmdKey)) && - (strncmp((CHAR *)(curCmdItem->cmd->cmdKey), cmdType, len) == 0)) { + (strncmp((CHAR *)(curCmdItem->cmd->cmdKey), cmdType, len) == 0)) {//先比较 minLen = (len < CMD_KEY_LEN) ? len : CMD_KEY_LEN; (VOID)memcpy_s((CHAR *)(cmdParsed->cmdKeyword), CMD_KEY_LEN, cmdType, minLen); cmdParsed->cmdType = curCmdItem->cmd->cmdType; diff --git a/syscall/misc_syscall.c b/syscall/misc_syscall.c index 771e8f0c..3777e908 100644 --- a/syscall/misc_syscall.c +++ b/syscall/misc_syscall.c @@ -46,7 +46,9 @@ #endif #include "user_copy.h" +//这里放的是一些不好归类(或称杂项)的系统调用 +//uname命令用于显示当前操作系统的名称,版本创建时间,系统名称,版本信息等 int SysUname(struct utsname *name) { int ret; @@ -65,7 +67,7 @@ int SysUname(struct utsname *name) } return ret; } - +//系统信息 int SysInfo(struct sysinfo *info) { int ret; @@ -102,7 +104,7 @@ int SysReboot(int magic, int magic2, int type) #ifdef LOSCFG_SHELL int SysShellExec(const char *msgName, const char *cmdString) -{ +{//执行 shell 命令 int ret; unsigned int uintRet; errno_t err; @@ -110,10 +112,10 @@ int SysShellExec(const char *msgName, const char *cmdString) char msgNameDup[CMD_KEY_LEN + 1] = { 0 }; char cmdStringDup[CMD_MAX_LEN + 1] = { 0 }; - if (!IsCapPermit(CAP_SHELL_EXEC)) { + if (!IsCapPermit(CAP_SHELL_EXEC)) {//1.先鉴权 return -EPERM; } - + //2.由内核栈空间接走用户空间的参数,注意还是同一个任务,只是从任务的用户空间移到内核栈. ret = LOS_StrncpyFromUser(msgNameDup, msgName, CMD_KEY_LEN + 1); if (ret < 0) { return -EFAULT; @@ -132,13 +134,13 @@ int SysShellExec(const char *msgName, const char *cmdString) if (err != EOK) { return -EFAULT; } - + //获取消息类型 uintRet = ShellMsgTypeGet(&cmdParsed, msgNameDup); if (uintRet != LOS_OK) { PRINTK("%s:command not found\n", msgNameDup); return -EFAULT; } else { - (void)OsCmdExec(&cmdParsed, (char *)cmdStringDup); + (void)OsCmdExec(&cmdParsed, (char *)cmdStringDup);//执行shell命令,回调命令注册时的 函数指针 } return 0; diff --git a/syscall/vm_syscall.c b/syscall/vm_syscall.c index 4700c6d0..ef7b431f 100644 --- a/syscall/vm_syscall.c +++ b/syscall/vm_syscall.c @@ -100,7 +100,7 @@ int SysMprotect(void *vaddr, size_t len, int prot) return LOS_DoMprotect((uintptr_t)vaddr, len, (unsigned long)prot); } /************************************************** - +brk也是申请堆内存的一种方式,一般小于 128K 会使用它 **************************************************/ void *SysBrk(void *addr) { diff --git a/zzz/git/push.sh b/zzz/git/push.sh index 79414931..4c81dd30 100644 --- a/zzz/git/push.sh +++ b/zzz/git/push.sh @@ -1,5 +1,5 @@ git add -A -git commit -m ' 因同步导致的注解覆盖还原. +git commit -m ' http://weharmonyos.com 上线 百万汉字注解 + 百篇博客分析 => 挖透鸿蒙内核源码 博客输出站点(国内):https://weharmonyos.com 或 http://8.134.122.205 博客输出站点(国外):https://weharmony.github.io -- GitLab