91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

開源鴻蒙內(nèi)核源碼分析系列 | “內(nèi)核”驅(qū)動(dòng) | 作者披露寫這個(gè)系列的動(dòng)因

共熵服務(wù)中心 ? 來(lái)源:未知 ? 2022-11-18 21:15 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群


我是誰(shuí)?

大家可以叫我turing ,計(jì)算機(jī)碩士,某互聯(lián)網(wǎng)公司技術(shù)副總裁 。計(jì)劃用 5 - 10 年時(shí)間把鴻蒙系統(tǒng)的底層實(shí)現(xiàn)整理成檔,包括:內(nèi)核實(shí)現(xiàn)、驅(qū)動(dòng)框架、協(xié)議棧、應(yīng)用框架、編譯構(gòu)建、運(yùn)行時(shí)系統(tǒng) 等核心子系統(tǒng)。工程浩大,自不量力,然興趣所至,義無(wú)反顧, 此念不息,堅(jiān)如磐石。

內(nèi)驅(qū)力?

一句話:熱愛是所有的理由和答案。

因大學(xué)時(shí)閱讀 linux 2.6 內(nèi)核痛并快樂(lè)的經(jīng)歷,一直有個(gè)心愿,對(duì)底層基礎(chǔ)技術(shù)進(jìn)行一次系統(tǒng)性的整理,方便自己隨時(shí)翻看,同時(shí)讓更多對(duì)底層感興趣的小伙伴減少時(shí)間,加速對(duì)計(jì)算機(jī)系統(tǒng)級(jí)的理解,而不至于過(guò)早的放棄。但因過(guò)程種種,多年一直沒(méi)有行動(dòng),基本要放棄這件事了。恰逢 2020/9/10 鴻蒙正式開源,重新激活了多年的心愿,就有那么點(diǎn)如黃河之水一發(fā)不可收拾了。

包含三部分內(nèi)容:注源,寫博 ,畫圖, 目前對(duì)內(nèi)核源碼的注解完成 80% ,博客分析完成80+篇,百圖畫鴻蒙完成20張,空閑時(shí)間幾乎被占用,時(shí)間不夠用,但每天都很充實(shí),連做夢(mèng)鴻蒙系統(tǒng)都在魚貫而入。是件很有挑戰(zhàn)的事,時(shí)間單位以年計(jì),已持續(xù)一年半,期間得到眾多小伙伴的支持與糾錯(cuò),在此謝過(guò) ! :P

為何要精讀內(nèi)核源碼?

碼農(nóng)的學(xué)職生涯,都應(yīng)精讀一遍內(nèi)核源碼。以澆筑好計(jì)算機(jī)知識(shí)大廈的地基,地基縱深的堅(jiān)固程度,很大程度能決定未來(lái)大廈能蓋多高。那為何一定要精讀細(xì)品呢?

因?yàn)閮?nèi)核代碼本身并不太多,都是濃縮的精華,精讀是讓各個(gè)知識(shí)點(diǎn)高頻出現(xiàn),不孤立成點(diǎn)狀記憶,沒(méi)有足夠連接點(diǎn)的知識(shí)點(diǎn)是很容易忘的,點(diǎn)點(diǎn)成線,線面成體,連接越多,記得越牢,如此短時(shí)間內(nèi)容易結(jié)成一張高濃度,高密度的系統(tǒng)化知識(shí)網(wǎng),訓(xùn)練大腦肌肉記憶,駐入大腦直覺(jué)區(qū),想抹都抹不掉,終生攜帶,隨時(shí)調(diào)取。跟騎單車一樣,一旦學(xué)會(huì),即便多年不騎,照樣跨上就走,游刃有余。

大家在平時(shí),一定會(huì)有這種體會(huì):學(xué)任何一個(gè)新東西的過(guò)程中,必然會(huì)接觸到很多新的概念,尤其是像 Java/android 這樣的的生態(tài),枝繁葉茂,相應(yīng)的概念也特別多。很多同學(xué),如果掌握不到要領(lǐng),一個(gè)猛子扎下去,很快就會(huì)無(wú)數(shù)的概念海藻繞在其中出,難以自拔,痛苦難耐。

(〃?????)ゞ鴻蒙內(nèi)核開發(fā)者

感謝開放原子開源基金會(huì),致敬鴻蒙內(nèi)核開發(fā)者提供了如此優(yōu)秀的源碼,一了多年的夙愿,津津樂(lè)道于此。從內(nèi)核一行行的代碼中能深深感受到開發(fā)者各中艱辛與堅(jiān)持,及鴻蒙生態(tài)對(duì)未來(lái)的價(jià)值,這些是張嘴就來(lái)的網(wǎng)絡(luò)噴子們永遠(yuǎn)不能體會(huì)到的??梢院敛豢鋸埖恼f(shuō)鴻蒙內(nèi)核源碼可作為大學(xué):C語(yǔ)言,數(shù)據(jù)結(jié)構(gòu),操作系統(tǒng),匯編語(yǔ)言,計(jì)算機(jī)系統(tǒng)結(jié)構(gòu),計(jì)算機(jī)組成原理,微機(jī)接口 七門課程的教學(xué)項(xiàng)目。如此寶庫(kù),不深入研究實(shí)在是暴殄天物,于心不忍,堅(jiān)信鴻蒙大勢(shì)所趨,未來(lái)可期,其必定成功,也必然成功,誓做其堅(jiān)定的追隨者和傳播者。

理解內(nèi)核的三個(gè)層級(jí)

