Linux檔案系統學習(三)之結構關係

2021-05-25 10:57:28 字數 1501 閱讀 8636

參考文獻:

《linux核心設計與實現》

3. 結構關係

該圖反應的

linux

的檔案系統的體系結構

ext2

、jfs

等等)都會匯出一組通用介面,供

vfs

使用。緩衝區快取(

buffer cache

)會快取檔案系統和相關塊裝置之間的請求。例如,對底層裝置驅動程式的讀寫請求會通過緩衝區快取來傳遞。這就允許在其中快取請求,減少訪問物理裝置的次數,加快訪問速度。以最近使用(

lru)列表的形式管理緩衝區快取。注意,可以使用

sync

超級塊、安裝點和具體的檔案系統的關係

從圖中可以看到安裝點與超級塊是一一對應的(安裝點通過

mnt_sb

指向超級塊);並且三種結構都通過鍊錶來組織它們的物件。

vfsmount

通過mnt_list

鏈結、super_block

通過s_list

鏈結,同時

s_instances

又鏈結著相同檔案系統型別的

super_block

,如圖中的第

1個與第

3個就是相同的檔案系統,所以它們通過

s_instances

鏈結了起來,另外它們的

s_type

也指向了相同的

file_systems(第1

個)、最後

file_systems

通過next

鏈結,並且

fs_supers

指向有相同型別的

super_block

,如因為圖中的第

1個超級塊與第

3個超級塊型別一樣,所以

fs_supers

指向了第

1個超級塊。

程序與超級塊、檔案、索引結點、目錄項的關係

從圖中可知:程序通過

task_struct

中的乙個域

files_struct files

來了解它當前所開啟的檔案物件;而我們通常所說的檔案描述符其實是程序開啟的檔案物件陣列的索引值。檔案物件通過域

f_dentry

找到它對應的

dentry

物件,再由

dentry

物件的域

d_inode

找到它對應的索引節點(通過索引節點又可以得到超級塊的資訊,也就可以得到最終操作檔案的方法,在

open

檔案的時候就是使用這樣乙個過程),這樣就建立了檔案物件與實際的物理檔案的關聯。最後,還有一點很重要的是

, 檔案物件所對應的檔案操作函式列表是通過索引節點的域

i_fop

得到的,而

i_fop

最終又是通過

struct super_operations*s_op

來初始化的。

Linux系統結構之檔案系統(三)

linux檔案鏈結 1 inode的作用 檔案具體資料都儲存在 塊 在block區 中,我們還必須找到乙個地方儲存檔案的元資訊,比如檔案的建立者 檔案的建立日期 檔案的大小等等。這種儲存檔案元資訊的區域就叫做inode 在inode區 中文譯名為 索引節點 每個inode都有乙個號碼,作業系統用in...

Linux檔案系統學習(二)之重要資料結構

linux核心設計與實現 2.主要的物件型別 file system type 用於描述具體的檔案系統的型別資訊,所以被 linux 支援的檔案系統,都有且僅有乙個 file system type 結構而不管它有零個或多個例項被安裝到系統中。如 ext2,ext3,nfs。安裝點 vfsmount...

Linux檔案系統學習(一)之相關概念

一切皆是檔案 是 unix linux 的基本哲學之一。不僅普通的檔案,目錄 字元裝置 塊裝置 套接字等在 unix linux 中都是以檔案被對待 它們雖然型別不同,但是對其提供的卻是同一套操作介面。另外所謂的塊裝置 是指支援隨機訪問的儲存裝置 與此相對應的是字元裝置,它只支援順序訪問。另外lin...