超級快(super block)物件:
乙個超級塊對應乙個具體的檔案系統(已經安裝的檔案系統型別如 ext2,此處是實際的檔案系統,不是 vfs)。
inode 物件:
inode是核心檔案物件的元資料,inode 僅僅只是儲存了檔案物件的屬性資訊,包括:許可權、屬組、資料塊的位置、時間戳等資訊。
file 物件:
注意 file 物件描述的是程序已經開啟的檔案。因為乙個檔案可以被多個程序開啟,所以乙個檔案可以存在多個檔案物件。但是由於檔案是唯一的,那麼 inode 就是唯一的,目錄項也是定的!
dentry 物件:
dentry 是乙個純粹的記憶體結構,由檔案系統在提供檔案訪問的過程中在記憶體中直接建立。dentry 中包含了檔名,檔案的 inode 號等資訊。
1. 超級塊物件和inode物件分別對應有物理資料,在磁碟上有靜態資訊。
2. 目錄項物件和檔案物件描述的是一種關係,前者描述的檔案與檔名的關係;後者描述的是程序與檔案的關係,所以沒有對應物理資料。例如有三個不同的程序開啟同乙個檔案,其中有兩個程序使用了相同的硬鏈結。三個程序擁有各自的file object,而只有兩個dentry(同乙個硬鏈結對應乙個dentry,dentry不隨程序開啟檔案而增加或改變)。兩個dentry都指向同乙個inode。
3. 程序每開啟乙個檔案,就會有乙個file結構與之對應。同乙個程序可以多次開啟同乙個檔案而得到多個不同的file結構,file結構描述被開啟檔案的屬性,如檔案的當前偏移量等資訊。
4. 兩個不同的file結構可以對應同乙個dentry結構。程序多次開啟同乙個檔案時,對應的只有乙個dentry結構。
5. 在儲存介質中,每個檔案對應唯一的inode結點,但是每個檔案又可以有多個檔名。即可以通過不同的檔名訪問同乙個檔案。這裡多個檔名對應乙個檔案的關係在資料結構中表示就是dentry和inode的關係。
6. inode中不儲存檔案的名字,它只儲存節點號;而dentry則儲存有名字和與其對應的節點號,所以就可以通過不同的dentry訪問同乙個inode。
7. 不同的dentry則是同個檔案鏈結(ln命令)來實現的
VFS的索引節點
索引節點 檔案系統處理檔案所需要的所有資訊都放在稱為索引節點的資料結構中。檔名可以隨時更改,但是索引節點對檔案是唯一的,並且隨檔案的存在而存在。具體檔案系統的索引節點是存放在磁碟上的,是一種靜態資料結構,要使用他必須調入記憶體,填寫vfs的索引節點,因此,也稱vfs索引節點是動態節點。vfs索引節點...
VFS機制 01概論
由於種種原因,公司內不能使用登入csdn,所有的技術類文件都儲存在公司內部伺服器上。現在趁春節放假這幾天,可以在csdn上面記錄一下我假期學習的內容了。這個假期一共十一天,打算學習一下linux核心的vfs機制和塊裝置驅動原理。vfs就是虛擬檔案系統,是linux核心的乙個完整的子系統。有了vfs之...
使用VFS進行SFTP網路傳輸
package com.meetexpo.showcase.monitor import org.apache.commons.vfs.fileobject import org.apache.commons.vfs.filesystemexception import org.apache.com...