zoukankan      html  css  js  c++  java
  • 鸿蒙内核源码分析(源码结构篇) | 关于内核这些问题你知道多少?

    鸿蒙内核源码注释中文版 【 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/

  • 相关阅读:
    SharePoint 2013 商务智能报表发布
    sharepoint designer web 服务器似乎没有安装microsoft sharepoint foundation
    SharePoint 2013 Designer系列之数据视图
    SharePoint 2013 Designer系列之数据视图筛选
    SharePoint 2013 Designer系列之自定义列表表单
    SharePoint 2013 入门教程之创建及修改母版页
    SharePoint 2013 入门教程之创建页面布局及页面
    SharePoint 2010 级联下拉列表 (Cascading DropDownList)
    使用SharePoint Designer定制开发专家库系统实例!
    PL/SQL Developer 建立远程连接数据库的配置 和安装包+汉化包+注册机
  • 原文地址:https://www.cnblogs.com/HarmonyOS/p/14297897.html
Copyright © 2011-2022 走看看