|
|
本篇关键词:、、、
|
|
|
|
|
|
[![](https://gitee.com/weharmonyos/resources/raw/master/index/03.png)](http://weharmonyos.com/blog/03.html)
|
|
|
|
|
|
|
|
|
[下载 >> 离线文档.鸿蒙内核源码分析(百篇博客分析.挖透鸿蒙内核).pdf](http://weharmonyos.com/resources/pdf/鸿蒙内核源码分析(百篇博客分析.挖透鸿蒙内核).zip)
|
|
|
|
|
|
基础知识相关篇为:
|
|
|
|
|
|
* [v01.12 鸿蒙内核源码分析(双向链表) | 谁是内核最重要结构体](http://weharmonyos.com/blog/01.html)
|
|
|
* [v02.01 鸿蒙内核源码分析(内核概念) | 名不正则言不顺](http://weharmonyos.com/blog/02.html)
|
|
|
* [v03.02 鸿蒙内核源码分析(源码结构) | 宏观尺度看内核结构](http://weharmonyos.com/blog/03.html)
|
|
|
* [v04.01 鸿蒙内核源码分析(地址空间) | 内核如何看待空间](http://weharmonyos.com/blog/04.html)
|
|
|
* [v05.03 鸿蒙内核源码分析(计时单位) | 内核如何看待时间](http://weharmonyos.com/blog/05.html)
|
|
|
* [v06.01 鸿蒙内核源码分析(宏的使用) | 为什么被翻译成了宏 ](http://weharmonyos.com/blog/06.html)
|
|
|
* [v07.01 鸿蒙内核源码分析(钩子框架) | 万物皆可HOOK ](http://weharmonyos.com/blog/07.html)
|
|
|
* [v08.04 鸿蒙内核源码分析(位图管理) | 一分钱被掰成八半使用](http://weharmonyos.com/blog/08.html)
|
|
|
* [v09.01 鸿蒙内核源码分析(POSIX) | 操作系统界的话事人 ](http://weharmonyos.com/blog/09.html)
|
|
|
* [v10.01 鸿蒙内核源码分析(main函数) | 要走了无数码农的第一次 ](http://weharmonyos.com/blog/10.html)
|
|
|
|
|
|
|
|
|
### **[鸿蒙内核源码注解分析](https://gitee.com/weharmony/kernel_liteos_a_note)**
|
|
|
|
|
|
**点击文件查看源码**
|
|
|
|
|
|
- [kernel_liteos_a_note](https://gitee.com/weharmony/kernel_liteos_a_note/)
|
|
|
* [kernel](https://gitee.com/weharmony/kernel_liteos_a_note/tree/master/kernel/)
|
|
|
+ [base](https://gitee.com/weharmony/kernel_liteos_a_note/tree/master/kernel/base/)
|
|
|
+ [core](https://gitee.com/weharmony/kernel_liteos_a_note/tree/master/kernel/base/core/) -> []() -> 这个core指的是与CPU core相关的文件
|
|
|
+ [los_bitmap.c](https://gitee.com/weharmony/kernel_liteos_a_note/tree/master/kernel/base/core/los_bitmap.c) -> []() -> 位图管理器有什么作用 ? 在内核常应用于哪些场景 ?
|
|
|
+ [los_process.c](https://gitee.com/weharmony/kernel_liteos_a_note/tree/master/kernel/base/core/los_process.c) -> [鸿蒙内核源码分析(进程管理篇)](https://blog.csdn.net/kuangyufei/article/details/108595941) -> 进程是内核的资源管理单元,它是如何管理 任务, 内存,文件的 ? 进程间是如何协作的 ?
|
|
|
+ [los_sortlink.c](https://gitee.com/weharmony/kernel_liteos_a_note/tree/master/kernel/base/core/los_sortlink.c) -> []() -> 排序链表的实现,它的应用场景是怎样的 ?
|
|
|
+ [los_swtmr.c](https://gitee.com/weharmony/kernel_liteos_a_note/tree/master/kernel/base/core/los_swtmr.c) -> []() -> 内核的定时器是如何实现和管理的 ?
|
|
|
+ [los_sys.c](https://gitee.com/weharmony/kernel_liteos_a_note/tree/master/kernel/base/core/los_sys.c) -> []() -> 几个跟tick相关的转化函数
|
|
|
+ [los_task.c](https://gitee.com/weharmony/kernel_liteos_a_note/tree/master/kernel/base/core/los_task.c) -> [鸿蒙内核源码分析(Task管理篇)](https://blog.csdn.net/kuangyufei/article/details/108661248) -> Task是内核调度的单元,它解决了什么问题 ? 如何调度 ?
|
|
|
+ [los_tick.c](https://gitee.com/weharmony/kernel_liteos_a_note/tree/master/kernel/base/core/los_tick.c) -> [鸿蒙内核源码分析(时钟管理篇)](https://blog.csdn.net/kuangyufei/article/details/108603468) -> 是谁在一直触发调度 ? 硬时钟中断都干了些什么事?
|
|
|
+ [los_timeslice.c](https://gitee.com/weharmony/kernel_liteos_a_note/tree/master/kernel/base/core/los_timeslice.c) -> []() -> 进程和任务能一直占有CPU吗 ? 怎么合理的分配时间 ?
|
|
|
+ [ipc](https://gitee.com/weharmony/kernel_liteos_a_note/tree/master/kernel/base/ipc/) -> []() -> 进程间通讯有哪些方式 ? 请说出三种 ? 是如何实现的 ?
|
|
|
+ [los_event.c](https://gitee.com/weharmony/kernel_liteos_a_note/tree/master/kernel/base/ipc/los_event.c) -> []() -> 事件解决了什么问题 ? 怎么管理的 ?
|
|
|
+ [los_futex.c](https://gitee.com/weharmony/kernel_liteos_a_note/tree/master/kernel/base/ipc/base/los_futex.c) -> []() -> futex 是Fast Userspace muTexes的缩写(快速用户空间互斥体),它有什么作用 ?
|
|
|
+ [los_ipcdebug.c](https://gitee.com/weharmony/kernel_liteos_a_note/tree/master/kernel/base/ipc/base/los_ipcdebug.c) -> []() -> 进程间通讯如何调试 ?
|
|
|
+ [los_mux.c](https://gitee.com/weharmony/kernel_liteos_a_note/tree/master/kernel/base/ipc/los_mux.c) -> []() -> 互斥量,有你没我的零和博弈, 为什么需要互斥量 ? 是如何实现的 ?
|
|
|
+ [los_queue.c](https://gitee.com/weharmony/kernel_liteos_a_note/tree/master/kernel/base/ipc/los_queue.c) -> []() -> 内核消息队列是如何实现的 ? 对长度和大小有限制吗 ?
|
|
|
+ [los_queue_debug.c](https://gitee.com/weharmony/kernel_liteos_a_note/tree/master/kernel/base/ipc/los_queue_debug.c) -> []() -> 如何调试消息队列 ?
|
|
|
+ [los_sem.c](https://gitee.com/weharmony/kernel_liteos_a_note/tree/master/kernel/base/ipc/los_sem.c) -> []() -> 信号量解决了什么问题 ? 它的本质是什么 ?
|
|
|
+ [los_sem_debug.c](https://gitee.com/weharmony/kernel_liteos_a_note/tree/master/kernel/base/ipc/los_sem_debug.c) -> []() -> 如何调试信号量 ?
|
|
|
+ [los_signal.c](https://gitee.com/weharmony/kernel_liteos_a_note/tree/master/kernel/base/ipc/los_signal.c) -> []() -> 信号解决了什么问题? 你知道哪些信号 ?
|
|
|
+ [mem](https://gitee.com/weharmony/kernel_liteos_a_note/tree/master/kernel/base/mem/) -> []() -> 内存管理模块管理系统的内存资源,它是操作系统的核心模块之一
|
|
|
+ [bestfit](https://gitee.com/weharmony/kernel_liteos_a_note/tree/master/kernel/base/mem/bestfit/) -> []() -> 动态内存管理的优点是按需分配,那缺点又是什么?
|
|
|
+ [los_memory.c](https://gitee.com/weharmony/kernel_liteos_a_note/tree/master/kernel/base/mem/bestfit/los_memory.c) -> []() -> 鸿蒙内核中动态内存池由哪三个部分组成 ?
|
|
|
+ [los_multipledlinkhead.c](https://gitee.com/weharmony/kernel_liteos_a_note/tree/master/kernel/base/mem/bestfit/los_multipledlinkhead.c) -> []() -> 什么是最佳适应算法? 是如何实现 ?
|
|
|
+ [bestfit_little](https://gitee.com/weharmony/kernel_liteos_a_note/tree/master/kernel/base/mem/bestfit_little/) -> []() -> bestfit_little算法是在最佳适配算法的基础上加入slab机制形成的算法。
|
|
|
+ [los_heap.c](https://gitee.com/weharmony/kernel_liteos_a_note/tree/master/kernel/base/mem/bestfit/los_heap.c) -> []() -> slab算法机制是怎样的? 又是如何实现的 ?
|
|
|
+ [common](https://gitee.com/weharmony/kernel_liteos_a_note/tree/master/kernel/base/mem/common/) -> []() ->
|
|
|
+ [membox](https://gitee.com/weharmony/kernel_liteos_a_note/tree/master/kernel/base/mem/membox/) -> []() -> 静态内存池的优点是分配和释放效率高,无碎片, 那缺点呢 ?
|
|
|
+ [los_membox.c](https://gitee.com/weharmony/kernel_liteos_a_note/tree/master/kernel/base/mem/membox/los_membox.c) -> []() -> 静态内存有什么用? 是如何实现的?
|
|
|
+ [misc](https://gitee.com/weharmony/kernel_liteos_a_note/tree/master/kernel/base/misc/) -> []() ->
|
|
|
+ [kill_shellcmd.c](https://gitee.com/weharmony/kernel_liteos_a_note/tree/master/kernel/base/misc/kill_shellcmd.c) -> []() -> shell命令kill的实现,熟悉的 kill 9 18 的背后发生了什么?
|
|
|
+ [los_misc.c](https://gitee.com/weharmony/kernel_liteos_a_note/tree/master/kernel/base/misc/los_misc.c) -> []() ->
|
|
|
+ [los_stackinfo.c](https://gitee.com/weharmony/kernel_liteos_a_note/tree/master/kernel/base/misc/los_stackinfo.c) -> []() -> 栈有哪些信息 ? 如何检测栈是否异常 ?
|
|
|
+ [mempt_shellcmd.c](https://gitee.com/weharmony/kernel_liteos_a_note/tree/master/kernel/base/misc/mempt_shellcmd.c) -> []() -> 和内存相关的shell命令有哪些 ?
|
|
|
+ [swtmr_shellcmd.c](https://gitee.com/weharmony/kernel_liteos_a_note/tree/master/kernel/base/misc/swtmr_shellcmd.c) -> []() -> 和软时钟相关的shell命令有哪些 ?
|
|
|
+ [sysinfo_shellcmd.c](https://gitee.com/weharmony/kernel_liteos_a_note/tree/master/kernel/base/misc/sysinfo_shellcmd.c) -> []() -> 和系统信息相关的shell命令有哪些 ?
|
|
|
+ [task_shellcmd.c](https://gitee.com/weharmony/kernel_liteos_a_note/tree/master/kernel/base/misc/task_shellcmd.c) -> []() -> 和任务相关的shell命令有哪些 ?
|
|
|
+ [vm_shellcmd.c](https://gitee.com/weharmony/kernel_liteos_a_note/tree/master/kernel/base/misc/vm_shellcmd.c) -> []() -> 和虚拟内存相关的shell命令有哪些 ?
|
|
|
+ [mp](https://gitee.com/weharmony/kernel_liteos_a_note/tree/master/kernel/base/mp/) -> []() -> MP指支持多处理器的模块
|
|
|
+ [los_lockdep.c](https://gitee.com/weharmony/kernel_liteos_a_note/tree/master/kernel/base/mp/los_lockdep.c) -> []() -> 死锁是怎么发生的 ? 如何检测死锁 ?
|
|
|
+ [los_mp.c](https://gitee.com/weharmony/kernel_liteos_a_note/tree/master/kernel/base/mp/los_mp.c) -> []() -> 鸿蒙最大支持多少个CPU ? 它们是如何工作的? CPU之间是如何通讯的 ?
|
|
|
+ [los_percpu.c](https://gitee.com/weharmony/kernel_liteos_a_note/tree/master/kernel/base/mp/los_percpu.c) -> []() -> CPU有哪些信息 ?
|
|
|
+ [los_stat.c](https://gitee.com/weharmony/kernel_liteos_a_note/tree/master/kernel/base/mp/los_stat.c) -> []() -> CPU的运行信息如何统计 ?
|
|
|
+ [om](https://gitee.com/weharmony/kernel_liteos_a_note/tree/master/kernel/base/om/) -> []() ->
|
|
|
+ [los_err.c](https://gitee.com/weharmony/kernel_liteos_a_note/tree/master/kernel/base/om/los_err.c) -> []() ->
|
|
|
+ [sched/sched_sq](https://gitee.com/weharmony/kernel_liteos_a_note/tree/master/kernel/base/sched/sched_sq/) -> []() ->
|
|
|
+ [los_priqueue.c](https://gitee.com/weharmony/kernel_liteos_a_note/tree/master/kernel/base/sched/sched_sq/los_priqueue.c) -> [鸿蒙内核源码分析(调度队列篇)](https://blog.csdn.net/kuangyufei/article/details/108626671) -> 为什么只有就绪状态才会有队列 ?
|
|
|
+ [los_sched.c](https://gitee.com/weharmony/kernel_liteos_a_note/tree/master/kernel/base/sched/sched_sq/los_sched.c) -> [鸿蒙内核源码分析(调度机制篇)](https://blog.csdn.net/kuangyufei/article/details/108705968) -> 哪些情况下会触发调度 ? 调度算法是怎样的 ?
|
|
|
+ [vm](https://gitee.com/weharmony/kernel_liteos_a_note/tree/master/kernel/base/vm/) -> [鸿蒙内核源码分析(内存规则篇)](https://blog.csdn.net/kuangyufei/article/details/109437223) -> 什么是虚拟内存 ? 虚拟内存全景图是怎样的 ?
|
|
|
+ [los_vm_boot.c](https://gitee.com/weharmony/kernel_liteos_a_note/tree/master/kernel/base/vm/los_vm_boot.c) -> []() -> 开机阶段内存是如何初始化的 ?
|
|
|
+ [los_vm_dump.c](https://gitee.com/weharmony/kernel_liteos_a_note/tree/master/kernel/base/vm/los_vm_dump.c) -> []() -> 如何 dump 内存数据 ?
|
|
|
+ [los_vm_fault.c](https://gitee.com/weharmony/kernel_liteos_a_note/tree/master/kernel/base/vm/los_vm_fault.c) -> []() -> 为什么会缺页 ? 缺页怎么处理 ?
|
|
|
+ [los_vm_filemap.c](https://gitee.com/weharmony/kernel_liteos_a_note/tree/master/kernel/base/vm/los_vm_filemap.c) -> []() -> 文件和内存是如何映射? 什么是 写时拷贝技术(cow) ?
|
|
|
+ [los_vm_iomap.c](https://gitee.com/weharmony/kernel_liteos_a_note/tree/master/kernel/base/vm/los_vm_iomap.c) -> []() -> 设备和内存是如何映射 ?
|
|
|
+ [los_vm_map.c](https://gitee.com/weharmony/kernel_liteos_a_note/tree/master/kernel/base/vm/los_vm_map.c) -> [鸿蒙内核源码分析(内存映射篇)](https://blog.csdn.net/kuangyufei/article/details/109032636) -> 内核空间,用户空间,线性区是如何分配的,虚拟内存<-->物理内存是如何映射的 ?
|
|
|
+ [los_vm_page.c](https://gitee.com/weharmony/kernel_liteos_a_note/tree/master/kernel/base/vm/los_vm_page.c) -> []() -> 什么是物理页框,哪些地方会用到它 ?
|
|
|
+ [los_vm_phys.c](https://gitee.com/weharmony/kernel_liteos_a_note/tree/master/kernel/base/vm/los_vm_phys.c) -> [鸿蒙内核源码分析(物理内存篇)](https://blog.csdn.net/kuangyufei/article/details/111765600) -> 段页式管理,物理内存是如何分配和回收的 ?
|
|
|
+ [los_vm_scan.c](https://gitee.com/weharmony/kernel_liteos_a_note/tree/master/kernel/base/vm/los_vm_scan.c) -> []() -> LRU算法是如何运作的 ?
|
|
|
+ [los_vm_syscall.c](https://gitee.com/weharmony/kernel_liteos_a_note/tree/master/kernel/base/vm/los_vm_syscall.c) -> []() -> 系统调用之内存, 用户进程如何申请内存 ? 底层发生了什么 ?
|
|
|
+ [oom.c](https://gitee.com/weharmony/kernel_liteos_a_note/tree/master/kernel/base/vm/oom.c) -> []() -> 内存溢出是如何检测的 ?
|
|
|
+ [shm.c](https://gitee.com/weharmony/kernel_liteos_a_note/tree/master/kernel/base/vm/shm.c) -> []() -> 共享内存是如何实现的 ?
|
|
|
+ [common](https://gitee.com/weharmony/kernel_liteos_a_note/tree/master/kernel/common/) -> []() ->
|
|
|
+ [console.c](https://gitee.com/weharmony/kernel_liteos_a_note/tree/master/kernel/common/console.c) -> []() -> 熟悉的控制台是如何实现的 ?
|
|
|
+ [hwi_shell.c](https://gitee.com/weharmony/kernel_liteos_a_note/tree/master/kernel/common/hwi_shell.c) -> []() -> 如何查询硬件中断 ?
|
|
|
+ [los_cir_buf.c](https://gitee.com/weharmony/kernel_liteos_a_note/tree/master/kernel/common/los_cir_buf.c) -> []() -> 环形缓冲区的读写是如何实现的 ? 常用于什么场景下 ?
|
|
|
+ [los_config.c](https://gitee.com/weharmony/kernel_liteos_a_note/tree/master/kernel/common/los_config.c) -> []() -> 内核有哪些配置信息 ?
|
|
|
+ [los_exc_interaction.c](https://gitee.com/weharmony/kernel_liteos_a_note/tree/master/kernel/common/los_exc_interaction.c) -> []() -> 任务出现异常如何检测 ?
|
|
|
+ [los_excinfo.c](https://gitee.com/weharmony/kernel_liteos_a_note/tree/master/kernel/common/los_excinfo.c) -> []() -> 异常有哪些信息 ? 如何记录异常信息 ?
|
|
|
+ [los_hilog.c](https://gitee.com/weharmony/kernel_liteos_a_note/tree/master/kernel/common/los_hilog.c) -> []() -> 内核是如何封装日志的 ?
|
|
|
+ [los_magickey.c](https://gitee.com/weharmony/kernel_liteos_a_note/tree/master/kernel/common/los_magickey.c) -> []() -> 魔法键有什么作用 ?
|
|
|
+ [los_printf.c](https://gitee.com/weharmony/kernel_liteos_a_note/tree/master/kernel/common/los_printf.c) -> []() -> 内核对 printf 做了哪些封装 ?
|
|
|
+ [los_rootfs.c](https://gitee.com/weharmony/kernel_liteos_a_note/tree/master/kernel/common/los_rootfs.c) -> []() -> 什么是根文件系统 ? 为什么需要它 ?
|
|
|
+ [los_seq_buf.c](https://gitee.com/weharmony/kernel_liteos_a_note/tree/master/kernel/common/los_seq_buf.c) -> []() ->
|
|
|
+ [virtual_serial.c](https://gitee.com/weharmony/kernel_liteos_a_note/tree/master/kernel/common/virtual_serial.c) -> []() -> 如何实现访问串口如同访问文件一样方便 ?
|
|
|
+ [extended](https://gitee.com/weharmony/kernel_liteos_a_note/kernel/extended/tree/master/) -> []() ->
|
|
|
+ [cppsupport](https://gitee.com/weharmony/kernel_liteos_a_note/kernel/extended/tree/master/cppsupport/) -> []() ->
|
|
|
+ [los_cppsupport.c](https://gitee.com/weharmony/kernel_liteos_a_note/tree/master/kernel/extended/cppsupport/los_cppsupport.c) -> []() -> 对C++是如何支持的 ?
|
|
|
+ [cpup](https://gitee.com/weharmony/kernel_liteos_a_note/tree/master/kernel/extended/cpup/) -> []() ->
|
|
|
+ [cpup_shellcmd.c](https://gitee.com/weharmony/kernel_liteos_a_note/tree/master/kernel/extended/cpup/cpup_shellcmd.c) -> []() -> 如何实时查询系统CPU的占用率 ?
|
|
|
+ [los_cpup.c](https://gitee.com/weharmony/kernel_liteos_a_note/tree/master/kernel/extended/cpup/los_cpup.c) -> []() -> 内核如何做到实时统计CPU性能的 ?
|
|
|
+ [dynload/src](https://gitee.com/weharmony/kernel_liteos_a_note/tree/master/kernel/extended/dynload/src/) []() ->
|
|
|
+ [los_exec_elf.c](https://gitee.com/weharmony/kernel_liteos_a_note/tree/master/kernel/extended/dynload/src/los_exec_elf.c) -> []() -> 鸿蒙如何运行ELF ? 什么是腾笼换鸟技术 ?
|
|
|
+ [los_load_elf.c](https://gitee.com/weharmony/kernel_liteos_a_note/tree/master/kernel/extended/dynload/src/los_load_elf.c) -> []() -> 鸿蒙如何动态加载 ELF ?
|
|
|
+ [liteipc](https://gitee.com/weharmony/kernel_liteos_a_note/tree/master/kernel/extended/liteipc/) -> []() ->
|
|
|
+ [hm_liteipc.c](https://gitee.com/weharmony/kernel_liteos_a_note/tree/master/kernel/extended/liteipc/hm_liteipc.c) -> []() -> 如何用文件的方式读取消息队列 ? liteipc和普通消息队列区别有哪些 ?
|
|
|
+ [tickless](https://gitee.com/weharmony/kernel_liteos_a_note/tree/master/kernel/extended/tickless/) -> []() ->
|
|
|
+ [los_tickless.c](https://gitee.com/weharmony/kernel_liteos_a_note/tree/master/kernel/extended/tickless/los_tickless.c) -> []() -> 新定时机制新在哪里 ? 它解决了哪些问题 ?
|
|
|
+ [trace](https://gitee.com/weharmony/kernel_liteos_a_note/tree/master/kernel/extended/trace/) -> []() ->
|
|
|
+ [los_trace.c](https://gitee.com/weharmony/kernel_liteos_a_notetree/master/kernel/extended/los_trace.c) -> []() -> 如何实现跟踪 ? 内核在跟踪什么 ?
|
|
|
+ [vdso](https://gitee.com/weharmony/kernel_liteos_a_note/tree/master/kernel/extended/vdso/) -> []() -> 用户空间访问内核空间有哪些途径 ?
|
|
|
+ [src](https://gitee.com/weharmony/kernel_liteos_a_note/tree/master/kernel/extended/vdso/src/) -> []() ->
|
|
|
+ [los_vdso.c](https://gitee.com/weharmony/kernel_liteos_a_note/tree/master/kernel/extended/vdso/src/los_vdso.c) -> []() -> VDSO(Virtual Dynamically-linked Shared Object) 是如何实现的 ?
|
|
|
+ [los_vdso_text.S](https://gitee.com/weharmony/kernel_liteos_a_note/tree/master/kernel/extended/vdso/src/los_vdso_text.S) -> []() ->
|
|
|
+ [usr](https://gitee.com/weharmony/kernel_liteos_a_note/tree/master/kernel/extended/vdso/usr/) -> []() ->
|
|
|
+ [los_vdso_sys.c](https://gitee.com/weharmony/kernel_liteos_a_note/tree/master/kernel/extended/vdso/usr/los_vdso_sys.c) -> []() ->
|
|
|
+ [user/src](https://gitee.com/weharmony/kernel_liteos_a_note/tree/master/kernel/user/src/) -> []() ->
|
|
|
+ [los_user_init.c](https://gitee.com/weharmony/kernel_liteos_a_note/tree/master/kernel/user/src/los_user_init.c) -> []() ->
|
|
|
|
|
|
### 百文说内核 | 抓住主脉络
|
|
|
|
|
|
* 百文相当于摸出内核的肌肉和器官系统,让人开始丰满有立体感,因是直接从注释源码起步,在加注释过程中,每每有心得处就整理,慢慢形成了以下文章。内容立足源码,常以生活场景打比方尽可能多的将内核知识点置入某种场景,具有画面感,容易理解记忆。说别人能听得懂的话很重要! 百篇博客绝不是百度教条式的在说一堆诘屈聱牙的概念,那没什么意思。更希望让内核变得栩栩如生,倍感亲切。
|
|
|
* 与代码需不断`debug`一样,文章内容会存在不少错漏之处,请多包涵,但会反复修正,持续更新,`v**.xx` 代表文章序号和修改的次数,精雕细琢,言简意赅,力求打造精品内容。
|
|
|
* 百文在 < 鸿蒙研究站 | 开源中国 | 博客园 | 51cto | csdn | 知乎 | 掘金 > 站点发布,**鸿蒙研究站 | weharmonyos** 中回复 **百文** 可方便阅读。
|
|
|
* ![](https://gitee.com/weharmonyos/resources/raw/master/common/cate.png)
|
|
|
|
|
|
按功能模块:
|
|
|
|
|
|
* 基础知识 >> [双向链表](http://weharmonyos.com/blog/01.html) | [内核概念](http://weharmonyos.com/blog/02.html) | [源码结构](http://weharmonyos.com/blog/03.html) | [地址空间](http://weharmonyos.com/blog/04.html) | [计时单位](http://weharmonyos.com/blog/05.html) | [宏的使用](http://weharmonyos.com/blog/06.html) | [钩子框架](http://weharmonyos.com/blog/07.html) | [位图管理](http://weharmonyos.com/blog/08.html) | [POSIX](http://weharmonyos.com/blog/09.html) | [main函数](http://weharmonyos.com/blog/10.html) |
|
|
|
* 进程管理 >> [调度故事](http://weharmonyos.com/blog/11.html) | [进程控制块](http://weharmonyos.com/blog/12.html) | [进程空间](http://weharmonyos.com/blog/13.html) | [线性区](http://weharmonyos.com/blog/14.html) | [红黑树](http://weharmonyos.com/blog/15.html) | [进程管理](http://weharmonyos.com/blog/16.html) | [Fork进程](http://weharmonyos.com/blog/17.html) | [进程回收](http://weharmonyos.com/blog/18.html) | [Shell编辑](http://weharmonyos.com/blog/19.html) | [Shell解析](http://weharmonyos.com/blog/20.html) |
|
|
|
* 任务管理 >> [任务控制块](http://weharmonyos.com/blog/21.html) | [并发并行](http://weharmonyos.com/blog/22.html) | [就绪队列](http://weharmonyos.com/blog/23.html) | [调度机制](http://weharmonyos.com/blog/24.html) | [任务管理](http://weharmonyos.com/blog/25.html) | [用栈方式](http://weharmonyos.com/blog/26.html) | [软件定时器](http://weharmonyos.com/blog/27.html) | [控制台](http://weharmonyos.com/blog/28.html) | [远程登录](http://weharmonyos.com/blog/29.html) | [协议栈](http://weharmonyos.com/blog/30.html) |
|
|
|
* 内存管理 >> [内存规则](http://weharmonyos.com/blog/31.html) | [物理内存](http://weharmonyos.com/blog/32.html) | [虚拟内存](http://weharmonyos.com/blog/33.html) | [虚实映射](http://weharmonyos.com/blog/34.html) | [页表管理](http://weharmonyos.com/blog/35.html) | [静态分配](http://weharmonyos.com/blog/36.html) | [TLFS算法](http://weharmonyos.com/blog/37.html) | [内存池管理](http://weharmonyos.com/blog/38.html) | [原子操作](http://weharmonyos.com/blog/39.html) | [圆整对齐](http://weharmonyos.com/blog/40.html) |
|
|
|
* 通讯机制 >> [通讯总览](http://weharmonyos.com/blog/41.html) | [自旋锁](http://weharmonyos.com/blog/42.html) | [互斥锁](http://weharmonyos.com/blog/43.html) | [快锁使用](http://weharmonyos.com/blog/44.html) | [快锁实现](http://weharmonyos.com/blog/45.html) | [读写锁](http://weharmonyos.com/blog/46.html) | [信号量](http://weharmonyos.com/blog/47.html) | [事件机制](http://weharmonyos.com/blog/48.html) | [信号生产](http://weharmonyos.com/blog/49.html) | [信号消费](http://weharmonyos.com/blog/50.html) | [消息队列](http://weharmonyos.com/blog/51.html) | [消息封装](http://weharmonyos.com/blog/52.html) | [消息映射](http://weharmonyos.com/blog/53.html) | [共享内存](http://weharmonyos.com/blog/54.html) |
|
|
|
* 文件系统 >> [文件概念](http://weharmonyos.com/blog/55.html) | [文件故事](http://weharmonyos.com/blog/56.html) | [索引节点](http://weharmonyos.com/blog/57.html) | [VFS](http://weharmonyos.com/blog/58.html) | [文件句柄](http://weharmonyos.com/blog/59.html) | [根文件系统](http://weharmonyos.com/blog/60.html) | [挂载机制](http://weharmonyos.com/blog/61.html) | [管道文件](http://weharmonyos.com/blog/62.html) | [文件映射](http://weharmonyos.com/blog/63.html) | [写时拷贝](http://weharmonyos.com/blog/64.html) |
|
|
|
* 硬件架构 >> [芯片模式](http://weharmonyos.com/blog/65.html) | [ARM架构](http://weharmonyos.com/blog/66.html) | [指令集](http://weharmonyos.com/blog/67.html) | [协处理器](http://weharmonyos.com/blog/68.html) | [工作模式](http://weharmonyos.com/blog/69.html) | [寄存器](http://weharmonyos.com/blog/70.html) | [多核管理](http://weharmonyos.com/blog/71.html) | [中断概念](http://weharmonyos.com/blog/72.html) | [中断管理](http://weharmonyos.com/blog/73.html) |
|
|
|
* 内核汇编 >> [编码方式](http://weharmonyos.com/blog/74.html) | [汇编基础](http://weharmonyos.com/blog/75.html) | [汇编传参](http://weharmonyos.com/blog/76.html) | [可变参数](http://weharmonyos.com/blog/77.html) | [开机启动](http://weharmonyos.com/blog/78.html) | [进程切换](http://weharmonyos.com/blog/79.html) | [任务切换](http://weharmonyos.com/blog/80.html) | [中断切换](http://weharmonyos.com/blog/81.html) | [异常接管](http://weharmonyos.com/blog/82.html) | [缺页中断](http://weharmonyos.com/blog/83.html) |
|
|
|
* 编译运行 >> [编译过程](http://weharmonyos.com/blog/84.html) | [编译构建](http://weharmonyos.com/blog/85.html) | [GN语法](http://weharmonyos.com/blog/86.html) | [忍者无敌](http://weharmonyos.com/blog/87.html) | [ELF格式](http://weharmonyos.com/blog/88.html) | [ELF解析](http://weharmonyos.com/blog/89.html) | [静态链接](http://weharmonyos.com/blog/90.html) | [重定位](http://weharmonyos.com/blog/91.html) | [动态链接](http://weharmonyos.com/blog/92.html) | [进程映像](http://weharmonyos.com/blog/93.html) | [应用启动](http://weharmonyos.com/blog/94.html) | [系统调用](http://weharmonyos.com/blog/95.html) | [VDSO](http://weharmonyos.com/blog/96.html) |
|
|
|
* 调测工具 >> [模块监控](http://weharmonyos.com/blog/97.html) | [日志跟踪](http://weharmonyos.com/blog/98.html) | [系统安全](http://weharmonyos.com/blog/99.html) | [测试用例](http://weharmonyos.com/blog/100.html) |
|
|
|
* 前因后果 >> [总目录](http://weharmonyos.com/blog/101.html) | [源码注释](http://weharmonyos.com/blog/102.html) | [静态站点](http://weharmonyos.com/blog/103.html) | [参考手册](http://weharmonyos.com/blog/104.html) |
|
|
|
|
|
|
### 百万注源码 | 处处扣细节
|
|
|
|
|
|
* 百万汉字注解内核目的是要看清楚其毛细血管,细胞结构,等于在拿放大镜看内核。内核并不神秘,带着问题去源码中找答案是很容易上瘾的,你会发现很多文章对一些问题的解读是错误的,或者说不深刻难以自圆其说,你会慢慢形成自己新的解读,而新的解读又会碰到新的问题,如此层层递进,滚滚向前,拿着放大镜根本不愿意放手。
|
|
|
* [< gitee](https://gitee.com/weharmony/kernel_liteos_a_note) | [github](https://github.com/kuangyufei/kernel_liteos_a_note) | [coding](https://weharmony.coding.net/public/harmony/kernel_liteos_a_note/git/files) | [gitcode >](https://gitcode.net/kuangyufei/kernel_liteos_a_note) 四大码仓推送 | 同步官方源码,**鸿蒙研究站 | weharmonyos** 中回复 **百万** 可方便阅读。
|
|
|
|
|
|
[![](https://gitee.com/weharmony/kernel_liteos_a_note/widgets/widget_card.svg?colors=393222,ebdfc1,fffae5,d8ca9f,393222,a28b40)](https://gitee.com/weharmony/kernel_liteos_a_note)
|
|
|
### 关注不迷路 | 代码即人生
|
|
|
|
|
|
![](https://gitee.com/weharmonyos/resources/raw/master/common/so1so.png)
|
|
|
|
|
|
据说喜欢点赞分享的,后来都成了大神。:)
|
|
|
|
|
|
|