• 鸿蒙内核源码分析(源码结构篇) | 关于内核这些问题你知道多少?


    鸿蒙内核源码注释中文版 【 Gitee仓  |  CSDN仓  |  Github仓  |  Coding仓 】 项目中文注解鸿蒙官方内核源码,图文并茂,详细阐述鸿蒙架构和代码设计细节.每个码农,学职生涯,都应精读一遍内核源码.精读内核源码最大的好处是:将孤立知识点织成一张高浓度,高密度底层网,对计算机底层体系化理解形成永久记忆,从此高屋建瓴分析/解决问题.

    鸿蒙源码分析系列篇 【 CSDN  | OSCHINA  | WIKI 】 从 HarmonyOS 架构层视角整理成文, 并首创用生活场景讲故事的方式试图去解构内核,一窥究竟。

     
    kernel_liteos_a_note: 鸿蒙内核源码注释中文版 -> 点击目录和文件查看源码的详细中文注解
    可以肯定是以下问题在一行行的源码中都能找到答案

     
    kernel_liteos_a_notekernelbasecorelos_bitmap.c -> -> 位图管理器有什么作用 ? 在内核常应用于哪些场景 ?
    los_process.c -> 鸿蒙内核源码分析(进程管理篇) -> 进程是内核的资源管理单元,它是如何管理 任务, 内存,文件的 ? 进程间是如何协作的 ?
    los_sortlink.c -> -> 排序链表的实现,它的应用场景是怎样的 ?
    los_swtmr.c -> -> 内核的定时器是如何实现和管理的 ?
    los_sys.c -> -> 几个跟tick相关的转化函数
    los_task.c -> 鸿蒙内核源码分析(Task管理篇) -> Task是内核调度的单元,它解决了什么问题 ? 如何调度 ?
    los_tick.c -> 鸿蒙内核源码分析(时钟管理篇) -> 是谁在一直触发调度 ? 硬时钟中断都干了些什么事?
    los_timeslice.c -> -> 进程和任务能一直占有CPU吗 ? 怎么合理的分配时间 ?
    ipc -> -> 进程间通讯有哪些方式 ? 请说出三种 ? 是如何实现的 ?los_event.c -> -> 事件解决了什么问题 ? 怎么管理的 ?
    los_futex.c -> -> futex 是Fast Userspace muTexes的缩写(快速用户空间互斥体),它有什么作用 ?
    los_ipcdebug.c -> -> 进程间通讯如何调试 ?
    los_mux.c -> -> 互斥量,有你没我的零和博弈, 为什么需要互斥量 ? 是如何实现的 ?
    los_queue.c -> -> 内核消息队列是如何实现的 ? 对长度和大小有限制吗 ?
    los_queue_debug.c -> -> 如何调试消息队列 ?
    los_sem.c -> -> 信号量解决了什么问题 ? 它的本质是什么 ?
    los_sem_debug.c -> -> 如何调试信号量 ?
    los_signal.c -> -> 信号解决了什么问题? 你知道哪些信号 ?
    mem -> ->
    misc -> ->kill_shellcmd.c -> -> shell命令kill的实现,熟悉的 kill 9 18 的背后发生了什么?
    los_misc.c -> ->
    los_stackinfo.c -> -> 栈有哪些信息 ? 如何检测栈是否异常 ?
    mempt_shellcmd.c -> -> 和内存相关的shell命令有哪些 ?
    swtmr_shellcmd.c -> -> 和软时钟相关的shell命令有哪些 ?
    sysinfo_shellcmd.c -> -> 和系统信息相关的shell命令有哪些 ?
    task_shellcmd.c -> -> 和任务相关的shell命令有哪些 ?
    vm_shellcmd.c -> -> 和虚拟内存相关的shell命令有哪些 ?
    mp -> ->los_lockdep.c -> -> 死锁是怎么发生的 ? 如何检测死锁 ?
    los_mp.c -> -> 鸿蒙支持多CPU吗 ? 它们是如何工作的? CPU之间是如何通讯的 ?
    los_percpu.c -> -> CPU有哪些信息 ?
    los_stat.c -> -> CPU的运行信息如何统计 ?
    om -> ->los_err.c -> ->
    sched/sched_sq -> ->los_priqueue.c -> 鸿蒙内核源码分析(调度队列篇) -> 为什么只有就绪状态才会有队列 ?
    los_sched.c -> 鸿蒙内核源码分析(调度机制篇) -> 哪些情况下会触发调度 ? 调度算法是怎样的 ?
    vm -> 鸿蒙内核源码分析(内存规则篇) -> 什么是虚拟内存 ? 虚拟内存全景图是怎样的 ?los_vm_boot.c -> -> 开机阶段内存是如何初始化的 ?
    los_vm_dump.c -> -> 如何 dump 内存数据 ?
    los_vm_fault.c -> -> 为什么会缺页 ? 缺页怎么处理 ?
    los_vm_filemap.c -> -> 文件和内存是如何映射? 什么是 写时拷贝技术(cow) ?
    los_vm_iomap.c -> -> 设备和内存是如何映射 ?
    los_vm_map.c -> 鸿蒙内核源码分析(内存映射篇) -> 内核空间,用户空间,线性区是如何分配的,虚拟内存<-->物理内存是如何映射的 ?
    los_vm_page.c -> -> 什么是物理页框,哪些地方会用到它 ?
    los_vm_phys.c -> 鸿蒙内核源码分析(物理内存篇) -> 段页式管理,物理内存是如何分配和回收的 ?
    los_vm_scan.c -> -> LRU算法是如何运作的 ?
    los_vm_syscall.c -> -> 系统调用之内存, 用户进程如何申请内存 ? 底层发生了什么 ?
    oom.c -> -> 内存溢出是如何检测的 ?
    shm.c -> -> 共享内存是如何实现的 ?
    common -> ->console.c -> -> 熟悉的控制台是如何实现的 ?
    hwi_shell.c -> -> 如何查询硬件中断 ?
    los_cir_buf.c -> -> 环形缓冲区的读写是如何实现的 ? 常用于什么场景下 ?
    los_config.c -> -> 内核有哪些配置信息 ?
    los_exc_interaction.c -> -> 任务出现异常如何检测 ?
    los_excinfo.c -> -> 异常有哪些信息 ? 如何记录异常信息 ?
    los_hilog.c -> -> 内核是如何封装日志的 ?
    los_magickey.c -> -> 魔法键有什么作用 ?
    los_printf.c -> -> 内核对 printf 做了哪些封装 ?
    los_rootfs.c -> -> 什么是根文件系统 ? 为什么需要它 ?
    los_seq_buf.c -> ->
    virtual_serial.c -> ->
    extended -> ->cppsupport -> ->los_cppsupport.c -> ->
    cpup -> ->cpup_shellcmd.c -> ->
    los_cpup.c -> ->
    dynload/src ->los_exec_elf.c -> ->
    los_load_elf.c -> ->
    liteipc -> ->hm_liteipc.c -> ->
    tickless -> ->los_tickless.c -> ->
    trace -> ->los_trace.c -> ->
    vdso -> ->src -> ->los_vdso.c -> ->
    los_vdso_text.S -> ->
    usr -> ->los_vdso_sys.c -> ->
    user/src -> ->los_user_init.c -> ->
     

    系列篇文章 进入 >> 鸿蒙系统源码分析(总目录) 【 CSDN | OSCHINA | WIKI 】查看

    注释中文版 进入 >> 鸿蒙内核源码注释中文版 【 Gitee仓 | CSDN仓 | Github仓 | Coding仓 】阅读

    作者:weharmony

    想了解更多内容,请访问: 51CTO和华为官方战略合作共建的鸿蒙技术社区https://harmonyos.51cto.com/

  • 相关阅读:
    Python中的数据库连接与查询——使用SQLAlchemy
    Python中的数据库连接与查询——使用PyMySQL
    Selenium爬虫
    Scrapy爬虫
    Weka的基本概念和操作介绍
    Leetcode练习(Python):第860题: 柠檬水找零: 在柠檬水摊上,每一杯柠檬水的售价为 5 美元。 顾客排队购买你的产品,(按账单 bills 支付的顺序)一次购买一杯。 每位顾客只买一杯柠檬水,然后向你付 5 美元、10 美元或 20 美元。你必须给每个顾客正确找零,也就是说净交易是每位顾客向你支付 5 美元。
    Leetcode练习(Python):第771题:宝石与石头: 给定字符串J 代表石头中宝石的类型,和字符串 S代表你拥有的石头。 S 中每个字符代表了一种你拥有的石头的类型,你想知道你拥有的石头中有多少是宝石。
    Leetcode练习(Python):第747题:至少是其他数字两倍的最大数: 在一个给定的数组nums中,总是存在一个最大元素 。 查找数组中的最大元素是否至少是数组中每个其他数字的两倍。 如果是,则返回最大元素的索引,否则返回-1。
    Leetcode练习(python):第728题:自除数:自除数 是指可以被它包含的每一位数除尽的数。
    istio-http流量管理(2)
  • 原文地址:https://www.cnblogs.com/HarmonyOS/p/14297897.html
Copyright © 2020-2023  润新知