為何要精讀內核源碼?
每位碼農的學職生涯,都應精讀一遍內核源碼.以澆筑好計算機知識大廈的地基,地基縱深的堅固程度,很大程度能決定未來大廈能蓋多高。那為何一定要精讀細品呢?
因為內核代碼本身并不太多,都是濃縮的精華,精讀是讓各個知識點高頻出現,不孤立成點狀記憶,讓各點相連成線,線面成體,刻意練習,閃爆大腦,如此短時間內容易結成一張高濃度,高密度的底層網,內核畫面越描越清晰,越雕越深刻,不斷訓練大腦肌肉記憶,將記憶從臨時區轉移到永久區。跟騎單車一樣,一旦學會,即便多年不騎,照樣跨上就走,游刃有余。
熱愛是所有的理由和答案
因大學時閱讀linux 2.6內核痛并快樂的經歷,一直有個心愿,如何讓更多對內核感興趣的朋友減少閱讀時間,加速對計算機系統級的理解,而不至于過早的放棄.但因過程種種,多年一直沒有行動,基本要放棄這件事了.恰逢2020/9/10鴻蒙正式開源,重新激活了多年的心愿,就有那么點一發不可收拾了.
到2021/3/10剛好半年, 對內核源碼的注解已完成了70%,對內核源碼的博客分析已完成了40篇, 每天都很充實,很興奮,連做夢內核代碼都在往腦海里魚貫而入.如此瘋狂地做一件事還是當年談戀愛的時候, 只因熱愛, 熱愛是所有的理由和答案. :P
鴻蒙內核開發者
感謝開放原子開源基金會,致敬鴻蒙內核開發者提供了如此優秀的源碼,一了多年的夙愿,津津樂道于此.精讀內核源碼加注并整理成檔是件很有挑戰的事,時間上要以月甚至年為單位,但正因為很難才值得去做! 干困難事,方有所得;專注聚焦,必有所獲.
從內核一行行的代碼中能深深感受到開發者各中艱辛與堅持,及鴻蒙生態對未來的價值,這些是張嘴就來的網絡噴子們永遠不能體會到的.可以毫不夸張的說鴻蒙內核源碼可作為大學C語言,數據結構,操作系統,匯編語言,計算機組成原理五門課程的教學項目.如此寶庫,不深入研究實在是暴殄天物,于心不忍,注者堅信鴻蒙大勢所趨,未來可期,其必須成功,也必然成功,誓做其堅定的追隨者和傳播者.
加注方式是怎樣的?
因鴻蒙內核6W+代碼量,本身只有較少的注釋, 中文注解以不對原有代碼侵入為前提,源碼中所有英文部分都是原有注釋,所有中文部分都是中文版的注釋,同時為方便同步官方版本的更新,盡量不去增加代碼的行數,不破壞文件的結構,注釋多類似以下的方式:
在重要模塊的.c/.h文件開始位置先對模塊功能做整體的介紹,例如異常接管模塊注解如圖所示:
而函數級注解會詳細到重點行,甚至每一行, 例如申請互斥鎖的主體函數,不可謂不重要,而官方注釋僅有一行,如圖所示
另外畫了一些字符圖方便理解,直接嵌入到頭文件中,比如虛擬內存的全景圖,因沒有這些圖是很難理解虛擬內存是如何管理的.
理解內核的三個層級
注者認為理解內核可分三個層級:
普通概念映射級:這一級不涉及專業知識,用大眾所熟知的公共認知就能聽明白是個什么概念,也就是說用一個普通人都懂的概念去詮釋或者映射一個他們從沒聽過的概念.讓陌生的知識點與大腦中爛熟于心的知識點建立多重鏈接,加深記憶.說別人能聽得懂的話這很重要!!! 一個沒學過計算機知識的賣菜大媽就不可能知道內核的基本運作了嗎? 不一定!在系列篇中試圖用鴻蒙內核源碼分析(總目錄)之故事篇去引導這一層級的認知,希望能卷入更多的人來關注基礎軟件,尤其是那些資本大鱷,加大對基礎軟件的投入.
專業概念抽象級:對抽象的專業邏輯概念具體化認知, 比如虛擬內存,老百姓是聽不懂的,學過計算機的人都懂,具體怎么實現的很多人又都不懂了,但這并不妨礙成為一個優秀的上層應用開發者,因為虛擬內存已經被抽象出來,目的是要屏蔽上層對它具體實現的認知.試圖用鴻蒙內核源碼分析(總目錄)百篇博客去拆解那些已經被抽象出來的專業概念, 希望能卷入更多對內核感興趣的應用軟件人才流入基礎軟件生態, 應用軟件咱們是無敵宇宙,但基礎軟件卻很薄弱.
具體微觀代碼級:這一級是具體到每一行代碼的實現,到了用代碼指令級的地步,這段代碼是什么意思?為什么要這么設計?有沒有更好的方案?鴻蒙內核源碼注解分析試圖從細微處去解釋代碼實現層,英文真的是天生適合設計成編程語言的人類語言,計算機的01碼映射到人類世界的26個字母,誕生了太多的偉大奇跡.但我們的母語注定了很大部分人存在著自然語言層級的理解映射,希望鴻蒙內核源碼注解分析能讓更多愛好者快速的理解內核,共同進步.
編輯:hfy
-
虛擬內存
+關注
關注
0文章
78瀏覽量
8224 -
鴻蒙系統
+關注
關注
183文章
2641瀏覽量
67843
發布評論請先 登錄
鴻蒙內核源碼分析:給HarmonyOS源碼逐行加上中文注釋
鴻蒙源碼分析系列(總目錄) | 給HarmonyOS源碼逐行加上中文注釋
HarmonyOS內核源碼分析(上)電子書-上線了
HarmonyOS內核源碼分析(中)——電子書上線啦!
HarmonyOS 內核源碼分析(下)—電子書上線啦!
鴻蒙內核源碼分析(百篇博客分析.挖透鴻蒙內核)
鴻蒙內核源碼分析:鴻蒙內核的每段匯編代碼解析

鴻蒙內核源碼分析: 虛擬內存和物理內存是怎么管理的

評論