Linux2.6–虛擬檔案系統

來源:互聯網
上載者:User

      虛擬檔案系統(有時也稱作虛擬檔案交換,更常見的是簡稱做VFS)作為核心子系統,為使用者空間程式提供了檔案和檔案系統相關的介面.系統中的所有檔案系統不但依賴VFS共存,而且也依賴VFS系統協同工作.通過虛擬檔案系統,程式可以利用標準的UNIX系統調用對不同的檔案系統,甚至不同的介質上的檔案系統進行讀寫操作,如下:


      這幅圖的含義是:

      VFS執行的動作:使用CP(1)命令從ext3檔案系統格式的硬碟拷貝資料到ext2檔案系統格式的可移動磁碟上.兩種不同的檔案系統,兩種不同的介質,串連到同一個VFS上


      VFS使得使用者可以直接使用open(),read()和write()這樣的系統調用而無需考慮具體檔案系統和實際的物理介質,這些都可以稱作是檔案系統的抽象層,在檔案系統之上存在虛擬檔案系統,並通過VFS實現相應的方法可以屏蔽不同的檔案系統之間的不同,通過通用的介面提供給使用者使得使用者感覺不到不同的檔案系統之間的差異,下面這張圖顯示的就是使用者操作write()時各個系統之間的協同合作:


      含義是:write()調用將來自使用者空間的資料流,首先通過VFS的通用系統調用,其次通過檔案系統的特殊寫法,最後寫入物理介質中

      VFS通過定義一些資料結構並加入執行這些結構的通用方法,最後讓不同的檔案系統實現自己的方法來屏蔽各種不同的檔案系統之間的差異:

      VFS中有四個主要的物件類型,它們分別是:

      超級塊對象,它代表一個具體的已安裝的檔案系統

      索引節點對象,它代表一個具體檔案

      目錄項對象,它代表一個目錄項,是路徑的一個組成部分

      檔案對象,它代表由進程開啟的檔案


      Linux支援了相當多種類的檔案系統.從本地檔案系統(如ext3和ext4)到網路檔案系統(如NFS),Linux在標準核心中已經支援的檔案系統超過60種.VFS層提供給這些不同的檔案系統一個統一的架構,而且也提供了能和標準系統調用互動工作的統一介面.由於VFS層的存在,使得在Linux上實現新檔案系統的工作變得簡單起來,它可以輕鬆的使這些檔案系統通過標準Unix系統調用而協同工作.

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.