每個碼農,職業生涯,都應精讀一遍內核源碼. 鴻蒙內核源碼就是很好的精讀項目.一旦熟悉內核代碼的實現,將迅速拔高對計算機整體理解,從此高屋建瓴看問題.
為何想給鴻蒙源碼加上中文注釋源於注者大學時閱讀linux 2.6 內核痛苦經歷,一直有個心願,想讓更多計算機尤其是內核感興趣的減少閱讀時間,加速對計算機系統級的理解,不至於過早的放棄.但因過程種種,一直沒有成行,基本要放棄這件事了. 但9月10日鴻蒙正式開源,重新激活了注者多年的心願,就有那麼點一發不可收拾了 :|P
致敬鴻蒙內核開發者感謝開放原子開源基金會,鴻蒙內核開發者提供了如此優秀的源碼,了了多年的夙願,津津樂道於此.越深入精讀內核源碼,越能感受到設計者的精巧用心,創新突破. 向開發者致敬. 可以毫不誇張的說 OpenHarmony/kernel_liteos_a 可作為大學C語言,數據結構,作業系統,彙編語言 四門課程的教學項目.如此寶庫,不深入研究實在是太可惜了.
理解內核的三個層級筆者認為理解內核需分三個層級:
第一: 普通概念映射級 這一級不涉及專業知識,用大眾所熟知的公共認知就能聽明白是個什麼概念,也就是說用一個普通人都懂的概念去詮釋或者映射一個他們從沒聽過的概念.說別人能聽得懂的話這很重要!!! 一個沒學過計算機知識的賣菜大媽就不可能知道內核的基本運作了嗎? NO!,筆者在系列篇中試圖用 鴻蒙源碼分析系列篇|張大爺系列故事【 CSDN | OSCHINA】 去構建這一層級的認知,希望能捲入更多的人來關注基礎軟體,尤其是那些有錢的投資人加大對國家基礎軟體的投入.
第二: 專業概念抽象級 這一級是抽象出一個專業的邏輯概念,讓學過點計算機知識的人能聽得懂,可以不用去了解具體的細節點, 比如虛擬內存,老百姓是聽不懂的,學過計算機的人都懂,具體怎麼實現的很多人又都不懂了,但這並不妨礙成為一個優秀的上層應用程式員,筆者試圖用 鴻蒙源碼分析系列篇 【 CSDN | OSCHINA】 去構建這一層級的認知,希望能捲入更多對內核感興趣的應用軟體人才流入基礎軟體生態, 應用軟體咱們是無敵宇宙,但基礎軟體卻很薄弱.
第三: 具體微觀代碼級 這一級是具體到每一行代碼的實現,到了用代碼指令級的地步, 鴻蒙內核源碼注釋中文版 kernel_liteos_a_note 試圖解構這一層級的認知,英文是天生適合設計成程式語言的人類語言,計算機的01碼映射到人類世界的26個字母,誕生了太多的偉大奇蹟.但我們的母語註定了很大部分人存在著語言層級的映射,希望注釋中文版能讓更多愛好者參與進來一起研究,拔高咱基礎軟體的地位.
鴻蒙是面向未來設計的系統,高瞻遠矚,格局遠大,設計精良, 知識點巨多, 把研究過程心得寫成鴻蒙源碼分析系列篇,如此 源碼中文注釋+系列篇文章 將加速理解鴻蒙內核實現過程.
系列篇文章 進入 >> 鴻蒙系統源碼分析(總目錄) 【CSDN | OSCHINA】查看,兩大站點持續更新....感謝CSDN和OSCHINA對博客的推薦支持.
注釋中文版 進入>> 鴻蒙內核源碼注釋中文版 【 CSDN倉 | Gitee倉 | Github倉 | Coding倉】閱讀,四大倉庫每日同步更新....
加注釋方式是怎樣的?因鴻蒙內核6W+代碼量,本身只有很少的注釋, 中文註解以不對原有代碼侵入為前提,源碼所有英文部分都是原有鴻蒙注釋,所有中文部分都是筆者的注釋,儘量不去增加代碼的行數,不破壞文件的結構,注釋多類似以下的方式,如圖:
另外用字符畫了一些圖方便理解,直接嵌入到頭文件中,比如虛擬內存的全景圖,因沒有這些圖是很難理解內存是如何管理的,後續還會陸續加入更多的圖方便理解.
仰望星空還是埋頭走路精讀內核源碼當然是件很困難的事,時間上要以月為單位,但正因為很難才值得去做! 內心不渴望的永遠不可能靠近自己.筆者一直堅信興趣是最好的老師,加注也是在做自己感興趣的事.如果能讓更多人參與到內核的研究,減少學習的成本,哪怕就節省一天的時間,這麼多人能節省多少時間, 這是件多好玩,多有意義的事情啊. 時代需要仰望星空的人,但也需要埋頭走路的人, 從鴻蒙一行行的代碼中筆者能深深體會到各中艱辛和堅持,及時鴻蒙對未來的價值,只因心中有目標,就不怕道阻且長.
新增的zzz目錄是幹什麼的?中文加注版比官方版只多了一個zzz的目錄,裡面放了一些筆者使用的文件,它與內核代碼無關,大家可以忽略它,取名zzz是為了排在最後,減少對原有代碼目錄級的侵入,zzz的想法源於微信中名稱為AAA的那批牛人,你的微信裡應該也有他們熟悉的身影 :|P