最近掛載了N多的文件系統,大致了不同文件系統的相應特性及掛載方式,卻還是對Linux的文件系統沒有從源碼方面去瞭解。不求甚解確實不好不好。 於是借鑒一些大牛的博客及自己的理解,總結了博客系列: 一、VFS是什麼: VFS是Linux中的一個虛擬文件文件系統,也稱為虛擬文件系統交換層(Virtual ...
最近掛載了N多的文件系統,大致了不同文件系統的相應特性及掛載方式,卻還是對Linux的文件系統沒有從源碼方面去瞭解。不求甚解確實不好不好。
於是借鑒一些大牛的博客及自己的理解,總結了博客系列:
一、VFS是什麼:
VFS是Linux中的一個虛擬文件文件系統,也稱為虛擬文件系統交換層(Virtual Filesystem Switch),是一種軟體機制。它為應用程式員提供一層抽象,屏蔽底層各種文件系統的差異。如下圖所示:
引入文件系統的目的是:為了屏蔽各種文件系統的差異
(1)VFS對實際文件系統進行抽象,採用統一的文件系統向用戶提供相應的一組統一的標準的文件操作介面(open,read,close,select,poll等);
(2)通過系統調用到VFS到實際文件系統的操作。
二、文件系統種類:
(1)基於磁碟的文件系統;
(2)網路文件系統(NFS);
(3)偽文件系統(sysfs、proc);
VFS 目錄樹結構:
Reference:
https://www.ibm.com/developerworks/cn/linux/l-vfs/