rest_init | --- >kernel_init | --- >kernel_init_freeable | --- >do_basic_setup | --- >driver_init | --- >do_initcalls | --- >do_initcall_level | --- >do_one_initcall 注意,這里就是驅(qū)動的初始化和驅(qū)動模塊的加載。 我們知道在 rest_" />

色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

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

Linux驅(qū)動是如何掛載的

麥辣雞腿堡 ? 來源:嵌入式Linux系統(tǒng)開發(fā) ? 作者:Jasonangel ? 2023-09-28 16:48 ? 次閱讀

start_kernel 函數(shù)最后調(diào)用的是 rest_init 函數(shù),其實(shí) rest_init 函數(shù)不光產(chǎn)生了最重要的 kernel_init (PID=1)和 kthreadd (PID=2)內(nèi)核進(jìn)程。

kernel_init 最后演變?yōu)橛脩艨臻g init 進(jìn)程(PID=1)。

rest_init 函數(shù)還有一個(gè)重要的分支:加載驅(qū)動模塊,調(diào)用流程如下:

start_kernel
  |--- >rest_init 
      |--- >kernel_init
          |--- >kernel_init_freeable
              |--- >do_basic_setup
                  |--- >driver_init
                  |--- >do_initcalls
                        |--- >do_initcall_level
                            |--- >do_one_initcall

注意,這里就是驅(qū)動的初始化和驅(qū)動模塊的加載。

我們知道在 rest_init 函數(shù)中,最重要的 1 號進(jìn)程和 2 號進(jìn)程都已經(jīng)起來了,也就是說系統(tǒng)已經(jīng)真正起來了。1 號 2 號進(jìn)程起來之前,文件系統(tǒng)的掛載是在調(diào)用 rest_init 函數(shù)之前就掛載好了,此時(shí)加載驅(qū)動是可以的。

那么這里是如何掛載的呢?

流程中 driver_init 函數(shù)會對各個(gè)驅(qū)動入口函數(shù)進(jìn)行初始化,也就是在內(nèi)存中對驅(qū)動初始化函數(shù)進(jìn)行尋址。而 do_initcalls 函數(shù)中,會按照驅(qū)動的優(yōu)先級,對驅(qū)動一個(gè)一個(gè)進(jìn)行掛載。

linux4.14/init/main.c

圖片

圖片

驅(qū)動的優(yōu)先級 :Linux 把系統(tǒng)中需要掛載的各種東西,都分為14個(gè)等級,分別為 1--1s--2--2s--3--3s--4--4s--5--5s--6--6s--7--7s,數(shù)字越小優(yōu)先級越高,定義在:

linux4.14/include/linux/init.h

圖片

一般我們自己寫的驅(qū)動模塊,文件最后會聲明一個(gè) module_init 和 module_exit ,實(shí)際上被定義為 device_initcall,優(yōu)先級為6,是要比架構(gòu)初始化模塊和文件系統(tǒng)模塊優(yōu)先級低。

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

    關(guān)注

    12

    文章

    1838

    瀏覽量

    85262
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11292

    瀏覽量

    209331
  • 函數(shù)
    +關(guān)注

    關(guān)注

    3

    文章

    4327

    瀏覽量

    62573
