檔案系統 檔案系統中的資料結構

2021-10-10 08:00:53 字數 2282 閱讀 9157

0.參考

1.檔案系統的主要資料結構

2.超級塊及其操作函式

3.inode及其操作函式

4.目錄項資料結構定義及操作函式

5.檔案結構體的定義及檔案的操作函式

推薦ups主:善不外來名不虛傳

《linux核心設計與實現》第二版,第三版

內容摘選自

檔案系統1

檔案系統2

--雜湊鍊錶

(以上感恩)

檔案系統本身的資料結構

linux核心採用vfs(virtual filesystem switch)框架

每個檔案系統都需要在vfs中註冊,即填充乙個struct file_system_type結構

此結構描述的是檔案系統的名稱以及乙個指向對應vfs超級塊讀取例程的位址等資訊

檔案系統巨集觀上的兩個資料結構:

(1)struct file_system_type

(2)struct vfsmount

檔案系統的四個主要物件對應的資料結構

(1)超級塊物件 存放系統中已安裝檔案系統的資訊

(2)索引節點物件 存放關於具體檔案的一般資訊

(3)目錄項物件 存放目錄項與對應檔案進行鏈結的資訊

(4)檔案物件 存放開啟檔案與程序之間進行互動的有關資訊

檔案系統巨集觀上的兩個資料結構:

(1)struct file_system_type ;

5.8.13中這麼定義:

struct file_system_type ;

這相當於乙個檔案系統的類,比如會有各種檔案系統,比如說ext2檔案系統,xfs檔案系統,drm檔案系統

等系統.這樣在去例項化的時候,相當於定義了乙個類的乙個物件,每乙個檔案系統都是乙個物件,物件

與物件之間通過指標串起來.這裡的鍊錶是單向鍊錶,可能是不經常新增或者刪除檔案系統吧.

struct vfsmount __randomize_layout;

d:\005-**\001-開源專案原始碼\004-核心原始碼\linux-2.6.11.10\include\linux\mount.h中是這麼定義的:

struct vfsmount

;每個檔案系統都有乙個全域性file_system_type型別的全域性變數,例如:ext2_fs_type代表ext2檔案系統

mount的時候會呼叫read_super.

超級塊用來描述整個檔案系統的資訊

每個具體的檔案系統都有自己的超級塊

vfs超級塊是各種檔案系統在安裝時建立的,並在解除安裝時被自動刪除,其資料結構是super_block

所有超級塊物件都以雙向迴圈鍊錶的形式鏈結在一起

super_block的資料結構,摘自5.8.13版本的核心

d:\005-**\001-開源專案原始碼\004-核心原始碼\linux-5.8.13\linux-5.8.13\include\linux\fs.h

Linux檔案系統資料結構

linux的每個檔案包含3個資訊 檔名 inode 儲存檔案的元資料資訊 datablock 儲存檔案真正的內容資料 linux的檔案管理空間有兩個部分 元空間 儲存檔名 inode 資料空間 datablock 元資料和資料的區別表專案 元資料資料 概念檔案的描述資訊 檔案內真正儲存的資料內容 容...

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

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

檔案系統 why檔案系統

為什麼需要檔案系統,可否由作業系統直接寫裸裝置?裸裝置是一種沒有經過格式化的磁碟或分割槽,即讓作業系統直接管理操作磁碟設定,進行資料讀寫等。通過檔案系統的方式組織磁碟儲存和資料管理有很多好處,比如 1.資料讀取 管理等操作變得簡單便捷 檔案系統給使用者提供了乙個簡單的操作介面,只需簡單的操作就能實現...