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

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

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

如何區(qū)別Linux文件系統(tǒng)呢?

Linux愛好者 ? 來源:YXQ ? 2019-08-09 18:00 ? 次閱讀

根據(jù)早期的 Linux 貢獻(xiàn)者和作家 Robert Love 所說,“文件系統(tǒng)是一個(gè)遵循特定結(jié)構(gòu)的數(shù)據(jù)的分層存儲(chǔ)?!?不過,這種描述也同樣適用于 VFAT(虛擬文件分配表Virtual File Allocation Table)、Git 和Cassandra(一種 NoSQL 數(shù)據(jù)庫)。

什么是文件系統(tǒng)?根據(jù)早期的 Linux 貢獻(xiàn)者和作家 Robert Love 所說,“文件系統(tǒng)是一個(gè)遵循特定結(jié)構(gòu)的數(shù)據(jù)的分層存儲(chǔ)?!?不過,這種描述也同樣適用于 VFAT(虛擬文件分配表Virtual File Allocation Table)、Git 和Cassandra(一種 NoSQL 數(shù)據(jù)庫)。那么如何區(qū)別文件系統(tǒng)呢?

文件系統(tǒng)基礎(chǔ)概念

Linux 內(nèi)核要求文件系統(tǒng)必須是實(shí)體,它還必須在持久對(duì)象上實(shí)現(xiàn) open()、read() 和 write() 方法,并且這些實(shí)體需要有與之關(guān)聯(lián)的名字。從 面向?qū)ο?a target="_blank">編程 的角度來看,內(nèi)核將通用文件系統(tǒng)視為一個(gè)抽象接口,這三大函數(shù)是“虛擬”的,沒有默認(rèn)定義。因此,內(nèi)核的默認(rèn)文件系統(tǒng)實(shí)現(xiàn)被稱為虛擬文件系統(tǒng)(VFS)。

如果我們能夠 open()、read() 和 write(),它就是一個(gè)文件,如這個(gè)主控臺(tái)會(huì)話所示。

VFS 是著名的類 Unix 系統(tǒng)中 “一切皆文件” 概念的基礎(chǔ)。讓我們看一下它有多奇怪,上面的小小演示體現(xiàn)了字符設(shè)備 /dev/console 實(shí)際的工作。該圖顯示了一個(gè)在虛擬電傳打字控制臺(tái)(tty)上的交互式 Bash 會(huì)話。將一個(gè)字符串發(fā)送到虛擬控制臺(tái)設(shè)備會(huì)使其顯示在虛擬屏幕上。而 VFS 甚至還有其它更奇怪的屬性。例如,它可以在其中尋址。

我們熟悉的文件系統(tǒng)如 ext4、NFS 和 /proc 都在名為 file_operations 的 C 語言數(shù)據(jù)結(jié)構(gòu)中提供了三大函數(shù)的定義。此外,個(gè)別的文件系統(tǒng)會(huì)以熟悉的面向?qū)ο蟮姆绞綌U(kuò)展和覆蓋了 VFS 功能。正如 Robert Love 指出的那樣,VFS 的抽象使 Linux 用戶可以輕松地將文件復(fù)制到(或復(fù)制自)外部操作系統(tǒng)或抽象實(shí)體(如管道),而無需擔(dān)心其內(nèi)部數(shù)據(jù)格式。在用戶空間這一側(cè),通過系統(tǒng)調(diào)用,進(jìn)程可以使用文件系統(tǒng)方法之一 read() 從文件復(fù)制到內(nèi)核的數(shù)據(jù)結(jié)構(gòu)中,然后使用另一種文件系統(tǒng)的方法 write() 輸出數(shù)據(jù)。

