百图画鸿蒙
文章平均质量分 89
给鸿蒙系统画100张图,按图索骥掌握鸿蒙底层实现
鸿蒙内核源码分析
计算机硕士,技术副总裁 ,计划用 5 - 10 年时间把鸿蒙系统的底层实现整理出来,包括:内核实现、驱动框架、协议栈、应用框架、编译构建、运行时系统 等其他子系统。工程浩大,自不量力,然兴趣所至,义无反顾, 此念不息,坚如磐石。
展开
-
v05.01 百图画鸿蒙(进程状态) | 不是那么重要的`重要`状态 | 画出鸿蒙骨骼系统
讲真,在鸿蒙内核,进程的状态并不是那么重要,这可能会让人有些不可思议,而任务状态比它重要和复杂的多得多,内核的活跃分子是任务(task),在系列篇中已多次提及,但熟悉它十分有必要。原创 2022-01-15 20:50:18 · 510 阅读 · 0 评论 -
v04.02 百图画鸿蒙(任务状态) | 内核最重要的状态迁移过程 | 画出鸿蒙骨骼系统
本篇图为**任务状态图**,任务在运行过程中其状态是不断的变化的,非常的复杂,结构体中用了`taskStatus`来记录状态,在读内核源码过程中会经常被这些状态绕的晕头转向,很影响推进效率,索性来一次针对状态的代码级整理,下图中列出了任务所有状态迁移和触发迁移的操作,可谓一目了然。原创 2022-01-15 20:49:20 · 476 阅读 · 0 评论 -
v03.01 百图画鸿蒙(任务控制块) | 竞争系统资源的最小运行单元 | 画出鸿蒙骨骼系统
任务控制块 是内核最重要和复杂的超级结构体,注意没有说之一,鸿蒙内核的说法叫任务,外部的叫法就是线程,它像个小孩老被家长(进程)管着。非常的调皮捣蛋,家里还有很多像它一样的小孩,都是一个爸生的,孩子们都有自己的房间(独立栈空间包括用户态栈和内核态栈), 他们的想法创意很多,各种各样的需求,经常要和别人玩,不仅要和自己的兄弟姐妹玩,还要和小区里的其他小朋友玩。玩着玩着就容易抢东西打起来(资源竞争),让小区管理员(内核进程)和家长们(用户进程们)闹心的很, 就得帮着这群熊孩子协调资源。原创 2021-12-30 19:05:03 · 515 阅读 · 0 评论 -
v02.02 百图画鸿蒙(进程控制块) | 隔壁练腰的老王 | 画出鸿蒙骨骼系统
进程控制块(PCB) 是内核仅次于任务控制块(TCB)重要和复杂的超级结构体,它是一个程序在内核的实体表达,像个家长一样即要管好自己家一帮熊孩子(任务)的事,还要和隔壁练腰的老王,村头打铁的老张,村尾杀猪的老李搞好关系,它们之间既有竞争又有合作。隶属大家族管理,七大姑八大姨,狐朋狗友一大堆,所以关系链特别的复杂,光用来搞关系的双向链表就用了7个(内核结构体之最),每一个背后都是一大滩子的事,可想而知它得有多忙,有多少事要操心。这是一个非常考验对双向链表掌握程度的结构体原创 2021-12-29 19:10:39 · 567 阅读 · 0 评论 -
v01.02 百图画鸿蒙(双向链表) | 好一双勤劳的手 | 画出鸿蒙骨骼系统
双向链表 是内核最重要的结构体,站长更愿意将它比喻成人的左右手,其意义是通过寄生在宿主结构体上来体现,可想象成在宿主结构体装上一对对勤劳的双手,它真的很会来事,超级活跃分子,为宿主到处拉朋友,建圈子。其插入 | 删除 | 遍历操作是它最常用的社交三大件,若不理解透彻在分析源码过程中很容易卡壳。原创 2021-12-28 15:31:41 · 724 阅读 · 0 评论