Linux 檔案系統

2021-09-25 18:55:47 字數 1474 閱讀 5059

磁碟檔案系統的管理,也是作業系統最核心的功能。

磁碟為系統提供了最基本的持久化儲存。

檔案系統則在磁碟的基礎上,提供了乙個用來管理檔案的樹狀結構。

檔案系統,本身是對儲存裝置上的檔案,進行組織管理的機制。組織方式不同,就會形成

不同的檔案系統。

在 linux 中一切皆檔案。不僅普通的檔案和目錄,就連塊裝置、 套接字、管道等,也都要通過統一的檔案系統來管理。

為了方便管理,linux 檔案系統為每個檔案都分配兩個資料結構,索引節點(index

node)和目錄項(directory entry)。它們主要用來記錄檔案的元資訊和目錄結構。索引節點和目錄項紀錄了檔案的元資料,以及檔案間的目錄關係

索引節點,簡稱為 inode,用來記錄檔案的元資料,比如 inode 編號、檔案大小、訪問

許可權、修改日期、資料的位置等。索引節點和檔案一一對應,它跟檔案內容一樣,都會

被持久化儲存到磁碟中。所以記住,索引節點同樣占用磁碟空間。

目錄項,簡稱為 dentry,用來記錄檔案的名字、索引節點指標以及與其他目錄項的關聯

關係。多個關聯的目錄項,就構成了檔案系統的目錄結構。不過,不同於索引節點,目

錄項是由核心維護的乙個記憶體資料結構,所以通常也被叫做目錄項快取。

換句話說,索引節點是每個檔案的唯一標誌,而目錄項維護的正是檔案系統的樹狀結構。

目錄項和索引節點的關係是多對一,可以簡單理解為,乙個檔案可以有多個別名。

磁碟在執行檔案系統格式化時,會被分成三個儲存區域,超級塊、索引節點區和數 據塊區。

其中:超級塊,儲存整個檔案系統的狀態。

索引節點區,用來儲存索引節點。

資料塊區,則用來儲存檔案資料

目錄項、索引節點、邏輯塊以及超級塊,構成了 linux 檔案系統的四大基本要素。不過,

為了支援各種不同的檔案系統,linux 核心在使用者程序和檔案系統的中間,又引入了乙個

抽象層,也就是虛擬檔案系統 vfs(virtual file system)。

vfs 定義了一組所有檔案系統都支援的資料結構和標準介面。這樣,使用者程序和核心中的

其他子系統,只需要跟 vfs 提供的統一介面進行互動就可以了,而不需要再關心底層各種

檔案系統的實現細節

檔案系統,要先掛載到 vfs 目錄樹中的某個子目錄(稱為掛載點),然後才能訪問其

中的檔案。

檔案讀寫方式的各種差異,導致 i/o 的分類多種多樣。最常見的有,緩衝與非緩衝 i/o、

直接與非直接 i/o、阻塞與非阻塞 i/o、同步與非同步 i/o 

linux 檔案系統 Linux 檔案系統結構介紹

ubuntu 像所有類unix系統一樣 在分層樹中組織檔案,其中的關係就像父母和孩子一樣。目錄可以包含其他目錄以及常規檔案,它們是樹的 葉子 樹的任何元素都可以通過路徑名引用 絕對路徑以字元 標識根目錄,其中包含所有其他目錄和檔案 開頭,然後列出必須遍歷以到達該元素的每個子目錄,每個子目錄用 符號分...

Linux檔案系統

linux目錄結構 根目錄 bin 可執行檔案目錄 boot 核心引導檔案 vmlinuz,initrd.img等 dev 裝置檔案儲存目錄,應用程式對這些檔案讀寫和控制可訪問實際裝置 etc 系統配置和一些伺服器配置檔案的位置,如帳號及密碼配置檔案。home 普通使用者目錄 lib 庫檔案目錄 l...

Linux檔案系統

之前對磁碟分割槽已經有了詳細的描述,這篇主要介紹檔案系統 linux的檔案系統是出了名的 下面就 大概介紹下 可以把檔案系統大概分成 superblock inodeblock datablock 三部分 superblock superblock記錄檔案系統的基本資訊比如每塊資料塊的大小,空閒磁碟...