普通概念映射級(jí):這一級(jí)不涉及專業(yè)知識(shí),用大眾所熟知的公共認(rèn)知就能聽明白是個(gè)什么概念,也就是說(shuō)用一個(gè)普通人都懂的概念去詮釋或者映射一個(gè)他們從沒(méi)聽過(guò)的概念。讓陌生的知識(shí)點(diǎn)與大腦中爛熟于心的知識(shí)點(diǎn)建立多重鏈接,加深記憶。說(shuō)別人能聽得懂的話這很重要。一個(gè)沒(méi)學(xué)過(guò)計(jì)算機(jī)知識(shí)的賣菜大媽就不可能知道內(nèi)核的基本運(yùn)作了嗎?不一定。在系列篇中試圖用故事,打比方,去引導(dǎo)這一層級(jí)的認(rèn)知,希望能卷入更多的人來(lái)關(guān)注基礎(chǔ)軟件,人多了場(chǎng)子熱起來(lái)了創(chuàng)新就來(lái)了。

專業(yè)概念抽象級(jí):對(duì)抽象的專業(yè)邏輯概念具體化認(rèn)知, 比如虛擬內(nèi)存,老百姓是聽不懂的,學(xué)過(guò)計(jì)算機(jī)的人都懂,具體怎么實(shí)現(xiàn)的很多人又都不懂了,但這并不妨礙成為一個(gè)優(yōu)秀的上層應(yīng)用開發(fā)者,因?yàn)樘摂M內(nèi)存已經(jīng)被抽象出來(lái),目的是要屏蔽上層對(duì)它具體實(shí)現(xiàn)的認(rèn)知。試圖用百篇博客系列篇去拆解那些已經(jīng)被抽象出來(lái)的專業(yè)概念, 希望能卷入更多對(duì)內(nèi)核感興趣的應(yīng)用軟件人才流入基礎(chǔ)軟硬件生態(tài), 應(yīng)用軟件咱們是無(wú)敵宇宙,但基礎(chǔ)軟件卻很薄弱。

具體微觀代碼級(jí):這一級(jí)是具體到每一行代碼的實(shí)現(xiàn),到了用代碼指令級(jí)的地步,這段代碼是什么意思?為什么要這么設(shè)計(jì)?有沒(méi)有更好的方案?鴻蒙內(nèi)核源碼注解分析 試圖從細(xì)微處去解釋代碼實(shí)現(xiàn)層,英文真的是天生適合設(shè)計(jì)成編程語(yǔ)言的人類語(yǔ)言,計(jì)算機(jī)的01碼映射到人類世界的26個(gè)字母,誕生了太多的偉大奇跡。但我們的母語(yǔ)注定了很大部分人存在著自然語(yǔ)言層級(jí)的理解映射,希望內(nèi)核注解分析能讓更多愛好者節(jié)約時(shí)間成本,哪怕節(jié)約一分鐘也是這件事莫大的意義。

四個(gè)維度解剖內(nèi)核

為了全方位剖析內(nèi)核,在 畫圖,寫文,注源,成冊(cè) 四個(gè)方向做了努力,試圖以講故事,畫圖表,寫文檔,拆源碼 立體的方式表述內(nèi)核。很喜歡易中天老師的一句話:研究方式不等于表述方式。底層技術(shù)并不枯燥,它可以很有意思,它可以是我們生活中的場(chǎng)景。

一:百圖畫鴻蒙 | 一圖一主干 | 骨骼系統(tǒng)

如果把鴻蒙比作人,百圖目的是要畫出其骨骼系統(tǒng)。

百圖系列每張圖都是心血之作,耗時(shí)甚大,能用一張就絕不用兩張,所以會(huì)畫的比較復(fù)雜,高清圖會(huì)很大,可在公眾號(hào)中回復(fù) 百圖 獲取3倍超高清最新圖。v**.xx代表圖的版本,請(qǐng)留意圖的更新。

例如:雙向鏈表 是內(nèi)核最重要的結(jié)構(gòu)體,站長(zhǎng)更愿意將它比喻成人的左右手,其意義是通過(guò)寄生在宿主結(jié)構(gòu)體上來(lái)體現(xiàn),可想象成在宿主結(jié)構(gòu)體裝上一對(duì)對(duì)勤勞的雙手,它真的很會(huì)來(lái)事,超級(jí)活躍分子,為宿主到處拉朋友,建圈子。其插入 | 刪除 | 遍歷操作是它最常用的社交三大件,若不理解透徹在分析源碼過(guò)程中很容易卡殼。雖在網(wǎng)上能找到很多它的圖,但怎么看都不是自己想要的,干脆重畫了它的主要操作。

二:百萬(wàn)注內(nèi)核 | 處處扣細(xì)節(jié) | 細(xì)胞血管

百萬(wàn)漢字注解內(nèi)核目的是要看清楚其毛細(xì)血管,細(xì)胞結(jié)構(gòu),等于在拿放大鏡看內(nèi)核。內(nèi)核并不神秘,帶著問(wèn)題去源碼中找答案是很容易上癮的,你會(huì)發(fā)現(xiàn)很多文章對(duì)一些問(wèn)題的解讀是錯(cuò)誤的,或者說(shuō)不深刻難以自圓其說(shuō),你會(huì)慢慢形成自己新的解讀,而新的解讀又會(huì)碰到新的問(wèn)題,如此層層遞進(jìn),滾滾向前,拿著放大鏡根本不愿意放手。

因鴻蒙內(nèi)核6W+代碼量,本身只有較少的注釋, 中文注解以不對(duì)原有代碼侵入為前提,源碼中所有英文部分都是原有注釋,所有中文部分都是中文版的注釋,同時(shí)為方便同步官方版本的更新,盡量不去增加代碼的行數(shù),不破壞文件的結(jié)構(gòu),注釋多類似以下的方式:

  • 在重要模塊的.c/.h文件開始位置先對(duì)模塊功能做整體的介紹,例如異常接管模塊注解如圖所示:

    注解過(guò)程中查閱了很多的資料和書籍,在具體代碼處都附上了參考鏈接。

  • 繪制字符圖幫助理解模塊 ,例如 虛擬內(nèi)存區(qū)域分布沒(méi)有圖很難理解。

  • 而函數(shù)級(jí)注解會(huì)詳細(xì)到重點(diǎn)行,甚至每一行, 例如申請(qǐng)互斥鎖的主體函數(shù),不可謂不重要,而官方注釋僅有一行,如圖所示:

    注解創(chuàng)建了一些特殊記號(hào),可直接搜索查看

    • 搜索 @note_pic 可查看繪制的全部字符圖
    • 搜索 @note_why 是尚未看明白的地方,有看明白的,請(qǐng)新建 Pull Request完善
    • 搜索 @note_thinking 是一些的思考和建議
    • 搜索 @note_#if0 是由第三方項(xiàng)目提供不在內(nèi)核源碼中定義的極為重要結(jié)構(gòu)體,為方便理解而添加的。
    • 搜索 @note_link 是網(wǎng)址鏈接,方便理解模塊信息,來(lái)源于官方文檔,百篇博客,外部鏈接
    • 搜索 @note_good 是給源碼點(diǎn)贊的地方

三:參考手冊(cè) | Doxygen呈現(xiàn) | 診斷

在中文加注版基礎(chǔ)上構(gòu)建了參考手冊(cè),如此可以看到毛細(xì)血管級(jí)的網(wǎng)絡(luò)圖,注解支持 doxygen 格式標(biāo)準(zhǔn)。

圖為內(nèi)核main的調(diào)用關(guān)系直觀展現(xiàn),如果沒(méi)有這張圖,光main一個(gè)函數(shù)就夠喝一壺。main本身是由匯編指令 bl main調(diào)用

可前往 >> 鴻蒙研究站 | 參考手冊(cè) (http://doxygen.weharmonyos.com/index.html)體驗(yàn)

圖為內(nèi)核所有結(jié)構(gòu)體索引,點(diǎn)擊可查看每個(gè)結(jié)構(gòu)變量細(xì)節(jié)

可前往 >> 鴻蒙研究站 | 結(jié)構(gòu)體索引 (http://doxygen.weharmonyos.com/classes.html)體驗(yàn)。

四:百文說(shuō)內(nèi)核 | 抓住主脈絡(luò) | 肌肉器官

百文相當(dāng)于摸出內(nèi)核的肌肉和器官系統(tǒng),讓人開始豐滿有立體感,因是直接從注釋源碼起步,在加注釋過(guò)程中,每每有心得處就整理,慢慢形成了以下文章。內(nèi)容立足源碼,常以生活場(chǎng)景打比方盡可能多的將內(nèi)核知識(shí)點(diǎn)置入某種場(chǎng)景,具有畫面感,容易理解記憶。說(shuō)別人能聽得懂的話很重要! 百篇博客絕不是百度教條式的在說(shuō)一堆詰屈聱牙的概念,那沒(méi)什么意思。更希望讓內(nèi)核變得栩栩如生,倍感親切。

與代碼需不斷debug一樣,文章內(nèi)容會(huì)存在不少錯(cuò)漏之處,請(qǐng)多包涵,但會(huì)反復(fù)修正,持續(xù)更新,在開發(fā)者論壇發(fā)布的內(nèi)容文章名稱前面會(huì)有v**.xx 代表文章序號(hào)和修改的次數(shù),精雕細(xì)琢,言簡(jiǎn)意賅,力求打造精品內(nèi)容。

基礎(chǔ)知識(shí)

開源鴻蒙內(nèi)核源碼分析(雙向鏈表) | 誰(shuí)是內(nèi)核最重要結(jié)構(gòu)體

開源鴻蒙內(nèi)核源碼分析(內(nèi)核概念) | 正在制作中 ...

開源鴻蒙內(nèi)核源碼分析(源碼結(jié)構(gòu)) | 正在制作中 ...

開源鴻蒙內(nèi)核源碼分析(地址空間) | 正在制作中 ...

開源鴻蒙內(nèi)核源碼分析(計(jì)時(shí)單位) | 內(nèi)核如何看待時(shí)間

開源鴻蒙內(nèi)核源碼分析(優(yōu)雅的宏) | 編譯器也喜歡復(fù)制粘貼

開源鴻蒙內(nèi)核源碼分析(鉤子框架) | 正在制作中 ...

開源鴻蒙內(nèi)核源碼分析(位圖管理) | 一分錢被掰成八半使用

開源鴻蒙內(nèi)核源碼分析(POSIX) | 操作系統(tǒng)界的話事人

開源鴻蒙內(nèi)核源碼分析(main函數(shù)) | 正在制作中 ...

進(jìn)程管理

開源鴻蒙內(nèi)核源碼分析(調(diào)度故事) | 大郎,該喝藥了

開源鴻蒙內(nèi)核源碼分析(進(jìn)程控制塊) | 可憐天下父母心

開源鴻蒙內(nèi)核源碼分析(進(jìn)程空間) | 正在制作中 ...

開源鴻蒙內(nèi)核源碼分析(線性區(qū)) | 人要有空間才能好好相處

開源鴻蒙內(nèi)核源碼分析(紅黑樹) | 眾里尋他千百度

開源鴻蒙內(nèi)核源碼分析(進(jìn)程管理) | 家家有本難念的經(jīng)

開源鴻蒙內(nèi)核源碼分析(Fork進(jìn)程) | 一次調(diào)用 兩次返回

開源鴻蒙內(nèi)核源碼分析(進(jìn)程回收) | 臨終托孤的短命娃

開源鴻蒙內(nèi)核源碼分析(Shell編輯) | 兩個(gè)任務(wù) 三個(gè)階段

開源鴻蒙內(nèi)核源碼分析(Shell解析) | 應(yīng)用窺伺內(nèi)核的窗口

任務(wù)管理

開源鴻蒙內(nèi)核源碼分析(任務(wù)控制塊) | 內(nèi)核最重要的概念

開源鴻蒙內(nèi)核源碼分析(并發(fā)并行) | 如何搞清楚它倆區(qū)分

開源鴻蒙內(nèi)核源碼分析(就緒隊(duì)列) | 美好的事物永遠(yuǎn)值得等待

開源鴻蒙內(nèi)核源碼分析(調(diào)度機(jī)制) | 公平是相對(duì)的

開源鴻蒙內(nèi)核源碼分析(任務(wù)管理) | 如何管理任務(wù)池

開源鴻蒙內(nèi)核源碼分析(用棧方式) | 誰(shuí)來(lái)提供程序運(yùn)行場(chǎng)地

開源鴻蒙內(nèi)核源碼分析(軟件定時(shí)器) | 內(nèi)核最高級(jí)任務(wù)竟是它

開源鴻蒙內(nèi)核源碼分析(控制臺(tái)) | 一個(gè)讓很多人模糊的概念

開源鴻蒙內(nèi)核源碼分析(遠(yuǎn)程登錄) | 內(nèi)核如何接待遠(yuǎn)方的客人

開源鴻蒙內(nèi)核源碼分析(協(xié)議棧) | 正在制作中 ...

內(nèi)存管理

開源鴻蒙內(nèi)核源碼分析(內(nèi)存規(guī)則) | 內(nèi)存管理到底在管什么

開源鴻蒙內(nèi)核源碼分析(物理內(nèi)存) | 真實(shí)的可不一定精彩

開源鴻蒙內(nèi)核源碼分析(內(nèi)存概念) | 正在制作中 ...

開源鴻蒙內(nèi)核源碼分析(虛實(shí)映射) | 映射是偉大的發(fā)明

開源鴻蒙內(nèi)核源碼分析(頁(yè)表管理) | 映射關(guān)系保存在哪

開源 鴻蒙內(nèi)核源碼分析(靜態(tài)分配) | 很簡(jiǎn)單的一位小朋友

開源鴻蒙內(nèi)核源碼分析(TLFS算法) | 圖表解讀TLFS原理

開源鴻蒙內(nèi)核源碼分析(內(nèi)存池管理) | 如何高效切割合并內(nèi)存塊

開源鴻蒙內(nèi)核源碼分析(原子操作) | 誰(shuí)在守護(hù)指令執(zhí)行的完整性

開源鴻蒙內(nèi)核源碼分析(圓整對(duì)齊) | 正在制作中 ...

通訊機(jī)制

開源鴻蒙內(nèi)核源碼分析(通訊總覽) | 內(nèi)核跟人一樣都喜歡八卦

開源鴻蒙內(nèi)核源碼分析(自旋鎖) | 死等丈夫歸來(lái)的貞潔烈女

開源鴻蒙內(nèi)核源碼分析(互斥鎖) | 有你沒(méi)她 相安無(wú)事

開源鴻蒙內(nèi)核源碼分析(快鎖使用) | 用戶態(tài)負(fù)責(zé)快鎖邏輯

開源鴻蒙內(nèi)核源碼分析(快鎖實(shí)現(xiàn)) | 內(nèi)核態(tài)負(fù)責(zé)快鎖調(diào)度

開源鴻蒙內(nèi)核源碼分析(讀寫鎖) | 內(nèi)核如何實(shí)現(xiàn)多讀單寫

開源鴻蒙內(nèi)核源碼分析(信號(hào)量) | 誰(shuí)在解決任務(wù)間的同步

開源鴻蒙內(nèi)核源碼分析(事件機(jī)制) | 多對(duì)多任務(wù)如何同步

開源鴻蒙內(nèi)核源碼分析(信號(hào)生產(chǎn)) | 年過(guò)半百 活力十足

開源鴻蒙內(nèi)核源碼分析(信號(hào)消費(fèi)) | 誰(shuí)讓CPU連續(xù)四次換棧運(yùn)行

開源鴻蒙內(nèi)核源碼分析(消息隊(duì)列) | 進(jìn)程間如何異步傳遞大數(shù)據(jù)

開源鴻蒙內(nèi)核源碼分析(消息封裝) | 剖析LiteIpc(上)進(jìn)程通訊內(nèi)容

開源鴻蒙內(nèi)核源碼分析(消息映射) | 剖析LiteIpc(下)進(jìn)程通訊機(jī)制

開源鴻蒙內(nèi)核源碼分析(共享內(nèi)存) | 進(jìn)程間最快通訊方式

文件系統(tǒng)

開源鴻蒙內(nèi)核源碼分析(文件概念) | 為什么說(shuō)一切皆是文件

開源鴻蒙內(nèi)核源碼分析(文件故事) | 用圖書管理說(shuō)文件系統(tǒng)

開源鴻蒙內(nèi)核源碼分析(索引節(jié)點(diǎn)) | 誰(shuí)是文件系統(tǒng)最重要的概念

開源鴻蒙內(nèi)核源碼分析(VFS) | 文件系統(tǒng)的話事人

開源鴻蒙內(nèi)核源碼分析(文件句柄) | 你為什么叫句柄

開源鴻蒙內(nèi)核源碼分析(根文件系統(tǒng)) | 誰(shuí)先掛到/誰(shuí)就是老大

開源鴻蒙內(nèi)核源碼分析(掛載機(jī)制) | 隨根逐流不掉隊(duì)

開源鴻蒙內(nèi)核源碼分析(管道文件) | 如何降低數(shù)據(jù)流動(dòng)成本

開源鴻蒙內(nèi)核源碼分析(文件映射) | 正在制作中 ...

開源 鴻蒙內(nèi)核源碼分析(寫時(shí)拷貝) | 正在制作中 ...

硬件架構(gòu)

開源鴻蒙內(nèi)核源碼分析(芯片模式) | 回顧芯片行業(yè)各位大佬

開源鴻蒙內(nèi)核源碼分析(ARM架構(gòu)) | ARMv7 & Cortex(A|R|M)

開源鴻蒙內(nèi)核源碼分析(指令集) | CICS PK RICS

開源鴻蒙內(nèi)核源碼分析(協(xié)處理器) | CPU的好幫手

開源鴻蒙內(nèi)核源碼分析(工作模式) | 正在制作中 ...

開源鴻蒙內(nèi)核源碼分析(寄存器) | 世界被它們玩出了花

開源鴻蒙內(nèi)核源碼分析(多核管理) | 并發(fā)真正的基礎(chǔ)

開源鴻蒙內(nèi)核源碼分析(中斷概念) | 海公公的日常工作

開源鴻蒙內(nèi)核源碼分析(中斷管理) | 沒(méi)中斷太可怕

內(nèi)核匯編

開源鴻蒙內(nèi)核源碼分析(編碼方式) | 機(jī)器指令是如何編碼的

開源鴻蒙內(nèi)核源碼分析(匯編基礎(chǔ)) | CPU上班也要打卡

開源鴻蒙內(nèi)核源碼分析(匯編傳參) | 如何傳遞復(fù)雜的參數(shù)

開源鴻蒙內(nèi)核源碼分析(鏈接腳本) | 正在制作中 ...

開源鴻蒙內(nèi)核源碼分析(內(nèi)核啟動(dòng)) | 正在制作中 ...

開源鴻蒙內(nèi)核源碼分析(進(jìn)程切換) | 正在制作中 ...

開源鴻蒙內(nèi)核源碼分析(任務(wù)切換) | 看匯編如何切換任務(wù)

開源鴻蒙內(nèi)核源碼分析(中斷切換) | 系統(tǒng)因中斷活力四射

開源鴻蒙內(nèi)核源碼分析(異常接管) | 社會(huì)很單純 復(fù)雜的是人

開源鴻蒙內(nèi)核源碼分析(缺頁(yè)中斷) | 正在制作中 ...

編譯運(yùn)行

開源鴻蒙內(nèi)核源碼分析(編譯過(guò)程) | 簡(jiǎn)單案例說(shuō)透中間過(guò)程

開源鴻蒙內(nèi)核源碼分析(編譯構(gòu)建) | 正在制作中 ...

開源鴻蒙內(nèi)核源碼分析(ELF格式) | 應(yīng)用程序入口并非main

開源鴻蒙內(nèi)核源碼分析(ELF解析) | 敢忘了她姐倆你就不是銀

開源鴻蒙內(nèi)核源碼分析(靜態(tài)鏈接) | 正在制作中 ...

開源鴻蒙內(nèi)核源碼分析(重定位) | 正在制作中 ...

開源鴻蒙內(nèi)核源碼分析(動(dòng)態(tài)鏈接) | 正在制作中 ...

開源鴻蒙內(nèi)核源碼分析(進(jìn)程映像) | 程序是如何被加載運(yùn)行的

開源鴻蒙內(nèi)核源碼分析(應(yīng)用啟動(dòng)) | 正在制作中 ...

開源鴻蒙內(nèi)核源碼分析(系統(tǒng)調(diào)用) | 開發(fā)者永遠(yuǎn)的口頭禪

開源鴻蒙內(nèi)核源碼分析(VDSO) | 正在制作中 ...

調(diào)測(cè)工具

開源鴻蒙內(nèi)核源碼分析(模塊監(jiān)控) | 正在制作中 ...

開源鴻蒙內(nèi)核源碼分析(日志跟蹤) | 正在制作中 ...

開源鴻蒙內(nèi)核源碼分析(系統(tǒng)安全) | 正在制作中 ...

開源鴻蒙內(nèi)核源碼分析(測(cè)試用例) | 正在制作中 ...

鴻蒙論壇 | 干凈.營(yíng)養(yǎng).不盲從

鴻蒙論壇的鏈接如下:bbs.weharmonyos.com

搭個(gè)論壇貌似不合時(shí)宜, 但站長(zhǎng)卻固執(zhí)的認(rèn)為它是技術(shù)人最好的溝通方式, 它不像群各種叨絮使人焦慮被逼的屏蔽它, 它更像個(gè)異性知己,懂你給你留足空間思考,從不擾亂你的生活,鴻蒙論壇會(huì)一直存在,并堅(jiān)持自己的風(fēng)格(干凈.營(yíng)養(yǎng).不盲從)。選擇 Discuz 是因?yàn)樗珒?yōu)秀, 一個(gè)沉淀了20年的開源平臺(tái),被所謂的時(shí)代遺忘實(shí)在是太過(guò)可惜。哪天您得空了就去逛逛吧 , 它可能并沒(méi)有那么糟糕。

四大碼倉(cāng)發(fā)布 | 源碼同步官方

內(nèi)核注解同時(shí)在 gitee | github | coding | gitcode 發(fā)布:

gitee倉(cāng)

https://gitee.com/weharmony/kernel_liteos_a_note


github倉(cāng)

https://github.com/kuangyufei/kernel_liteos_a_note


codechina倉(cāng)

https://codechina.csdn.net/kuangyufei/kernel_liteos_a_note


coding倉(cāng)

https://weharmony.coding.net/public/harmony/kernel_liteos_a_note/git/files

注解與官方源碼按月保持同步。同步歷史如下:

2022/08/28 -- 完善測(cè)試用例

2022/07/18 -- 開機(jī)代碼微調(diào)

2022/06/03 -- 增加 jffs2 編譯選項(xiàng)

2022/05/09 -- 標(biāo)準(zhǔn)庫(kù)(musl , newlib) 目錄調(diào)整

2022/04/16 -- 任務(wù)調(diào)度模塊有很大更新

2022/03/23 -- 新增各CPU核自主管理中斷, 定時(shí)器模塊較大調(diào)整

2022/02/18 -- 官方無(wú)代碼更新, 只有測(cè)試用例的完善

2022/01/20 -- 同步官方代碼,本次官方對(duì)測(cè)試用例和MMU做了較大調(diào)整

2021/12/20 -- 增加LMS模塊,完善PM,F(xiàn)at Cache

2021/11/12 -- 加入epoll支持,對(duì)shell模塊有較大調(diào)整,微調(diào)process,task,更正單詞拼寫錯(cuò)誤

2021/10/21 -- 增加性能優(yōu)化模塊perf,優(yōu)化了文件映射模塊

2021/09/14 -- common,extended等幾個(gè)目錄結(jié)構(gòu)和Makefile調(diào)整

2021/08/19 -- 各目錄增加了BUILD。gn文件,文件系統(tǒng)部分文件調(diào)整

2021/07/15 -- 改動(dòng)不大,新增blackbox,hidumper,對(duì)一些宏規(guī)范化使用

2021/06/27 -- 對(duì)文件系統(tǒng)/設(shè)備驅(qū)動(dòng)改動(dòng)較大,目錄結(jié)構(gòu)進(jìn)行了重新整理

2021/06/08 -- 對(duì)編譯構(gòu)建,任務(wù),信號(hào)模塊有較大的改動(dòng)

2021/05/28 -- 改動(dòng)不大,主要針對(duì)一些錯(cuò)誤單詞拼寫糾正

2021/05/13 -- 對(duì)系統(tǒng)調(diào)用,任務(wù)切換,信號(hào)處理,異常接管,文件管理,shell做了較大更新,代碼結(jié)構(gòu)更清晰

2021/04/21 -- 官方優(yōu)化了很多之前吐槽的地方,點(diǎn)贊

2020/09/16 -- 中文注解版起點(diǎn)

注解子系統(tǒng)倉(cāng)庫(kù)

在給鴻蒙內(nèi)核源碼加注過(guò)程中發(fā)現(xiàn)僅僅注解內(nèi)核倉(cāng)庫(kù)還不夠,因?yàn)樗P(guān)聯(lián)了其他子系統(tǒng),若對(duì)這些子系統(tǒng)不了解是很難完整的注解鴻蒙內(nèi)核,所以也對(duì)這些關(guān)聯(lián)倉(cāng)庫(kù)進(jìn)行了部分注解,這些倉(cāng)庫(kù)包括:

編譯構(gòu)建子系統(tǒng) | build_lite
https://gitee.com/weharmony/build_lite_note
協(xié)議棧 | lwip
https://gitee.com/weharmony/third_party_lwip
文件系統(tǒng) | NuttX
https://gitee.com/weharmony/third_party_NuttX
標(biāo)準(zhǔn)庫(kù) | musl
https://gitee.com/weharmony/third_party_musl
關(guān)于 zzz 目錄

中文加注版比官方版無(wú)新增文件,只多了一個(gè)zzz的目錄,里面放了一些加注所需文件,它與內(nèi)核代碼無(wú)關(guān),可以忽略它,取名zzz是為了排在最后,減少對(duì)原有代碼目錄級(jí)的侵入,zzz 的想法源于微信中名稱為AAA的那幫朋友,你的微信里應(yīng)該也有他們熟悉的身影吧 :-)

/kernel/liteos_a
├── apps # 用戶態(tài)的init和shell應(yīng)用程序
├── arch # 體系架構(gòu)的目錄,如arm
│ └── arm # arm架構(gòu)代碼
├── bsd # freebsd相關(guān)的驅(qū)動(dòng)和適配層模塊代碼引入,例如USB
├── compat # 內(nèi)核接口兼容性目錄
│ └── posix # posix相關(guān)接口
├── drivers # 內(nèi)核驅(qū)動(dòng)
│ └── char # 字符設(shè)備
│ ├── mem # 訪問(wèn)物理IO設(shè)備驅(qū)動(dòng)
│ ├── quickstart # 系統(tǒng)快速啟動(dòng)接口目錄
│ ├── random # 隨機(jī)數(shù)設(shè)備驅(qū)動(dòng)
│ └── video # framebuffer驅(qū)動(dòng)框架
├── fs # 文件系統(tǒng)模塊,主要來(lái)源于NuttX開源項(xiàng)目
│ ├── fat # fat文件系統(tǒng)
│ ├── jffs2 # jffs2文件系統(tǒng)
│ ├── include # 對(duì)外暴露頭文件存放目錄
│ ├── nfs # nfs文件系統(tǒng)
│ ├── proc # proc文件系統(tǒng)
│ ├── ramfs # ramfs文件系統(tǒng)
│ └── vfs # vfs層
├── kernel # 進(jìn)程、內(nèi)存、IPC等模塊
│ ├── base # 基礎(chǔ)內(nèi)核,包括調(diào)度、內(nèi)存等模塊
│ ├── common # 內(nèi)核通用組件
│ ├── extended # 擴(kuò)展內(nèi)核,包括動(dòng)態(tài)加載、vdso、liteipc等模塊
│ ├── include # 對(duì)外暴露頭文件存放目錄
│ └── user # 加載init進(jìn)程
├── lib # 內(nèi)核的lib庫(kù)
├── net # 網(wǎng)絡(luò)模塊,主要來(lái)源于lwip開源項(xiàng)目
├── platform # 支持不同的芯片平臺(tái)代碼,如Hi3516DV300等
│ ├── hw # 時(shí)鐘與中斷相關(guān)邏輯代碼
│ ├── include # 對(duì)外暴露頭文件存放目錄
│ └── uart # 串口相關(guān)邏輯代碼
├── security # 安全特性相關(guān)的代碼,包括進(jìn)程權(quán)限管理和虛擬id映射管理
├── syscall # 系統(tǒng)調(diào)用
├── testsuites # 單元測(cè)試用例
├── tools # 構(gòu)建工具及相關(guān)配置和代碼
└── zzz # 中文注解版新增目錄
官方文檔 | 靜態(tài)站點(diǎn)呈現(xiàn)

研究鴻蒙需不斷的翻閱資料,吸取精華,其中官方文檔必不可少, 為更好的呈現(xiàn) OpenHarmony開發(fā)文檔 , 特意做了靜態(tài)站點(diǎn) >> 鴻蒙研究站 | 官方文檔 (https://weharmony.github.io/)來(lái)方便查閱官方資料,與官方資料保持同步更新。

左側(cè)導(dǎo)航欄,右邊索引區(qū):


寫在最后

我們最近正帶著大家玩嗨OpenHarmony。如果你有用OpenHarmony開發(fā)的好玩的東東,或者有對(duì)OpenHarmony的深度技術(shù)剖析,想通過(guò)我們平臺(tái)讓更多的小伙伴知道和分享的,歡迎投稿,讓我們一起嗨起來(lái)!有點(diǎn)子,有想法,有Demo,立刻聯(lián)系我們:

合作郵箱:zzliang@atomsource.org



原文標(biāo)題:開源鴻蒙內(nèi)核源碼分析系列 | “內(nèi)核”驅(qū)動(dòng) | 作者披露寫這個(gè)系列的動(dòng)因

文章出處:【微信公眾號(hào):開源技術(shù)服務(wù)中心】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 開源技術(shù)
    +關(guān)注

    關(guān)注

    0

    文章

    389

    瀏覽量

    8749
  • OpenHarmony
    +關(guān)注

    關(guān)注

    33

    文章

    3960

    瀏覽量

    21173

原文標(biāo)題:開源鴻蒙內(nèi)核源碼分析系列 | “內(nèi)核”驅(qū)動(dòng) | 作者披露寫這個(gè)系列的動(dòng)因

文章出處:【微信號(hào):開源技術(shù)服務(wù)中心,微信公眾號(hào):共熵服務(wù)中心】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    迅為RK系列開發(fā)板重磅升級(jí)SDK內(nèi)核從5.10全面升級(jí)至6.1 LTS

    迅為RK系列開發(fā)板重磅升級(jí)SDK內(nèi)核從5.10全面升級(jí)至6.1 LTS
    的頭像 發(fā)表于 03-18 13:21 ?326次閱讀
    迅為RK<b class='flag-5'>系列</b>開發(fā)板重磅升級(jí)SDK<b class='flag-5'>內(nèi)核</b>從5.10全面升級(jí)至6.1 LTS

    迅為電子RK系列開發(fā)板SDK內(nèi)核正式升級(jí)至6.1 LTS版本

    迅為RK3568、RK3588、RK3576、RK3562系列開發(fā)板,SDK內(nèi)核從5.10版本正式升級(jí)至6.1 LTS版本。
    的頭像 發(fā)表于 03-16 16:18 ?216次閱讀

    Linux內(nèi)核驅(qū)動(dòng)開發(fā)的技術(shù)核心精要

    嵌入式Linux驅(qū)動(dòng)開發(fā)是連接硬件與操作系統(tǒng)的關(guān)鍵環(huán)節(jié)。隨著內(nèi)核演進(jìn)(如Linux 6.13)和硬件復(fù)雜度提升,開發(fā)者需掌握并發(fā)控制、中斷分層、內(nèi)存管理、設(shè)備樹、調(diào)試工具等核心知識(shí)。本文提煉出驅(qū)動(dòng)
    發(fā)表于 03-10 13:56

    TCL首款基于開源鴻蒙的智慧健康空調(diào)發(fā)布

    12月18日,在TCL空調(diào)新品發(fā)布會(huì)上,基于開源鴻蒙打造的小藍(lán)翼P7 Ultra系列AI健康空調(diào)正式發(fā)布。這是TCL空調(diào)與開源鴻蒙生態(tài)深度融
    的頭像 發(fā)表于 12-25 09:33 ?488次閱讀

    Linux內(nèi)核模塊的加載機(jī)制

    可能會(huì)有限制。 接下來(lái)是模塊的初始化。內(nèi)核會(huì)執(zhí)行模塊的初始化函數(shù),通常是用module_init宏定義的函數(shù)。這個(gè)函數(shù)負(fù)責(zé)模塊的啟動(dòng)工作,比如注冊(cè)設(shè)備驅(qū)動(dòng)或文件系統(tǒng)。如果初始化成功,模塊就被標(biāo)記
    發(fā)表于 11-25 06:59

    開源鴻蒙技術(shù)大會(huì)2025丨虛擬化與容器分論壇:構(gòu)筑開源鴻蒙虛擬化技術(shù)高地

    ,開源鴻蒙的輕量化內(nèi)核正在重塑設(shè)備交互范式;?容器化?使得開發(fā)效率極大躍升;?指令翻譯?則化解了芯片架構(gòu)的巴別塔,讓ARM與RISC-V的指令流在開源
    的頭像 發(fā)表于 11-20 17:35 ?939次閱讀
    <b class='flag-5'>開源</b><b class='flag-5'>鴻蒙</b>技術(shù)大會(huì)2025丨虛擬化與容器分論壇:構(gòu)筑<b class='flag-5'>開源</b><b class='flag-5'>鴻蒙</b>虛擬化技術(shù)高地

    開源鴻蒙技術(shù)大會(huì)2025丨OS內(nèi)核與視窗分論壇:筑基開源鴻蒙核心內(nèi)核,共拓視窗技術(shù)邊界

    開源鴻蒙技術(shù)大會(huì)2025 OS內(nèi)核與視窗分論壇在湖南長(zhǎng)沙國(guó)際會(huì)議中心圓滿舉行。來(lái)自西北工業(yè)大學(xué)、浙江大學(xué)、廈門大學(xué)、華為等高校和企業(yè)的學(xué)者專家齊聚一堂,圍繞鴻蒙
    的頭像 發(fā)表于 11-20 17:29 ?915次閱讀
    <b class='flag-5'>開源</b><b class='flag-5'>鴻蒙</b>技術(shù)大會(huì)2025丨OS<b class='flag-5'>內(nèi)核</b>與視窗分論壇:筑基<b class='flag-5'>開源</b><b class='flag-5'>鴻蒙</b>核心<b class='flag-5'>內(nèi)核</b>,共拓視窗技術(shù)邊界

    【置頂公告】視美泰開源鴻蒙系列產(chǎn)品業(yè)務(wù)咨詢與商務(wù)合作通道正式開啟!

    合作、高效響應(yīng)需求,現(xiàn)正式開通開源鴻蒙系列產(chǎn)品專項(xiàng)業(yè)務(wù)咨詢與商務(wù)合作通道,誠(chéng)邀各界伙伴攜手共進(jìn)! 合作內(nèi)容方向開源鴻蒙硬件定制開發(fā)基于Ope
    發(fā)表于 10-20 16:23

    開源鴻蒙MNN AI應(yīng)用開發(fā)與MNN移植經(jīng)驗(yàn)

    本期內(nèi)容由AI Model SIG提供,介紹了在開源鴻蒙中,利用MNN開源框架開發(fā)AI應(yīng)用以及基于MNN源碼編譯與Har包封裝的方法。
    的頭像 發(fā)表于 09-04 11:31 ?4658次閱讀
    <b class='flag-5'>開源</b><b class='flag-5'>鴻蒙</b>MNN AI應(yīng)用開發(fā)與MNN移植經(jīng)驗(yàn)

    強(qiáng)實(shí)時(shí)運(yùn)動(dòng)控制內(nèi)核MotionRT750(一):驅(qū)動(dòng)安裝、內(nèi)核配置與使用

    強(qiáng)實(shí)時(shí)運(yùn)動(dòng)控制內(nèi)核MotionRT750的驅(qū)動(dòng)安裝與內(nèi)核配置
    的頭像 發(fā)表于 07-03 15:48 ?3735次閱讀
    強(qiáng)實(shí)時(shí)運(yùn)動(dòng)控制<b class='flag-5'>內(nèi)核</b>MotionRT750(一):<b class='flag-5'>驅(qū)動(dòng)</b>安裝、<b class='flag-5'>內(nèi)核</b>配置與使用

    開源系統(tǒng)適配:聚徽分享國(guó)產(chǎn)工控平板在 Linux / 鴻蒙系統(tǒng)下的技術(shù)優(yōu)化

    在工業(yè)自動(dòng)化與智能化加速推進(jìn)的當(dāng)下,國(guó)產(chǎn)工控平板的系統(tǒng)適配成為提升設(shè)備性能與競(jìng)爭(zhēng)力的關(guān)鍵環(huán)節(jié)。Linux 和鴻蒙作為開源系統(tǒng),憑借其高度的開放性與可定制性,為國(guó)產(chǎn)工控平板帶來(lái)新的發(fā)展機(jī)遇。如何對(duì)國(guó)產(chǎn)
    的頭像 發(fā)表于 06-13 16:29 ?1150次閱讀

    開鴻Bot系列:為開源鴻蒙開發(fā)者而生!

    昨日,深開鴻正式宣布,開鴻Bot系列產(chǎn)品——開鴻BotBook與開鴻BotMini全面開啟預(yù)售。該系列面向開源鴻蒙開發(fā)者量身打造,搭載基于OpenHarmony深度定制的Kaihong
    的頭像 發(fā)表于 05-16 16:06 ?1279次閱讀
    開鴻Bot<b class='flag-5'>系列</b>:為<b class='flag-5'>開源</b><b class='flag-5'>鴻蒙</b>開發(fā)者而生!

    開源鴻蒙開發(fā)新體驗(yàn),開鴻Bot系列今日開啟預(yù)售!

    今日,深開鴻正式宣布,開鴻Bot系列產(chǎn)品——開鴻BotBook與開鴻BotMini全面開啟預(yù)售。該系列面向開源鴻蒙開發(fā)者量身打造,搭載基于OpenHarmony深度定制的Kaihong
    發(fā)表于 05-16 14:13

    開源鴻蒙開發(fā)者而生,開鴻Bot系列今日預(yù)售啟動(dòng)

    今日,深開鴻正式宣布,開鴻Bot系列產(chǎn)品——開鴻BotBook與開鴻BotMini全面開啟預(yù)售。該系列面向開源鴻蒙開發(fā)者量身打造,搭載基于OpenHarmony深度定制的Kaihong
    的頭像 發(fā)表于 05-15 14:12 ?730次閱讀
    為<b class='flag-5'>開源</b><b class='flag-5'>鴻蒙</b>開發(fā)者而生,開鴻Bot<b class='flag-5'>系列</b>今日預(yù)售啟動(dòng)

    Linux內(nèi)核編譯失???移動(dòng)硬盤和虛擬機(jī)的那些事兒

    Linux內(nèi)核卻失敗了,這是咋回事?FAT和NTFS文件系統(tǒng)不能支持軟鏈接,在這格式的磁盤里編譯內(nèi)核會(huì)失敗,同樣也不能在這樣的磁盤里解壓內(nèi)核源碼
    的頭像 發(fā)表于 04-11 11:36 ?1035次閱讀
    Linux<b class='flag-5'>內(nèi)核</b>編譯失???移動(dòng)硬盤和虛擬機(jī)的那些事兒