屬于 VFS 基本類型的函數(shù)定義本身可以在內(nèi)核源代碼的 fs/*.c 文件 中找到,而 fs/ 的子目錄中包含了特定的文件系統(tǒng)。內(nèi)核還包含了類似文件系統(tǒng)的實(shí)體,例如 cgroup、/dev 和 tmpfs,在引導(dǎo)過程的早期需要它們,因此定義在內(nèi)核的 init/ 子目錄中。請(qǐng)注意,cgroup、/dev 和 tmpfs 不會(huì)調(diào)用 file_operations 的三大函數(shù),而是直接讀取和寫入內(nèi)存。

下圖大致說明了用戶空間如何訪問通常掛載在 Linux 系統(tǒng)上的各種類型文件系統(tǒng)。像管道、dmesg 和 POSIX 時(shí)鐘這樣的結(jié)構(gòu)在此圖中未顯示,它們也實(shí)現(xiàn)了 struct file_operations,而且其訪問也要通過 VFS 層。

How userspace accesses various types of filesystems

VFS 是個(gè)“墊片層”,位于系統(tǒng)調(diào)用和特定 file_operations 的實(shí)現(xiàn)(如 ext4 和 procfs)之間。然后,file_operations 函數(shù)可以與特定于設(shè)備的驅(qū)動(dòng)程序或內(nèi)存訪問器進(jìn)行通信。tmpfs、devtmpfs 和 cgroup 不使用 file_operations 而是直接訪問內(nèi)存。

VFS 的存在促進(jìn)了代碼重用,因?yàn)榕c文件系統(tǒng)相關(guān)的基本方法不需要由每種文件系統(tǒng)類型重新實(shí)現(xiàn)。代碼重用是一種被廣泛接受的軟件工程***實(shí)踐!唉,但是如果重用的代碼引入了嚴(yán)重的錯(cuò)誤,那么繼承常用方法的所有實(shí)現(xiàn)都會(huì)受到影響。

/tmp:一個(gè)小提示

找出系統(tǒng)中存在的 VFS 的簡單方法是鍵入 mount | grep -v sd | grep -v :/,在大多數(shù)計(jì)算機(jī)上,它將列出所有未駐留在磁盤上,同時(shí)也不是 NFS 的已掛載文件系統(tǒng)。其中一個(gè)列出的 VFS 掛載肯定是 /tmp,對(duì)吧?

誰都知道把 /tmp 放在物理存儲(chǔ)設(shè)備上簡直是瘋了!圖片:https://tinyurl.com/ybomxyfo

為什么把 /tmp 留在存儲(chǔ)設(shè)備上是不可取的?因?yàn)?/tmp 中的文件是臨時(shí)的(!),并且存儲(chǔ)設(shè)備比內(nèi)存慢,所以創(chuàng)建了 tmpfs 這種文件系統(tǒng)。此外,比起內(nèi)存,物理設(shè)備頻繁寫入更容易磨損。***,/tmp 中的文件可能包含敏感信息,因此在每次重新啟動(dòng)時(shí)讓它們消失是一項(xiàng)功能。

不幸的是,默認(rèn)情況下,某些 Linux 發(fā)行版的安裝腳本仍會(huì)在存儲(chǔ)設(shè)備上創(chuàng)建 /tmp。如果你的系統(tǒng)出現(xiàn)這種情況,請(qǐng)不要絕望。按照一直優(yōu)秀的 Arch Wiki 上的簡單說明來解決問題就行,記住分配給 tmpfs 的內(nèi)存就不能用于其他目的了。換句話說,包含了大文件的龐大的 tmpfs 可能會(huì)讓系統(tǒng)耗盡內(nèi)存并崩潰。

另一個(gè)提示:編輯 /etc/fstab 文件時(shí),請(qǐng)務(wù)必以換行符結(jié)束,否則系統(tǒng)將無法啟動(dòng)。(猜猜我怎么知道。)

/proc 和 /sys

除了 /tmp 之外,大多數(shù) Linux 用戶最熟悉的 VFS 是 /proc 和 /sys。(/dev 依賴于共享內(nèi)存,而沒有 file_operations 結(jié)構(gòu))。為什么有兩種呢?讓我們來看看更多細(xì)節(jié)。

procfs 為用戶空間提供了內(nèi)核及其控制的進(jìn)程的瞬時(shí)狀態(tài)的快照。在 /proc 中,內(nèi)核發(fā)布有關(guān)其提供的設(shè)施的信息,如中斷、虛擬內(nèi)存和調(diào)度程序。此外,/proc/sys 是存放可以通過 sysctl 命令配置的設(shè)置的地方,可供用戶空間訪問。單個(gè)進(jìn)程的狀態(tài)和統(tǒng)計(jì)信息在 /proc/目錄中報(bào)告。

/proc/meminfo 是一個(gè)空文件,但仍包含有價(jià)值的信息。

/proc 文件的行為說明了 VFS 可以與磁盤上的文件系統(tǒng)不同。一方面,/proc/meminfo包含了可由命令 free 展現(xiàn)出來的信息。另一方面,它還是空的!怎么會(huì)這樣?這種情況讓人聯(lián)想起康奈爾大學(xué)物理學(xué)家 N. David Mermin 在 1985 年寫的一篇名為《沒有人看見月亮的情況嗎?現(xiàn)實(shí)和量子理論》。事實(shí)是當(dāng)進(jìn)程從 /proc 請(qǐng)求數(shù)據(jù)時(shí)內(nèi)核再收集有關(guān)內(nèi)存的統(tǒng)計(jì)信息,而且當(dāng)沒有人查看它時(shí),/proc 中的文件實(shí)際上沒有任何內(nèi)容。正如 Mermin 所說,“這是一個(gè)基本的量子學(xué)說,一般來說,測量不會(huì)揭示被測屬性的預(yù)先存在的價(jià)值?!?關(guān)于月球的問題的答案留作練習(xí)。)

當(dāng)沒有進(jìn)程訪問它們時(shí),/proc 中的文件為空。(來源)

procfs 的空文件是有道理的,因?yàn)槟抢锟捎玫男畔⑹莿?dòng)態(tài)的。sysfs 的情況則不同。讓我們比較一下 /proc 與 /sys 中不為空的文件數(shù)量。

procfs 只有一個(gè)不為空的文件,即導(dǎo)出的內(nèi)核配置,這是一個(gè)例外,因?yàn)槊看螁?dòng)只需要生成一次。另一方面,/sys 有許多更大一些的文件,其中大多數(shù)由一頁內(nèi)存組成。通常,sysfs 文件只包含一個(gè)數(shù)字或字符串,與通過讀取 /proc/meminfo 等文件生成的信息表格形成鮮明對(duì)比。

sysfs 的目的是將內(nèi)核稱為 “kobject” 的可讀寫屬性公開給用戶空間。kobject 的唯一目的是引用計(jì)數(shù):當(dāng)刪除對(duì) kobject 的***一個(gè)引用時(shí),系統(tǒng)將回收與之關(guān)聯(lián)的資源。然而,/sys 構(gòu)成了內(nèi)核著名的“到用戶空間的穩(wěn)定 ABI”,它的大部分內(nèi)容在任何情況下都沒有人能“破壞”。但這并不意味著 sysfs 中的文件是靜態(tài),這與易失性對(duì)象的引用計(jì)數(shù)相反。

內(nèi)核的穩(wěn)定 ABI 限制了 /sys 中可能出現(xiàn)的內(nèi)容,而不是任何給定時(shí)刻實(shí)際存在的內(nèi)容。列出 sysfs 中文件的權(quán)限可以了解如何設(shè)置或讀取設(shè)備、模塊、文件系統(tǒng)等的可配置、可調(diào)參數(shù)。邏輯上強(qiáng)調(diào) procfs 也是內(nèi)核穩(wěn)定 ABI 的一部分的結(jié)論,盡管內(nèi)核的文檔沒有明確說明。

sysfs 中的文件確切地描述了實(shí)體的每個(gè)屬性,并且可以是可讀的、可寫的,或兩者兼而有之。文件中的“0”表示 SSD 不可移動(dòng)的存儲(chǔ)設(shè)備。

用 eBPF 和 bcc 工具一窺 VFS 內(nèi)部

了解內(nèi)核如何管理 sysfs 文件的最簡單方法是觀察它的運(yùn)行情況,在 ARM64 或 x86_64 上觀看的最簡單方法是使用 eBPF。eBPF(擴(kuò)展的伯克利數(shù)據(jù)***濾器extended Berkeley Packet Filter)由在內(nèi)核中運(yùn)行的虛擬機(jī)組成,特權(quán)用戶可以從命令行進(jìn)行查詢。內(nèi)核源代碼告訴讀者內(nèi)核可以做什么;而在一個(gè)啟動(dòng)的系統(tǒng)上運(yùn)行 eBPF 工具會(huì)顯示內(nèi)核實(shí)際上做了什么。

令人高興的是,通過 bcc 工具入門使用 eBPF 非常容易,這些工具在主要 Linux 發(fā)行版的軟件包中都有,并且已經(jīng)由 Brendan Gregg 給出了充分的文檔說明。bcc 工具是帶有小段嵌入式 C 語言片段的 Python 腳本,這意味著任何對(duì)這兩種語言熟悉的人都可以輕松修改它們。據(jù)當(dāng)前統(tǒng)計(jì),bcc/tools 中有 80 個(gè) Python 腳本,使得系統(tǒng)管理員或開發(fā)人員很有可能能夠找到與她/他的需求相關(guān)的已有腳本。

要了解 VFS 在正在運(yùn)行中的系統(tǒng)上的工作情況,請(qǐng)嘗試使用簡單的 vfscount 或 vfsstat 腳本,這可以看到每秒都會(huì)發(fā)生數(shù)十次對(duì) vfs_open() 及其相關(guān)的調(diào)用。

vfsstat.py 是一個(gè)帶有嵌入式 C 片段的 Python 腳本,它只是計(jì)數(shù) VFS 函數(shù)調(diào)用。

作為一個(gè)不太重要的例子,讓我們看一下在運(yùn)行的系統(tǒng)上插入 USB 記憶棒時(shí) sysfs 中會(huì)發(fā)生什么。

用 eBPF 觀察插入 USB 記憶棒時(shí) /sys 中會(huì)發(fā)生什么,簡單的和復(fù)雜的例子。

在上面的***個(gè)簡單示例中,只要 sysfs_create_files() 命令運(yùn)行,trace.py bcc 工具腳本就會(huì)打印出一條消息。我們看到 sysfs_create_files() 由一個(gè) kworker 線程啟動(dòng),以響應(yīng) USB 棒的插入事件,但是它創(chuàng)建了什么文件?第二個(gè)例子說明了 eBPF 的強(qiáng)大能力。這里,trace.py 正在打印內(nèi)核回溯(-K 選項(xiàng))以及 sysfs_create_files() 創(chuàng)建的文件的名稱。單引號(hào)內(nèi)的代碼段是一些 C 源代碼,包括一個(gè)易于識(shí)別的格式字符串,所提供的 Python 腳本引入 LLVM 即時(shí)編譯器(JIT) 來在內(nèi)核虛擬機(jī)內(nèi)編譯和執(zhí)行它。必須在第二個(gè)命令中重現(xiàn)完整的 sysfs_create_files() 函數(shù)簽名,以便格式字符串可以引用其中一個(gè)參數(shù)。在此 C 片段中出錯(cuò)會(huì)導(dǎo)致可識(shí)別的 C 編譯器錯(cuò)誤。例如,如果省略 -I 參數(shù),則結(jié)果為“無法編譯 BPF 文本”。熟悉 C 或 Python 的開發(fā)人員會(huì)發(fā)現(xiàn) bcc 工具易于擴(kuò)展和修改。

插入 USB 記憶棒后,內(nèi)核回溯顯示 PID 7711 是一個(gè) kworker 線程,它在 sysfs 中創(chuàng)建了一個(gè)名為 events 的文件。使用 sysfs_remove_files() 進(jìn)行相應(yīng)的調(diào)用表明,刪除 USB 記憶棒會(huì)導(dǎo)致刪除該 events 文件,這與引用計(jì)數(shù)的想法保持一致。在 USB 棒插入期間(未顯示)在 eBPF 中觀察 sysfs_create_link() 表明創(chuàng)建了不少于 48 個(gè)符號(hào)鏈接。

無論如何,events 文件的目的是什么?使用 cscope 查找函數(shù) __device_add_disk()顯示它調(diào)用 disk_add_events(),并且可以將 “mediachange” 或 “ejectrequest” 寫入到該文件。這里,內(nèi)核的塊層通知用戶空間該 “磁盤” 的出現(xiàn)和消失??紤]一下這種檢查 USB 棒的插入的工作原理的方法與試圖僅從源頭中找出該過程的速度有多快。

只讀根文件系統(tǒng)使得嵌入式設(shè)備成為可能

確實(shí),沒有人通過拔出電源插頭來關(guān)閉服務(wù)器或桌面系統(tǒng)。為什么?因?yàn)槲锢泶鎯?chǔ)設(shè)備上掛載的文件系統(tǒng)可能有掛起的(未完成的)寫入,并且記錄其狀態(tài)的數(shù)據(jù)結(jié)構(gòu)可能與寫入存儲(chǔ)器的內(nèi)容不同步。當(dāng)發(fā)生這種情況時(shí),系統(tǒng)所有者將不得不在下次啟動(dòng)時(shí)等待 fsck 文件系統(tǒng)恢復(fù)工具 運(yùn)行完成,在最壞的情況下,實(shí)際上會(huì)丟失數(shù)據(jù)。

然而,狂熱愛好者會(huì)聽說許多物聯(lián)網(wǎng)和嵌入式設(shè)備,如路由器、恒溫器和汽車現(xiàn)在都運(yùn)行著 Linux。許多這些設(shè)備幾乎完全沒有用戶界面,并且沒有辦法干凈地讓它們“解除啟動(dòng)”。想一想啟動(dòng)電池耗盡的汽車,其中運(yùn)行 Linux 的主機(jī)設(shè)備 的電源會(huì)不斷加電斷電。當(dāng)引擎最終開始運(yùn)行時(shí),系統(tǒng)如何在沒有長時(shí)間 fsck 的情況下啟動(dòng)呢?答案是嵌入式設(shè)備依賴于只讀根文件系統(tǒng)(簡稱 ro-rootfs)。

ro-rootfs 是嵌入式系統(tǒng)不經(jīng)常需要 fsck 的原因。

ro-rootfs 提供了許多優(yōu)點(diǎn),雖然這些優(yōu)點(diǎn)不如耐用性那么顯然。一個(gè)是,如果 Linux 進(jìn)程不可以寫入,那么惡意軟件也無法寫入 /usr 或 /lib。另一個(gè)是,基本上不可變的文件系統(tǒng)對(duì)于遠(yuǎn)程設(shè)備的現(xiàn)場支持至關(guān)重要,因?yàn)橹С秩藛T擁有理論上與現(xiàn)場相同的本地系統(tǒng)。也許最重要(但也是最微妙)的優(yōu)勢是 ro-rootfs 迫使開發(fā)人員在項(xiàng)目的設(shè)計(jì)階段就決定好哪些系統(tǒng)對(duì)象是不可變的。處理 ro-rootfs 可能經(jīng)常是不方便甚至是痛苦的,編程語言中的常量變量經(jīng)常就是這樣,但帶來的好處很容易償還這種額外的開銷。

對(duì)于嵌入式開發(fā)人員,創(chuàng)建只讀根文件系統(tǒng)確實(shí)需要做一些額外的工作,而這正是 VFS 的用武之地。Linux 需要 /var 中的文件可寫,此外,嵌入式系統(tǒng)運(yùn)行的許多流行應(yīng)用程序會(huì)嘗試在 $HOME 中創(chuàng)建配置的點(diǎn)文件。放在家目錄中的配置文件的一種解決方案通常是預(yù)生成它們并將它們構(gòu)建到 rootfs 中。對(duì)于 /var,一種方法是將其掛載在單獨(dú)的可寫分區(qū)上,而 / 本身以只讀方式掛載。使用綁定或疊加掛載是另一種流行的替代方案。

綁定和疊加掛載以及在容器中的使用運(yùn)行 man mount 是了解綁定掛載bind mount和疊加掛載overlay mount的***辦法,這種方法使得嵌入式開發(fā)人員和系統(tǒng)管理員能夠在一個(gè)路徑位置創(chuàng)建文件系統(tǒng),然后以另外一個(gè)路徑將其提供給應(yīng)用程序。對(duì)于嵌入式系統(tǒng),這代表著可以將文件存儲(chǔ)在 /var 中的不可寫閃存設(shè)備上,但是在啟動(dòng)時(shí)將 tmpfs 中的路徑疊加掛載或綁定掛載到 /var 路徑上,這樣應(yīng)用程序就可以在那里隨意寫它們的內(nèi)容了。下次加電時(shí),/var 中的變化將會(huì)消失。疊加掛載為 tmpfs 和底層文件系統(tǒng)提供了聯(lián)合,允許對(duì) ro-rootfs 中的現(xiàn)有文件進(jìn)行直接修改,而綁定掛載可以使新的空 tmpfs 目錄在 ro-rootfs 路徑中顯示為可寫。雖然疊加文件系統(tǒng)是一種適當(dāng)?shù)奈募到y(tǒng)類型,而綁定掛載由 VFS 命名空間工具實(shí)現(xiàn)的。

根據(jù)疊加掛載和綁定掛載的描述,沒有人會(huì)對(duì) Linux 容器 中大量使用它們感到驚訝。讓我們通過運(yùn)行 bcc 的 mountsnoop 工具監(jiān)視當(dāng)使用 systemd-nspawn 啟動(dòng)容器時(shí)會(huì)發(fā)生什么:

在 mountsnoop.py 運(yùn)行的同時(shí),system-nspawn 調(diào)用啟動(dòng)容器。

讓我們看看發(fā)生了什么:

在容器 “啟動(dòng)” 期間運(yùn)行 mountsnoop 可以看到容器運(yùn)行時(shí)很大程度上依賴于綁定掛載。(僅顯示冗長輸出的開頭)

這里,systemd-nspawn 將主機(jī)的 procfs 和 sysfs 中的選定文件按其 rootfs 中的路徑提供給容器。除了設(shè)置綁定掛載時(shí)的 MS_BIND 標(biāo)志之外,mount 系統(tǒng)調(diào)用的一些其它標(biāo)志用于確定主機(jī)命名空間和容器中的更改之間的關(guān)系。例如,綁定掛載可以將 /proc 和 /sys 中的更改傳播到容器,也可以隱藏它們,具體取決于調(diào)用。

總結(jié)

理解 Linux 內(nèi)部結(jié)構(gòu)看似是一項(xiàng)不可能完成的任務(wù),因?yàn)槌?Linux 用戶空間應(yīng)用程序和 glibc 這樣的 C 庫中的系統(tǒng)調(diào)用接口,內(nèi)核本身也包含大量代碼。取得進(jìn)展的一種方法是閱讀一個(gè)內(nèi)核子系統(tǒng)的源代碼,重點(diǎn)是理解面向用戶空間的系統(tǒng)調(diào)用和頭文件以及主要的內(nèi)核內(nèi)部接口,這里以 file_operations 表為例。file_operations 使得“一切都是文件”得以可以實(shí)際工作,因此掌握它們收獲特別大。*** fs/ 目錄中的內(nèi)核 C 源文件構(gòu)成了虛擬文件系統(tǒng)的實(shí)現(xiàn),虛擬文件系統(tǒng)是支持流行的文件系統(tǒng)和存儲(chǔ)設(shè)備的廣泛且相對(duì)簡單的互操作性的墊片層。通過 Linux 命名空間進(jìn)行綁定掛載和覆蓋掛載是 VFS 魔術(shù),它使容器和只讀根文件系統(tǒng)成為可能。結(jié)合對(duì)源代碼的研究,eBPF 內(nèi)核工具及其 bcc 接口使得探測內(nèi)核比以往任何時(shí)候都更簡單。

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

    關(guān)注

    87

    文章

    11123

    瀏覽量

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

    關(guān)注

    0

    文章

    278

    瀏覽量

    19830

原文標(biāo)題:詳解 Linux 中的虛擬文件系統(tǒng)

文章出處:【微信號(hào):LinuxHub,微信公眾號(hào):Linux愛好者】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

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

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

    Linux文件系統(tǒng)課程

    本章學(xué)習(xí)目標(biāo)理解什么是文件系統(tǒng)了解文件系統(tǒng)工作原理理解Fedora Core Linux文件系統(tǒng)的結(jié)構(gòu)掌握Fedora Core Linux
    發(fā)表于 04-10 17:07 ?0次下載

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

    Linux文件系統(tǒng)簡介 什么是根文件   根文件系統(tǒng)首先是一種文件系統(tǒng),但是相對(duì)于普通的文件系統(tǒng)
    發(fā)表于 04-21 17:01 ?5083次閱讀

    玩轉(zhuǎn)Linux,先把文件系統(tǒng)搞懂

    Linux 支持多種文件系統(tǒng),包括 ext2 、 ext3 、 vfat 、 ntfs 、 iso9660 、 jffs 、 romfs 和 nfs 等,為了對(duì)各類文件系統(tǒng)進(jìn)行統(tǒng)一管理, Li
    發(fā)表于 08-16 10:50 ?2009次閱讀
    玩轉(zhuǎn)<b class='flag-5'>Linux</b>,先把<b class='flag-5'>文件系統(tǒng)</b>搞懂

    Linux設(shè)備驅(qū)動(dòng)開發(fā)詳解》第5章、Linux文件系統(tǒng)與設(shè)備文件系統(tǒng)

    Linux設(shè)備驅(qū)動(dòng)開發(fā)詳解》第5章、Linux文件系統(tǒng)與設(shè)備文件系統(tǒng)
    發(fā)表于 10-27 14:13 ?0次下載
    《<b class='flag-5'>Linux</b>設(shè)備驅(qū)動(dòng)開發(fā)詳解》第5章、<b class='flag-5'>Linux</b><b class='flag-5'>文件系統(tǒng)</b>與設(shè)備<b class='flag-5'>文件系統(tǒng)</b>

    Linux 內(nèi)核/sys 文件系統(tǒng)介紹

    linux2.6內(nèi)核引入sysfs文件系統(tǒng),sysfs可以看成與proc,devfs和devpty同類別的文件系統(tǒng),該文件系統(tǒng)是虛擬的文件系統(tǒng)
    發(fā)表于 04-25 16:20 ?4209次閱讀
    <b class='flag-5'>Linux</b> 內(nèi)核/sys <b class='flag-5'>文件系統(tǒng)</b>介紹

    你需要了解的Linux文件系統(tǒng)

    Linux文件系統(tǒng)中的文件是數(shù)據(jù)的集合,文件系統(tǒng)不僅包含著文件中的數(shù)據(jù)而且還有系統(tǒng)的結(jié)構(gòu),所有
    發(fā)表于 04-25 17:44 ?696次閱讀
    你需要了解的<b class='flag-5'>Linux</b><b class='flag-5'>文件系統(tǒng)</b>

    可以了解的Linux 文件系統(tǒng)結(jié)構(gòu)

    Linux中的文件是什么?它的文件系統(tǒng)又是什么?那些配置文件又在哪里?我下載好的程序保存在哪里了?在 Linux
    發(fā)表于 04-27 14:06 ?669次閱讀
    可以了解的<b class='flag-5'>Linux</b> <b class='flag-5'>文件系統(tǒng)</b>結(jié)構(gòu)

    Linux最新UBI文件系統(tǒng)介紹

    嵌入式linux中文站關(guān)注嵌入式linux文件系統(tǒng)的發(fā)展。在linux-2.6.27以前,談到Flash文件系統(tǒng),大家很多時(shí)候多會(huì)想到cra
    發(fā)表于 04-27 19:37 ?6319次閱讀

    linux文件系統(tǒng)中的虛擬文件系統(tǒng)設(shè)計(jì)詳解

    Linux 中允許眾多不同的文件系統(tǒng)共存,如 ext2, ext3, vfat 等。通過使用同一套文件 I/O 系統(tǒng) 調(diào)用即可對(duì) Linux
    發(fā)表于 04-02 14:37 ?1722次閱讀
    <b class='flag-5'>linux</b><b class='flag-5'>文件系統(tǒng)</b>中的虛擬<b class='flag-5'>文件系統(tǒng)</b>設(shè)計(jì)詳解

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

    Linux支持多種文件系統(tǒng),同樣,嵌入式Linux也支持多種文件系統(tǒng)。雖然在嵌入式系統(tǒng)中,由于資源受限的原因,它的
    發(fā)表于 06-18 09:23 ?944次閱讀

    Linux文件系統(tǒng)解析

    Linux 中,最直觀、最可見的部分就是 文件系統(tǒng)(file system)。下面我們就來一起探討一下關(guān)于 Linux 中國的文件系統(tǒng),系統(tǒng)
    的頭像 發(fā)表于 09-16 11:29 ?2367次閱讀
    <b class='flag-5'>Linux</b><b class='flag-5'>文件系統(tǒng)</b>解析

    Linux文件系統(tǒng)與持久性內(nèi)存

    1、Linux 虛擬文件系統(tǒng)介紹 在 Linux 系統(tǒng)中一切皆文件,除了通常所說的狹義的文件以外
    的頭像 發(fā)表于 11-26 14:34 ?2428次閱讀
    <b class='flag-5'>Linux</b><b class='flag-5'>文件系統(tǒng)</b>與持久性內(nèi)存

    適用于Linux的最佳通用文件系統(tǒng) Linux文件系統(tǒng)的安裝

    為您的計(jì)算機(jī)選擇正確的文件系統(tǒng)可能是一個(gè)困難的過程。您可能會(huì)想知道:為什么文件系統(tǒng)很重要?有沒有適用于安裝 Linux 的特定文件系統(tǒng)? 事實(shí)證明,有兩種
    發(fā)表于 08-03 10:22 ?287次閱讀
    適用于<b class='flag-5'>Linux</b>的最佳通用<b class='flag-5'>文件系統(tǒng)</b> <b class='flag-5'>Linux</b><b class='flag-5'>文件系統(tǒng)</b>的安裝

    Linux文件系統(tǒng)特點(diǎn)

    Linux文件系統(tǒng)特點(diǎn) 文件系統(tǒng)要有嚴(yán)格的組織形式,使得文件能夠以塊為單位進(jìn)行存儲(chǔ)。 文件系統(tǒng)中也要有索引區(qū),用來方便查找一個(gè)
    的頭像 發(fā)表于 11-09 14:48 ?976次閱讀
    <b class='flag-5'>Linux</b>的<b class='flag-5'>文件系統(tǒng)</b>特點(diǎn)