鴻蒙內核源碼分析(源碼結構篇) | 關於內核這些問題你知道多少?


鴻蒙內核源碼注釋中文版 【 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/


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM