最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

簡單分析Linux內(nèi)核基礎(chǔ)篇——initcall

2023-03-21 15:28 作者:補給站Linux內(nèi)核  | 我要投稿


寫過Linux驅(qū)動的人都知道module_init宏,因為它聲明了一個驅(qū)動的入口函數(shù)。

除了module_init宏,你會發(fā)現(xiàn)在Linux內(nèi)核中有許多的驅(qū)動并沒有使用module_init宏來聲明入口函數(shù),而是看到了許多諸如以下的聲明:

上述舉例的兩個驅(qū)動入口分別使用了device_initcall()arch_initcall()來聲明驅(qū)動入口,這些本質(zhì)上都是對initcall的調(diào)用,module_init也如此。

initcall等級

Linux內(nèi)核對initcall進(jìn)行了等級劃分,每一種類型的initcall都有對應(yīng)等級,等級0-7。

路徑:include/init/init.h

id越小等級越高,Linux會按照等級由高到低順序執(zhí)行:

這么做的目的主要是根據(jù)優(yōu)先級依次對設(shè)備進(jìn)行初始化,例如會先初始化與架構(gòu)相關(guān)的,然后再初始化內(nèi)核子系統(tǒng)。


【文章福利】小編推薦自己的Linux內(nèi)核技術(shù)交流群:【749907784】整理了一些個人覺得比較好的學(xué)習(xí)書籍、視頻資料共享在群文件里面,有需要的可以自行添加哦?。。。ê曨l教程、電子書、實戰(zhàn)項目及代碼)? ??


Linux對initcall的調(diào)用

在Linux啟動時,會依次遍歷所有等級的initcall,以完成一系列的初始化。

initcall的調(diào)用流程:

do_initcalls()函數(shù)中,會遍歷所有等級的initcall,完成初始化。

do_initcall_level()會執(zhí)行對應(yīng)等級下的所有函數(shù):

module_init等級

module_init宏使用的是device_initcall,等級為6

在一些內(nèi)核驅(qū)動中,直接使用了device_initcall()來聲明驅(qū)動入口,其效果與使用module_init是一樣的。

原文作者:嵌入式Linux充電站





簡單分析Linux內(nèi)核基礎(chǔ)篇——initcall的評論 (共 條)

分享到微博請遵守國家法律
望谟县| 和田市| 沅江市| 门头沟区| 丹寨县| 新郑市| 枣阳市| 延庆县| 盐源县| 商城县| 全南县| 会同县| 利辛县| 白山市| 青川县| 宝山区| 延边| 镇江市| 微山县| 诸城市| 宁化县| 沙田区| 保德县| 冕宁县| 淮安市| 黎平县| 常熟市| 南康市| 安岳县| 星子县| 崇仁县| 姚安县| 嘉鱼县| 黔江区| 潍坊市| 元氏县| 苍溪县| 红原县| 和硕县| 西丰县| 连江县|