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

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

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

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

Linux中文件系統(tǒng)分類方法

strongerHuang ? 來源:strongerHuang ? 作者: ZhengN ? 2021-02-17 09:30 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

Linux一個重要的哲學(xué)是:一切皆文件。而文件與文件系統(tǒng)是密切相關(guān)的,本篇筆記我們來一起學(xué)習(xí)、理清那些令我們眼花繚亂的文件系統(tǒng)。

文件系統(tǒng)粗略的分類:

6821ebb2-507c-11eb-8b86-12bb97331649.png

下面依次進行介紹:

根文件系統(tǒng)

根文件系統(tǒng)(rootfs)是內(nèi)核啟動時所 mount(掛載)的第一個文件系統(tǒng),內(nèi)核代碼映像文件保存在根文件系中,而系統(tǒng)引導(dǎo)啟動程序會在根文件系統(tǒng)掛載之后從中把一些基本的初始化腳本和服務(wù)等加載到內(nèi)存中去運行。

根文件系統(tǒng)的根目錄/下有很多子目錄:

68420ffa-507c-11eb-8b86-12bb97331649.png

虛擬文件系統(tǒng)

從上面的分類圖中我們可以知道Linux中有很多文件系統(tǒng),并且是共存的。那么在Linux中是怎么做到讓一切都是文件呢?這是由于有一層虛擬文件系統(tǒng)軟件抽象層的存在,這個軟件抽象層為用戶屏蔽了底層文件系統(tǒng)的差異,向上層提供了統(tǒng)一地訪問接口。如圖:

68a4e3c8-507c-11eb-8b86-12bb97331649.png

(圖片來源:野火電子)

無論最下層的文件系統(tǒng)是什么,我們最上層的用戶端盡管使用系統(tǒng)調(diào)用接口(open、write、read等)或glibc接口(fopen、fwrite、fread等)來操作就可訪問文件系統(tǒng)里的文件,使得一切都是文件成為可能。

真文件系統(tǒng)

真文件系統(tǒng)其實是實際存儲設(shè)備的文件系統(tǒng),掛載于EEPROM、 Nor FLASH、 NAND FLASH、 eMMC 等存儲器中。

1、ext2

EXT2第二代擴展文件系統(tǒng)(second extended filesystem,縮寫為 ext2),是Linux內(nèi)核早期所用的文件系統(tǒng),但是隨著技術(shù)的發(fā)展 ext2 文件系統(tǒng)已經(jīng)不推薦使用了。ext2是一個非日志文件系統(tǒng)。

2、ext3

EXT3是第三代擴展文件系統(tǒng)(Third extended filesystem,縮寫為ext3),是一個日志文件系統(tǒng)。主要特點:

高可用性:系統(tǒng)使用了ext3文件系統(tǒng)后,即使在非正常關(guān)機后,系統(tǒng)也不需要檢查文件系統(tǒng)。宕機發(fā)生后,恢復(fù)ext3文件系統(tǒng)的時間只要數(shù)十秒鐘。

數(shù)據(jù)完整性:ext3文件系統(tǒng)能夠極大地提高文件系統(tǒng)的完整性,避免了意外宕機對文件系統(tǒng)的破壞。

3、ext4

EXT4是第四代擴展文件系統(tǒng)(Fourth extended filesystem,縮寫為 ext4)是一個日志文件系統(tǒng),是ext3文件系統(tǒng)的后繼版本。主要特點:

更多的子目錄數(shù)量:Ext3目前只支持32000個子目錄,而Ext4取消了這一限制,理論上支持無限數(shù)量的子目錄。

更多的塊和i-節(jié)點數(shù)量:Ext3文件系統(tǒng)使用32位空間記錄塊數(shù)量和i-節(jié)點數(shù)量,而Ext4文件系統(tǒng)將它們擴充到64位。

偽文件系統(tǒng)

Linux內(nèi)核提供了sysfs、procfs、devtmpfs等偽文件系統(tǒng),偽文件系統(tǒng)存在于內(nèi)存,不占用硬盤。以文件地形式向用戶提供一些系統(tǒng)信息,用戶讀寫這些文件就可以讀取、修改系統(tǒng)的一些信息。

1、procfs

procfs是 進程文件系統(tǒng)的縮寫,包含一個偽文件系統(tǒng)(啟動時動態(tài)生成的文件系統(tǒng)),用于通過內(nèi)核訪問進程信息。這個文件系統(tǒng)通常被掛載到 /proc 目錄。

由于 /proc 不是一個真正的文件系統(tǒng),它也就不占用存儲空間,只是占用有限的內(nèi)存。

/proc目錄的內(nèi)容如下:

690f2a3a-507c-11eb-8b86-12bb97331649.png

