當(dāng)前位置:首頁 > 公眾號(hào)精選 > strongerHuang
[導(dǎo)讀]Linux一個(gè)重要的哲學(xué)是:一切皆文件。而文件與文件系統(tǒng)是密切相關(guān)的,本篇筆記我們來一起學(xué)習(xí)、理清那些令我們眼花繚亂的文件系統(tǒng)。


作者 | ZhengN

轉(zhuǎn)自 | 嵌入式大雜燴

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

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

下面依次進(jìn)行介紹:

根文件系統(tǒng)

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

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

虛擬文件系統(tǒng)

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

(圖片來源:野火電子)

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

真文件系統(tǒng)

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

1、ext2

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

2、ext3

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

  • 高可用性:系統(tǒng)使用了ext3文件系統(tǒng)后,即使在非正常關(guān)機(jī)后,系統(tǒng)也不需要檢查文件系統(tǒng)。宕機(jī)發(fā)生后,恢復(fù)ext3文件系統(tǒng)的時(shí)間只要數(shù)十秒鐘。
  • 數(shù)據(jù)完整性:ext3文件系統(tǒng)能夠極大地提高文件系統(tǒng)的完整性,避免了意外宕機(jī)對(duì)文件系統(tǒng)的破壞。

3、ext4

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

  • 更多的子目錄數(shù)量:Ext3目前只支持32000個(gè)子目錄,而Ext4取消了這一限制,理論上支持無限數(shù)量的子目錄。
  • 更多的塊和i-節(jié)點(diǎn)數(shù)量:Ext3文件系統(tǒng)使用32位空間記錄塊數(shù)量和i-節(jié)點(diǎn)數(shù)量,而Ext4文件系統(tǒng)將它們擴(kuò)充到64位。

偽文件系統(tǒng)

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

1、procfs

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

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

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

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

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

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

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

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

2、sysfs

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

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

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

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

3、devtmpfs

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

在devtmpfs出現(xiàn)之前,/dev/下面的設(shè)備節(jié)點(diǎn)應(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)建的。

我們?cè)谥癶ello驅(qū)動(dòng)、led驅(qū)動(dòng)實(shí)驗(yàn)中,我們動(dòng)態(tài)加載的方式加載我們的驅(qū)動(dòng)程序之后,會(huì)在/dev目錄下生成相應(yīng)的節(jié)點(diǎn)。我們只要在應(yīng)用程序中操作這個(gè)節(jié)點(diǎn)就可以間接地操控我們的led:

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

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

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

《LED驅(qū)動(dòng)實(shí)驗(yàn)(總線設(shè)備驅(qū)動(dòng)模型)》

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

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

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

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

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


 

免責(zé)聲明:本文內(nèi)容由21ic獲得授權(quán)后發(fā)布,版權(quán)歸原作者所有,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。文章僅代表作者個(gè)人觀點(diǎn),不代表本平臺(tái)立場(chǎng),如有問題,請(qǐng)聯(lián)系我們,謝謝!

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競爭優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動(dòng)力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