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

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

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

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

CHANBAEK ? 來源:網(wǎng)絡(luò)整理 ? 2024-10-05 16:50 ? 次閱讀

Linux根文件系統(tǒng)(rootfs)是Linux系統(tǒng)中所有其他文件系統(tǒng)和目錄的起點,它是內(nèi)核啟動時掛載的第一個文件系統(tǒng)。

一、Linux根文件系統(tǒng)的定義與重要性

Linux根文件系統(tǒng)是Linux操作系統(tǒng)啟動時掛載的第一個文件系統(tǒng),它包含了系統(tǒng)啟動和運(yùn)行所需的所有基本文件和數(shù)據(jù)。這些文件包括內(nèi)核代碼映像、系統(tǒng)初始化腳本、服務(wù)程序、庫文件等。根文件系統(tǒng)是Linux系統(tǒng)架構(gòu)的基石,沒有它,系統(tǒng)將無法啟動或正常運(yùn)行。

二、掛載過程

在Linux系統(tǒng)啟動過程中,內(nèi)核首先會進(jìn)行一系列的初始化工作,包括內(nèi)存管理、設(shè)備檢測等。隨后,內(nèi)核會掛載根文件系統(tǒng)。這一過程涉及到多個步驟,包括初始化文件系統(tǒng)相關(guān)的數(shù)據(jù)結(jié)構(gòu)、注冊并掛載根文件系統(tǒng)等。

關(guān)鍵代碼片段

在Linux內(nèi)核源代碼中,根文件系統(tǒng)的掛載過程主要在start_kernel()函數(shù)中啟動,并經(jīng)過一系列的函數(shù)調(diào)用最終完成。以下是一個簡化的流程示意(注意:實際代碼會更復(fù)雜且涉及多個文件):

start_kernel() {  
    // ... 其他初始化代碼 ...  
  
    vfs_caches_init(totalram_pages); // 初始化VFS(虛擬文件系統(tǒng))緩存  
    mnt_init(); // 初始化掛載相關(guān)的數(shù)據(jù)結(jié)構(gòu)  
  
    // ... 更多初始化代碼 ...  
  
    init_rootfs(); // 注冊并初始化根文件系統(tǒng)  
    init_mount_tree(); // 掛載根文件系統(tǒng)  
  
    // ... 其他啟動代碼 ...  
}  
  
// 掛載根文件系統(tǒng)的具體實現(xiàn)可能會因內(nèi)核版本而異  
// 但通常會涉及到調(diào)用類似于 mount_fs() 的函數(shù),該函數(shù)會根據(jù)文件系統(tǒng)的類型執(zhí)行掛載操作

三、核心組件

Linux根文件系統(tǒng)的核心組件包括:

  1. 基本軟件包 :提供系統(tǒng)的基本功能,如文件管理、網(wǎng)絡(luò)訪問、進(jìn)程管理等。
  2. 系統(tǒng)庫 :存放Linux運(yùn)行所必須的庫文件,這些庫文件被系統(tǒng)中的程序共享使用。
  3. Shell :提供用戶與操作系統(tǒng)交互的界面,用戶可以通過Shell執(zhí)行命令、管理文件等。
  4. 配置文件 :存放系統(tǒng)配置信息,如網(wǎng)絡(luò)配置、服務(wù)啟動配置等。
  5. 設(shè)備驅(qū)動 :提供對各種硬件設(shè)備的支持,使Linux系統(tǒng)能夠訪問和控制硬件設(shè)備。

四、標(biāo)準(zhǔn)目錄結(jié)構(gòu)

Linux根文件系統(tǒng)的標(biāo)準(zhǔn)目錄結(jié)構(gòu)遵循Linux標(biāo)準(zhǔn)文件系統(tǒng)層次結(jié)構(gòu)規(guī)范,主要包括以下目錄:

  • /bin:存放用戶常用的基本命令,這些命令在掛接其他文件系統(tǒng)之前就可以使用。
  • /sbin:存放系統(tǒng)管理程序,這些程序通常由超級用戶(root)使用。
  • /etc:存放系統(tǒng)配置文件。
  • /lib:存放庫文件,這些庫文件被系統(tǒng)中的程序共享使用。
  • /dev:存放設(shè)備文件,Linux將硬件設(shè)備抽象為文件進(jìn)行管理。
  • /usr:存放用戶程序和文檔,通常系統(tǒng)安裝完成后此目錄占用空間最大。
  • /var:存放經(jīng)常變化的文件,如日志文件、郵件等。
  • /proc:一個虛擬文件系統(tǒng),提供系統(tǒng)運(yùn)行時的信息。
  • /sys:系統(tǒng)啟動后作為sysfs文件系統(tǒng)的掛載點,提供內(nèi)核數(shù)據(jù)結(jié)構(gòu)信息。

五、系統(tǒng)啟動和運(yùn)行中的作用

在Linux系統(tǒng)啟動過程中,根文件系統(tǒng)扮演著至關(guān)重要的角色。它不僅是內(nèi)核啟動后掛載的第一個文件系統(tǒng),還包含了系統(tǒng)啟動所需的初始化腳本、服務(wù)程序等。系統(tǒng)啟動后,根文件系統(tǒng)會加載并運(yùn)行這些腳本和服務(wù),完成系統(tǒng)的初始化和配置工作。