其中,這些以數(shù)字命名的文件夾就是與進程相關(guān)的部分,這些數(shù)字就是進程的PID號。

我們可以訪問系統(tǒng)信息,如讀取CPU相關(guān)信息:

69435012-507c-11eb-8b86-12bb97331649.png

查看內(nèi)核支持的文件系統(tǒng)類型:

69786432-507c-11eb-8b86-12bb97331649.png

可見,內(nèi)核支持了很多文件系統(tǒng),我們上面的文件系統(tǒng)匯總只列出了一小部分,感興趣的朋友可以自己去了解其它的。

我們可以通過/proc目錄了解到很多信息,大家可以自行嘗試查看其它信息。

2、sysfs

sysfs是一個基于內(nèi)存的文件系統(tǒng),它的作用是將內(nèi)核信息以文件的方式提供給用戶程序使用。sysfs 文件系統(tǒng)被掛載在 /sys 掛載點上。/sys目錄下的內(nèi)容如:

69bd3878-507c-11eb-8b86-12bb97331649.png

上一篇分享了《看看你的嵌入式設(shè)備CPU溫度是多少,能烤肉嗎?》中,我們讀取/sys/devices/virtual/thermal/thermal_zone0下的temp文件就可以得到cpu的溫度。

sysfs 與 proc 相比有很多優(yōu)點,最重要的莫過于設(shè)計上的清晰。sysfs 的設(shè)計原則是一個屬性文件只做一件事情, sysfs 屬性文件一般只有一個值,直接讀取或?qū)懭搿?/p>

整個 /proc/scsi目錄在2.6內(nèi)核中已被標(biāo)記為過時(LEGACY),它的功能已經(jīng)被相應(yīng)的 /sys 屬性文件所完全取代。新設(shè)計的內(nèi)核機制應(yīng)該盡量使用 sysfs 機制,而將 proc 保留給純凈的“進程文件系統(tǒng)”。

3、devtmpfs

devtmpfs 的功用是在 Linux 核心 啟動早期建立一個初步的 /dev,令一般啟動程序不用等待 udev(udev 是Linux kernel 2.6系列的設(shè)備管理器。它主要的功能是管理/dev目錄底下的設(shè)備節(jié)點。),縮短 GNU/Linux 的開機時間。

在devtmpfs出現(xiàn)之前,/dev/下面的設(shè)備節(jié)點應(yīng)該都是udev-daemon收到內(nèi)核的事件后用mknod程序或者直接調(diào)mknod()系統(tǒng)調(diào)用創(chuàng)建出來的;現(xiàn)在基本上不走udev了,幾乎所有的設(shè)備文件(比如/dev/sda1)都是內(nèi)核直接創(chuàng)建的。

我們在之前hello驅(qū)動、led驅(qū)動實驗中,我們動態(tài)加載的方式加載我們的驅(qū)動程序之后,會在/dev目錄下生成相應(yīng)的節(jié)點。我們只要在應(yīng)用程序中操作這個節(jié)點就可以間接地操控我們的led

69e3ff6c-507c-11eb-8b86-12bb97331649.png

再一次體現(xiàn)了Linux中一切皆文件的概念。

相關(guān)筆記推薦:

《嵌入式Linux驅(qū)動基礎(chǔ)》

《LED驅(qū)動實驗(總線設(shè)備驅(qū)動模型)》

網(wǎng)絡(luò)文件系統(tǒng)

NFS(Network File System) ,即網(wǎng)絡(luò)文件系統(tǒng), 能使使用者訪問網(wǎng)絡(luò)上別處的文件就像在使用自己的計算機一樣。其工作原理是使用客戶端/服務(wù)器架構(gòu) :

6a011778-507c-11eb-8b86-12bb97331649.png

服務(wù)器程序向其他計算機提供對文件系統(tǒng)的訪問,其過程稱為輸出。NFS客戶端程序?qū)蚕砦募到y(tǒng)進行訪問時,把它們從NFS服務(wù)器中“輸送”出來。

文件通常以塊為單位進行傳輸。在我們嵌入式Linux中,NFS的主要應(yīng)用如:把主機的上文件(比如目標(biāo)板的可執(zhí)行文件)共享給目標(biāo)板,這樣目標(biāo)板就很方便地運行程序。比如我們往期筆記【Linux筆記】掛載網(wǎng)絡(luò)文件系統(tǒng)中的實驗框圖:

6a2bda8a-507c-11eb-8b86-12bb97331649.png

以上就是本次的筆記分享,如有錯誤,歡迎指出,謝謝!本次著重分享了幾個重要的文件系統(tǒng),了解這幾個文件系統(tǒng)對我們學(xué)習(xí)嵌入式Linux有幫助。

