1. 程式人生 > >Linux支援檔案系統與VFS

Linux支援檔案系統與VFS

雖然linux的標準檔案系統是ext2,且還增加了日誌功能的ext3,事實上,linux還支援很多檔案系統格式的,尤其是最近幾年退出的好幾種速度很快的日誌式檔案系統,包括SGI的XFS檔案系統,可以使用更小型檔案的Reiserfs檔案系統,以及windows的FAT檔案系統等等,都能夠被linux所支援。常見的檔案系統有:

傳統檔案系統:ext2/mini/MS-DOC/FAT/iso9660(光碟)等等;
日誌式檔案系統:ext3、ReiserFS/Winodows’NTFS/IBM’s JFS/SGI’s XFS;
網路檔案系統:NFS/SMBFS;

要想知道你的linux支援的檔案系統有哪些,可以檢視底下這個目錄:

這裡寫圖片描述

系統目前載入到記憶體中支援的檔案系統則有:

這裡寫圖片描述

Linux VFS(Virtual Filesystem Switch)

瞭解我們使用的檔案系統後,再來則是要提到,那麼linux的核心有何如何管理這些檔案系統的呢?其實,整個linux的系統都是透過一個名為Virtual Filesystem Switch的核心功能去讀取filesystem的。也就是說,整個linux的認識檔案系統的filesystem其實都是VFS在進行管理,我們使用者並不需要知道每個partatition上面的filesystem是什麼,VFS會主動的幫助我們做好讀取的動作。

假設你的/使用的是/dev/had1,用ext3,而/home使用/dev/had2,用reiserfs,那麼你取用/home/datsai/.hashrc時,有特別要指定要使用的檔案系統是什麼嗎?應該沒有吧!這個就是VFS的功能了。通過這個VFS的功能來管理filesystem,省去我們需要自行設定讀取檔案系統的定義啊,方便很多,整個VFS可以簡單的用下圖來說:

這裡寫圖片描述

磁碟與目錄的容量:

現在我們知道磁碟的整體資料是在superblock區塊中,但是每個個別檔案的容量則是記錄在inode當中記載的。那麼文字介面底下是如何讀取這些資料的呢?

df : 列出檔案系統的整體磁碟使用量;
du : 評估檔案系統的磁碟使用量