虛擬檔案系統學習筆記(1)
1 通過虛擬檔案系統,linux可以支援多種檔案系統型別;
2 虛擬檔案系統所隱含的思想是把表示很多不同種類檔案系統的共同資訊放入核心;其中用1個欄位或函式來支援所有支援具體檔案系統所提供的任何操作。
3 VFS支援的檔案系統可以分為3類:磁碟檔案系統、網路檔案系統及特殊檔案系統;
4 VFS實現了一個通用檔案模型:對於每個物件,都包含該物件操作的函式指標,指向具體處理檔案系統所提供的相應介面;在發生系統呼叫的時候,通過該物件的函式指標找 到具體負責處理的函式,從而呼叫實際介面進行處理;
5 通用檔案模型包含物件:
(1) 超級塊物件(superblock object):存放的是已安裝檔案系統的資訊;對於磁碟檔案系統,通常對應於存放在磁碟上的檔案系統控制塊(filesystem control block);
(2)索引節點物件(inode object):存放具體檔案的一般資訊;對於基於磁碟的檔案系統,通常對應於存放在磁碟上的檔案控制塊(file control block);每個索引節點物件 都有1個索引節點號,唯一地標識檔案系統中的檔案;
(3)檔案物件(file object):存放程序與開啟檔案之間的互動資訊;該物件只在程序訪問檔案期間存在於核心記憶體中;
(4)目錄項物件(dentry object):存放目錄項與對應檔案之間連結的有關資訊;
6 VFSc除了提供一個通用檔案模型外,還能提高系統性能:最近最常使用目錄項存放在目錄項快取記憶體中,以便加速從檔案路徑名到最後一個分量的索引節點的轉換過程;
7
(1)磁碟快取記憶體: 將磁碟中的內容儲存到RAM中,加速對資料的訪問而避免訪問慢速的磁碟;
(2)硬體快取記憶體:利用靜態RAM,加快對慢速動態RAM的訪問;
(3)記憶體告訴快取:軟體機制,為了繞過核心記憶體分配器;