www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當前位置:首頁 > > strongerHuang
[導讀]Linux一個重要的哲學是:一切皆文件。而文件與文件系統(tǒng)是密切相關的,本篇筆記我們來一起學習、理清那些令我們眼花繚亂的文件系統(tǒng)。


作者 | ZhengN

轉自 | 嵌入式大雜燴

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

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

下面依次進行介紹:

根文件系統(tǒng)

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

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

虛擬文件系統(tǒng)

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

(圖片來源:野火電子)

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

真文件系統(tǒng)

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

1、ext2

EXT2第二代擴展文件系統(tǒng)(second extended filesystem,縮寫為 ext2),是Linux內核早期所用的文件系統(tǒng),但是隨著技術的發(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)后,即使在非正常關機后,系統(tǒng)也不需要檢查文件系統(tǒng)。宕機發(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內核提供了sysfs、procfs、devtmpfs等偽文件系統(tǒng),偽文件系統(tǒng)存在于內存,不占用硬盤。以文件地形式向用戶提供一些系統(tǒng)信息,用戶讀寫這些文件就可以讀取、修改系統(tǒng)的一些信息。

1、procfs

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

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

/proc目錄的內容如下:

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

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

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

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

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

2、sysfs

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

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

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

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

3、devtmpfs

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

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

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

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

相關筆記推薦:

《嵌入式Linux驅動基礎》

《LED驅動實驗(總線設備驅動模型)》

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

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

服務器程序向其他計算機提供對文件系統(tǒng)的訪問,其過程稱為輸出。NFS客戶端程序對共享文件系統(tǒng)進行訪問時,把它們從NFS服務器中“輸送”出來。

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

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


 

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

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

LED驅動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關鍵字: 驅動電源

在工業(yè)自動化蓬勃發(fā)展的當下,工業(yè)電機作為核心動力設備,其驅動電源的性能直接關系到整個系統(tǒng)的穩(wěn)定性和可靠性。其中,反電動勢抑制與過流保護是驅動電源設計中至關重要的兩個環(huán)節(jié),集成化方案的設計成為提升電機驅動性能的關鍵。

關鍵字: 工業(yè)電機 驅動電源

LED 驅動電源作為 LED 照明系統(tǒng)的 “心臟”,其穩(wěn)定性直接決定了整個照明設備的使用壽命。然而,在實際應用中,LED 驅動電源易損壞的問題卻十分常見,不僅增加了維護成本,還影響了用戶體驗。要解決這一問題,需從設計、生...

關鍵字: 驅動電源 照明系統(tǒng) 散熱

根據(jù)LED驅動電源的公式,電感內電流波動大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關鍵字: LED 設計 驅動電源

電動汽車(EV)作為新能源汽車的重要代表,正逐漸成為全球汽車產(chǎn)業(yè)的重要發(fā)展方向。電動汽車的核心技術之一是電機驅動控制系統(tǒng),而絕緣柵雙極型晶體管(IGBT)作為電機驅動系統(tǒng)中的關鍵元件,其性能直接影響到電動汽車的動力性能和...

關鍵字: 電動汽車 新能源 驅動電源

在現(xiàn)代城市建設中,街道及停車場照明作為基礎設施的重要組成部分,其質量和效率直接關系到城市的公共安全、居民生活質量和能源利用效率。隨著科技的進步,高亮度白光發(fā)光二極管(LED)因其獨特的優(yōu)勢逐漸取代傳統(tǒng)光源,成為大功率區(qū)域...

關鍵字: 發(fā)光二極管 驅動電源 LED

LED通用照明設計工程師會遇到許多挑戰(zhàn),如功率密度、功率因數(shù)校正(PFC)、空間受限和可靠性等。

關鍵字: LED 驅動電源 功率因數(shù)校正

在LED照明技術日益普及的今天,LED驅動電源的電磁干擾(EMI)問題成為了一個不可忽視的挑戰(zhàn)。電磁干擾不僅會影響LED燈具的正常工作,還可能對周圍電子設備造成不利影響,甚至引發(fā)系統(tǒng)故障。因此,采取有效的硬件措施來解決L...

關鍵字: LED照明技術 電磁干擾 驅動電源

開關電源具有效率高的特性,而且開關電源的變壓器體積比串聯(lián)穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機重量也有所下降,所以,現(xiàn)在的LED驅動電源

關鍵字: LED 驅動電源 開關電源

LED驅動電源是把電源供應轉換為特定的電壓電流以驅動LED發(fā)光的電壓轉換器,通常情況下:LED驅動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關鍵字: LED 隧道燈 驅動電源
關閉