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

鴻蒙內(nèi)核源碼分析:鴻蒙內(nèi)核的每段匯編代碼解析

給 HarmonyOS 源碼逐行加上中文注解

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

鴻蒙內(nèi)核源碼分析 :內(nèi)核最重要結(jié)構(gòu)體

評(píng)論