VFS檔案系統即虛擬檔案系統,
它是Linux系統裡面檔案系統的一個核心,
那麼下面我就來講解一下關於VFS檔案系統的相關知識,
如果你有什麼不明白的,
可以在評論裡面留言,
我們會找時間逐個回復的。
檔案系統
檔案系統就是作業系統裡面對檔進行統一管理的一系列軟體和資料的集合, 有了檔案系統, 我們的上層應用才能夠使用檔案系統提供的介面對相關檔進行刪除、重命名、移動等等操作, 我們才能夠用滑鼠右鍵完成新建檔、刪除檔、重命名檔等操作, 雖然對於一般人來說, 看不到檔案系統, 但是其實我們一直都在經常使用。
Linux下的多種檔案系統
ext2/3/4檔案系統:ex4檔案系統對於3和2來說, 應該是發生了質的改變, 在3中, 子目錄數的上線是32000個, 而4中打破了這種局限, 在4之前如果對檔進行寫資料之後, 檔案系統將立即將資料同步到檔中去, 但是在4中, 當發生寫資料的時候, 不是立即同步, 而是延遲等到不得不同步的時候才進行同步, 這種特徵提高了IO的性能。
分散式檔案系統:所謂分散式檔案系統, 其實大家也不陌生, 比如現在的百度網盤、360雲盤等等, 其實都是分散式檔案系統的應用, 其中GFS(2)就是一種分散式檔案系統,
xfs檔案系統:xfs檔案系統是一個高擴展、高性能的檔案系統, 它是Red Hat Enterprise Linux 7的默認檔案系統, 它支援對中繼資料進行日誌記錄, 提供快速宕機恢復能力;同時它支援超大檔的存儲和超大數量的目錄;IO性能也非常高, 從CentOS 7開始, 也將這個檔案系統作為默認的檔案系統, 因為該檔案系統比ext4更優秀。
nfs檔案系統:即網路檔案系統, 該種類型的檔案系統,
還有很多檔案系統我們就不一一列舉了, 只需要知道每種檔案系統都有每種檔案系統的特徵, 同時一些先進的檔案系統會提供很多高級的功能。
VFS檔案系統
從上面的多種檔案系統, 我們能夠看到, 有很多類型的檔案系統, 每種檔案系統要麼相容之前的同類型檔案系統並添加一些新的特徵, 比如ext4相容ext3, ext3相容ext2, 要麼會提供和其他檔案系統截然不同的新特徵以滿足某些特定的需求, 那麼現在問題來了, 每種檔案系統都是有區別的, 那麼如果我們現在需要讀不同檔案系統下面的某個檔, 估計都要分別單獨處理, 這樣肯定會造成很多代碼的冗餘, 同時維護成本也很高, 於是誕生了VFS檔案系統, 用一個統一的介面提供給上層應用, 然後具體的對不同檔案系統的操作相容由VFS來完成,也就是VFS為我們訪問不同檔案系統裡面的檔提供了一個統一的抽象介面。
從上面的講解,我們能夠看到,VFS檔案系統是一種先進的設計模式,大家想想現在的基於介面的程式設計或者分層設計思想、PHP裡面的資料訪問抽象層PDO等是不是都和VFS有異曲同工之處呢。
然後具體的對不同檔案系統的操作相容由VFS來完成,也就是VFS為我們訪問不同檔案系統裡面的檔提供了一個統一的抽象介面。從上面的講解,我們能夠看到,VFS檔案系統是一種先進的設計模式,大家想想現在的基於介面的程式設計或者分層設計思想、PHP裡面的資料訪問抽象層PDO等是不是都和VFS有異曲同工之處呢。