責(zé)任編輯:xj

原文標(biāo)題:Linux中文件系統(tǒng)分類,以及基礎(chǔ)使用方法

文章出處:【微信公眾號:strongerHuang】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

聲明:本文內(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)注

    88

    文章

    11756

    瀏覽量

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

    關(guān)注

    0

    文章

    302

    瀏覽量

    20972

原文標(biāo)題:Linux中文件系統(tǒng)分類,以及基礎(chǔ)使用方法

文章出處:【微信號:strongerHuang,微信公眾號:strongerHuang】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

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

掃碼添加小助手

加入工程師交流群

    評論

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

    明晚8點|睿擎文件系統(tǒng)實戰(zhàn):從開發(fā)到發(fā)布全流程解析

    文件操作到鏡像發(fā)布,一次直播掌握完整開發(fā)流程!在嵌入式系統(tǒng)開發(fā)中,文件系統(tǒng)是數(shù)據(jù)存儲、配置管理和資源訪問的核心基礎(chǔ)。然而在實際開發(fā)中,文件操作效率低下、鏡像打包流程復(fù)雜、
    的頭像 發(fā)表于 11-11 11:53 ?632次閱讀
    明晚8點|睿擎<b class='flag-5'>文件系統(tǒng)</b>實戰(zhàn):從開發(fā)到發(fā)布全流程解析

    【直播預(yù)告】下周三晚8點|睿擎文件系統(tǒng)實戰(zhàn):從開發(fā)到發(fā)布全流程解析

    文件操作到鏡像發(fā)布,一次直播掌握完整開發(fā)流程!在嵌入式系統(tǒng)開發(fā)中,文件系統(tǒng)是數(shù)據(jù)存儲、配置管理和資源訪問的核心基礎(chǔ)。然而在實際開發(fā)中,文件操作效率低下、鏡像打包流程復(fù)雜、
    的頭像 發(fā)表于 11-06 18:05 ?1895次閱讀
    【直播預(yù)告】下周三晚8點|睿擎<b class='flag-5'>文件系統(tǒng)</b>實戰(zhàn):從開發(fā)到發(fā)布全流程解析

    睿擎派文件系統(tǒng)指南:從開發(fā)到發(fā)布全流程實踐 | 技術(shù)解析

    發(fā)布階段的鏡像打包,為開發(fā)者提供了全面的支持。本文將詳細(xì)介紹睿擎平臺文件系統(tǒng)的綜合使用方法。一、睿擎平臺文件系統(tǒng)設(shè)計1.1睿擎平臺存儲布局概覽睿擎平臺采用了清晰的
    的頭像 發(fā)表于 11-05 18:13 ?8088次閱讀
    睿擎派<b class='flag-5'>文件系統(tǒng)</b>指南:從開發(fā)到發(fā)布全流程實踐 | 技術(shù)解析

    文件系統(tǒng)文件怎么循環(huán)覆蓋的寫入數(shù)據(jù)?

    請教一個文件系統(tǒng)數(shù)據(jù)寫入的問題。 比如我新建一個文件,test.txt,寫入數(shù)據(jù)超過512KB后,就從頭開始寫,后面的數(shù)據(jù)不刪除,從頭開始覆蓋。 比如原來寫了1000條數(shù)據(jù),然后從頭開始循環(huán)覆蓋
    發(fā)表于 09-22 08:20

    如何在 nuc980 上切換到持久文件系統(tǒng)

    我遵循了“NUC980 Linux 4.4 BSP 用戶手冊EN.pdf”文檔,但當(dāng)我嘗試取消選擇“初始 RAM 文件系統(tǒng)和 RAM 磁盤 (initramfs/initrd) 支持
    發(fā)表于 08-29 07:58

    Linux三大主流文件系統(tǒng)解析

    還在為選擇哪個文件系統(tǒng)而糾結(jié)?作為一名摸爬滾打多年的運維老鳥,我將用最接地氣的方式,帶你徹底搞懂 Linux 三大主流文件系統(tǒng)的奧秘。
    的頭像 發(fā)表于 08-05 17:37 ?1439次閱讀

    Linux系統(tǒng)目錄結(jié)構(gòu)全面剖析

    Linux文件系統(tǒng)采用層次化的目錄結(jié)構(gòu),這種設(shè)計遵循了Unix哲學(xué)中的"一切皆文件"原則。理解Linux目錄層次架構(gòu)對于系統(tǒng)管理員、運維工程
    的頭像 發(fā)表于 07-21 17:33 ?775次閱讀

    飛凌嵌入式ElfBoard ELF 1板卡-文件系統(tǒng)簡介

    9.1 文件系統(tǒng)概念文件系統(tǒng)通常提供目錄或文件夾用于記錄文件,在很多系統(tǒng)中目錄本身也是文件,在這
    發(fā)表于 06-19 17:22

    服務(wù)器數(shù)據(jù)恢復(fù)—重裝系統(tǒng)導(dǎo)致XFS文件系統(tǒng)分區(qū)丟失的數(shù)據(jù)恢復(fù)案例

    服務(wù)器數(shù)據(jù)恢復(fù)環(huán)境&故障: 一臺服務(wù)器上通過磁盤柜+RAID卡組建的riad5磁盤陣列,服務(wù)器上層安裝Linux操作系統(tǒng),搭建XFS文件系統(tǒng)。服務(wù)器上層分配一個LUN,并劃分了兩個分區(qū)
    的頭像 發(fā)表于 06-12 11:20 ?797次閱讀
    服務(wù)器數(shù)據(jù)恢復(fù)—重裝<b class='flag-5'>系統(tǒng)</b>導(dǎo)致XFS<b class='flag-5'>文件系統(tǒng)分</b>區(qū)丟失的數(shù)據(jù)恢復(fù)案例

    服務(wù)器數(shù)據(jù)恢復(fù)—ocfs2文件系統(tǒng)被格式化為Ext4文件系統(tǒng)的數(shù)據(jù)恢復(fù)案例

    服務(wù)器存儲數(shù)據(jù)恢復(fù)環(huán)境&故障: 人為誤操作將Ext4文件系統(tǒng)誤裝入一臺服務(wù)器存儲上的Ocfs2文件系統(tǒng)數(shù)據(jù)卷上,導(dǎo)致原Ocfs2文件系統(tǒng)被格式化為Ext4文件系統(tǒng)。
    的頭像 發(fā)表于 06-10 12:03 ?724次閱讀
    服務(wù)器數(shù)據(jù)恢復(fù)—ocfs2<b class='flag-5'>文件系統(tǒng)</b>被格式化為Ext4<b class='flag-5'>文件系統(tǒng)</b>的數(shù)據(jù)恢復(fù)案例

    Linux文件系統(tǒng)打包及鏡像制作,觸覺智能RK3562開發(fā)板演示

    本文介紹Linux開發(fā)板文件系統(tǒng)打包及鏡像制作的方法,演示Linux文件系統(tǒng)打包及鏡像制作,適用于想將配置好的
    的頭像 發(fā)表于 04-28 16:45 ?987次閱讀
    <b class='flag-5'>Linux</b><b class='flag-5'>文件系統(tǒng)</b>打包及鏡像制作,觸覺智能RK3562開發(fā)板演示

    rootfs鏡像制作其實沒那么難

    在嵌入式Linux開發(fā)中,文件系統(tǒng)的打包和鏡像制作是關(guān)鍵步驟。本文介紹了Linux核心板文件系統(tǒng)的打包與鏡像制作方法,適合嵌入式開發(fā)人員快速
    的頭像 發(fā)表于 04-03 11:37 ?1089次閱讀
    rootfs鏡像制作其實沒那么難

    支持48位尋址!華為開源文件系統(tǒng)EROFS跨入大模型訓(xùn)練

    的要求。 ? 最近,開源文件系統(tǒng)EROFS在即將到來的Linux 6.15內(nèi)核周期中進行擴展,以處理更大規(guī)模的存儲系統(tǒng)。此次改進旨在使EROFS更適配AI訓(xùn)練場景及其他大規(guī)模數(shù)據(jù)歸檔需求。 ? 在
    發(fā)表于 03-27 01:22 ?1106次閱讀

    如何正確選擇嵌入式文件系統(tǒng)?

    Linux嵌入式系統(tǒng)中,文件系統(tǒng)和緩存機制常導(dǎo)致數(shù)據(jù)存儲穩(wěn)定性問題。本文通過案例分析原因,對比不同文件系統(tǒng)特性,為開發(fā)者提供優(yōu)化建議,助力提升數(shù)據(jù)穩(wěn)定性和
    的頭像 發(fā)表于 03-17 11:35 ?1097次閱讀
    如何正確選擇嵌入式<b class='flag-5'>文件系統(tǒng)</b>?

    在stm32cubeprogrammer上燒錄時,取消勾選根文件系統(tǒng),燒錄后發(fā)現(xiàn)sd卡上根文件系統(tǒng)的分區(qū)沒有了,為什么?

    在修改了linux內(nèi)核后,我想只把bootfs燒錄到sd卡上,而不擦除根文件系統(tǒng)的分區(qū)。 我在stm32cubeprogrammer上燒錄時,取消勾選根文件系統(tǒng),燒錄后發(fā)現(xiàn)sd卡上根文件系統(tǒng)
    發(fā)表于 03-07 06:38