收藏 人收藏

    評論

    相關(guān)推薦

    linux驅(qū)動開發(fā)_文件系統(tǒng)本地掛載

    介紹Linux開發(fā)根文件系統(tǒng)掛載、NFS文件系統(tǒng)配置,UBOOT環(huán)境變量配置,完成文件系統(tǒng)啟動。
    的頭像 發(fā)表于 09-17 15:52 ?1471次閱讀
    <b class='flag-5'>linux</b><b class='flag-5'>驅(qū)動</b>開發(fā)_文件系統(tǒng)本地<b class='flag-5'>掛載</b>

    Linux網(wǎng)絡(luò)文件系統(tǒng)的注冊與掛載過程分析

    本文主要對Linux網(wǎng)絡(luò)文件系統(tǒng)的注冊與掛載過程進(jìn)行分析
    發(fā)表于 10-13 16:28 ?1058次閱讀
    <b class='flag-5'>Linux</b>網(wǎng)絡(luò)文件系統(tǒng)的注冊與<b class='flag-5'>掛載</b>過程分析

    Linux模塊相關(guān)命令 Linux驅(qū)動模塊的編寫與掛載

    Linux模塊相關(guān)命令 Linux驅(qū)動模塊的編寫與掛載
    發(fā)表于 10-01 12:20 ?477次閱讀
    <b class='flag-5'>Linux</b>模塊相關(guān)命令 <b class='flag-5'>Linux</b><b class='flag-5'>驅(qū)動</b>模塊的編寫與<b class='flag-5'>掛載</b>

    Linux 掛載文件系統(tǒng)

    Linux 掛載文件系統(tǒng) 1、掛載點(diǎn)必須是一個(gè)目錄。 2、一個(gè)分區(qū)掛載在一個(gè)已存在的目錄上,這個(gè)目錄可以不為空,但掛載后這個(gè)目錄下以前的內(nèi)
    發(fā)表于 01-18 12:51 ?2220次閱讀

    Linux基礎(chǔ)教程之Linux查看磁盤掛載有哪些方法詳細(xì)方法概述

    本文檔的主要內(nèi)容詳細(xì)介紹的是Linux基礎(chǔ)教程之Linux查看磁盤掛載有哪些方法詳細(xì)方法概述詳細(xì)資料免費(fèi)下載。
    發(fā)表于 10-26 17:15 ?1次下載

    關(guān)于Linux系統(tǒng)如何掛載數(shù)據(jù)盤?

    遠(yuǎn)程SSH登錄上CentOS或Debian及Ubuntu等系列的Linux服務(wù)器后,進(jìn)行如下操作 提醒:掛載操作會清空數(shù)據(jù),請確認(rèn)掛載盤無數(shù)據(jù)或者未使用.
    發(fā)表于 04-23 13:39 ?1023次閱讀

    linux掛載u盤的方法

    linux掛載U盤具體步驟如下:
    發(fā)表于 05-19 09:14 ?2662次閱讀
    <b class='flag-5'>linux</b><b class='flag-5'>掛載</b>u盤的方法

    如何在Linux掛載Windows共享目錄

    Linux/UNIX操作系統(tǒng)可以使用`mount`命令在指定的掛載點(diǎn)掛載CIFS Windows共享目錄。
    的頭像 發(fā)表于 12-07 09:29 ?4137次閱讀

    Linux掛載硬盤

    Linux掛載硬盤
    的頭像 發(fā)表于 01-12 10:52 ?1650次閱讀
    <b class='flag-5'>Linux</b><b class='flag-5'>掛載</b>硬盤

    Linux中的掛載命令mount是什么

    Linux文件系統(tǒng)中的所有文件都以/ 為根的大樹的形式排列。這些文件可以根據(jù)您的分區(qū)表分布在各種設(shè)備上,最初你的父目錄安裝(即附加)到這棵樹的/ ,其他的可以手動掛載使用GUI界面(如果可用)或使用掛載
    的頭像 發(fā)表于 02-20 16:26 ?2493次閱讀
    <b class='flag-5'>Linux</b>中的<b class='flag-5'>掛載</b>命令mount是什么

    Linux系統(tǒng)的三種掛載方式

    hello,大家好!在服務(wù)器使用過程中,mount掛載幾乎是最常用的一種操作了,這周就給大家介紹一下linux文件掛載相關(guān)介紹。
    的頭像 發(fā)表于 05-06 09:20 ?824次閱讀

    linux文件掛載相關(guān)介紹

    mount是Linux下的一個(gè)命令,它可以將分區(qū)掛載或掛接到Linux的一個(gè)文件夾下,從而將分區(qū)和該目錄聯(lián)系起來,當(dāng)我們只要訪問這個(gè)文件夾時(shí),就相當(dāng)于訪問該分區(qū)了。
    的頭像 發(fā)表于 05-12 15:23 ?589次閱讀

    驅(qū)動動模塊之間如何更改模塊掛載順序

    fs_initcall 去聲明。 2、對于同一優(yōu)先級的驅(qū)動模塊,可以在 Makefile 中更改其編譯和鏈接的順序,就會切換其掛載的順序。(靜態(tài)編譯) 3、動態(tài)加載驅(qū)動模塊:等 Linux
    的頭像 發(fā)表于 09-28 16:54 ?1539次閱讀
    <b class='flag-5'>驅(qū)動</b>動模塊之間如何更改模塊<b class='flag-5'>掛載</b>順序

    Linux添加磁盤創(chuàng)建分區(qū)、掛載

    Linux添加磁盤創(chuàng)建分區(qū)、掛載
    發(fā)表于 04-20 17:49 ?498次閱讀
    <b class='flag-5'>Linux</b>添加磁盤創(chuàng)建分區(qū)、<b class='flag-5'>掛載</b>

    Linux根文件系統(tǒng)的掛載過程

    Linux根文件系統(tǒng)(rootfs)是Linux系統(tǒng)中所有其他文件系統(tǒng)和目錄的起點(diǎn),它是內(nèi)核啟動時(shí)掛載的第一個(gè)文件系統(tǒng)。
    的頭像 發(fā)表于 10-05 16:50 ?403次閱讀
    主站蜘蛛池模板: 国产成人久久精品激情| 99久久久免费精品国产| 你是淫荡的我的女王| 成人小视频在线免费观看| 无毒成人社区| 久草色视频| CHINA末成年VIDEO学生| 色婷婷国产精品视频一区二区三区| 国产永久视频| 24小时日本在线电影| 日韩亚洲欧美中文高清| 国产女合集第六部| 在线不卡日本v二区| 人人干人人看| 国产亚洲精品精品精品| 18禁无遮遮挡羞漫画免费阅读| 日本电影小姐| 和姐姐做插得很深| av亚洲色天堂2017| 香蕉eeww99国产精品| 裸妇厨房风流在线观看| 大香伊人中文字幕精品| 亚洲日韩视频免费观看| 欧美日韩高清一区| 国产亚洲精品视频亚洲香蕉视| 91精品一区二区三区在线观看| 十大禁止安装的黄台有风险| 久久成人免费观看全部免费| 产传媒61国产免费| 亚洲色图影院| 青青草色青伊人| 护士WC女子撒尿| yellow片高清视频免费看| 亚洲精品6久久久久中文字幕| 欧美wwwvideos在线观看| 国产午夜高潮熟女精品AV| 97视频在线免费播放| 午夜免费福利| 欧美freesex黑人又粗又| 黑人干日本美女| 啊好深啊别拔就射在里面|