熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Oracle >> 正文

虛擬文件系統(VFS)簡介:VFS架構

2013-11-13 15:42:11  來源: Oracle 

  Linux檔案系統其實可以分為三個部分第一部分叫Virtual File System Switch簡稱VFS這是Linux檔案系統對外的接口任何要使用檔案系統的程序都必須經由這層接口來使用它另外二部分是屬於檔案系統的內部其中一個是cache另一個就是真正最底層的檔案系統像ExtVFAT之類的東西整個Linux檔案系統可以用圖來表示
  
  為了避免困擾底下我們所講的檔案系統都是指ExtFAT等底層的檔案系統至於包含VFSExtBuffer Cache等等我們總稱為VFS
  
  在圖我們可以清楚的看到當Kernel要使用檔案系統時都是經由VFS這層接口來使用剛才我們有提到一個問題就是當使用者或程序設計師去讀取一個檔案的內容時它不會因為這個檔案位於不同的檔案系統就需要使用不同的方式來讀取因為這件事VFS已經幫我們做了當我們要讀取的檔案位於CDROM時VFS就自動幫我們把這個讀取的要求交由iso檔案系統來做當我們要讀取的檔案在FAT裡時VFS則自動呼叫FAT的函式來幫我們做到當然有需要時VFS也會直接透過Disk driver去讀取資料但是當我們要求讀寫檔案時難道iso或FAT檔案系統會直接透過driver去讀寫嗎? 不是的就像PC上除了內存之外還有一層的cache來加快速度在Linux檔案系統其實也是有一個Cache的機制以加快速度叫做Buffer Cache底層的檔案系統要讀寫磁盤上的資料時都要經過Buffer Cache如果資料在Buffer Cache裡有的話就直接讀取如果沒有的話才透過Buffer Cache要求driver去讀寫除了Buffer Cache之外其實Linux檔案系統裡還有一個Cache叫Directory Cache你知道嗎? 如果我們去統計使用者的行為的話ls這種命令其實占的比重是蠻大的每次的ls或讀寫檔案其實都要對目錄的內容做search因此如果在目錄這方面能做個Cache的話那系統整統的速度就會再往上提升Directory Cache的功能就在此其實Linux檔案系統裡還有一個Cache叫Inode Cache故名思義它是針對Inode做的CacheDirectory Cache跟Inode Cache其實關系是很密切的
  

From:http://tw.wingwit.com/Article/program/Oracle/201311/17160.html
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.