在系統(tǒng)運(yùn)行過程中,根文件系統(tǒng)同樣發(fā)揮著重要作用。它提供了對文件系統(tǒng)的訪問和管理功能,使得用戶可以方便地存取和管理文件。同時,根文件系統(tǒng)還包含了各種系統(tǒng)工具和庫文件,為用戶和程序提供了豐富的功能和接口

總結(jié)

Linux根文件系統(tǒng)是Linux系統(tǒng)中所有其他文件系統(tǒng)和目錄的起點,它包含了系統(tǒng)啟動和運(yùn)行所需的所有基本文件和數(shù)據(jù)。在系統(tǒng)啟動過程中,根文件系統(tǒng)是內(nèi)核掛載的第一個文件系統(tǒng),它包含了系統(tǒng)啟動所需的初始化腳本、服務(wù)程序等。在系統(tǒng)運(yùn)行過程中,根文件系統(tǒng)提供了對文件系統(tǒng)的訪問和管理功能,為用戶和程序提供了豐富的功能和接口。通過深入了解Linux根文件系統(tǒng)的工作原理和核心組件,我們可以更好地理解和維護(hù)Linux系統(tǒng)。

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

    關(guān)注

    87

    文章

    11204

    瀏覽量

    208701
  • 操作系統(tǒng)
    +關(guān)注

    關(guān)注

    37

    文章

    6676

    瀏覽量

    123133
  • 根文件系統(tǒng)
    +關(guān)注

    關(guān)注

    0

    文章

    25

    瀏覽量

    11964
收藏 人收藏

    評論

    相關(guān)推薦

    基于Buildroot的Linux系統(tǒng)構(gòu)建之文件系統(tǒng)

    基本的Linux文件系統(tǒng)是Unix文件夾目錄層次結(jié)構(gòu),skeleton是構(gòu)建文件系統(tǒng)的基礎(chǔ)。
    發(fā)表于 04-01 10:46 ?2563次閱讀

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

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

    Linux文件系統(tǒng)的組成及構(gòu)建方案

    Linux“三巨頭”已經(jīng)完成了 2 個了,就剩最后一個 rootfs(文件系統(tǒng))了,本章就來學(xué)習(xí)一下文件系統(tǒng)的組成以及如何構(gòu)建
    發(fā)表于 10-13 14:21 ?1002次閱讀

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

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

    文件系統(tǒng)的制作

    掛載文件系統(tǒng),則系統(tǒng)會出錯而退出啟動。成功之后可以自動   或手動掛載其他的文件系統(tǒng)。因此,一
    發(fā)表于 04-29 21:32

    文件系統(tǒng)掛載錯誤

    u-boot里面的加載網(wǎng)絡(luò)文件 系統(tǒng)參數(shù), 內(nèi)核通過tftp 加載并啟動成功, 但是會報文件系統(tǒng)掛載錯誤,內(nèi)核恐慌,(因為我擦掉了root
    發(fā)表于 03-11 04:32

    Linux啟動掛載文件系統(tǒng)簡析

    Linux啟動掛載文件系統(tǒng)為例,這個文件系統(tǒng)可以是真正的存儲設(shè)備上的文件系統(tǒng),也可以是網(wǎng)絡(luò)
    發(fā)表于 12-21 07:23

    淺析Ramdisk制作供linux掛載文件系統(tǒng)過程

    的chosen節(jié)點,增加linux,initrd-start 和 linux,initrd-end 屬性。八、linux和ramdisklinux在啟動的時候,會去掛載
    發(fā)表于 07-21 15:26

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

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

    Linux文件系統(tǒng)簡介

    Linux文件系統(tǒng)簡介 什么是文件   文件系統(tǒng)
    發(fā)表于 04-21 17:01 ?5096次閱讀

    基于zynq的Linux文件系統(tǒng)生成

    Linux中Root Filesystem(文件系統(tǒng))是必不可少的,常用的是BusyBox,本節(jié)就介紹一下使用BusyBox制作Linux
    發(fā)表于 02-10 15:58 ?5702次閱讀
    基于zynq的<b class='flag-5'>Linux</b><b class='flag-5'>根</b><b class='flag-5'>文件系統(tǒng)</b>生成

    需要了解linux文件系統(tǒng)掛載過程

    一:前言 前段時間在編譯kernel的時候發(fā)現(xiàn)rootfs掛載不上。相同的root選項設(shè)置舊版的image卻可以。為了徹底解決這個問題。研究了一下rootfs的掛載過程。特總結(jié)如下,希望能給這部
    發(fā)表于 04-25 16:18 ?1331次閱讀

    嵌入式Linux開發(fā)-文件系統(tǒng)NFS網(wǎng)絡(luò)掛載

    文件系統(tǒng)Linux內(nèi)核啟動之后掛載的第一個文件系統(tǒng),上篇文章里已經(jīng)介紹過,如何使用busybox來制作
    的頭像 發(fā)表于 08-14 08:57 ?1800次閱讀

    嵌入式Linux開發(fā)-文件系統(tǒng)本地掛載

    上篇文章介紹了文件系統(tǒng)的制作與NFS網(wǎng)絡(luò)掛載,這篇文章介紹內(nèi)核如何從本地掛載文件系統(tǒng),完成
    的頭像 發(fā)表于 08-14 09:10 ?2200次閱讀

    如何構(gòu)建Linux文件系統(tǒng)

    構(gòu)建Linux文件系統(tǒng)是一個涉及多個步驟和概念的過程,它對于Linux系統(tǒng)的啟動和運(yùn)行至關(guān)重要
    的頭像 發(fā)表于 10-05 16:47 ?194次閱讀