參考文獻:
《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...