在linux作業系統中支援很多種檔案系統,例如常見的ext2、ext3、ext4、proc、btrfs和xfs等,多達幾十個檔案系統,每個檔案系統是獨立的,有自己的組織方法,操作方法。雖然支援的檔案系統種類很多,但從使用者層面使用方式無任何差別,使用者並不感知其中的差異。對於普通用來說,資料都是組織成上文所述的樹狀結構。那麼這種方式是如何實現的呢?
linux的檔案系統由兩層結構構建:第一層是虛擬檔案系統(vfs),第二層是各種不同的具體的檔案系統。
vfs就是把各種具體的檔案系統的公共部分抽取出來,形成乙個抽象層,是系統核心的一部分,它位於使用者程式和具體的檔案系統之間。它對使用者程式提供了標準的檔案系統呼叫介面,對具體的檔案系統(如ext2、fat32等),它通過一系列的對不同檔案系統公用的函式指標來實際呼叫具體的檔案系統函式,完成實際的各有差異的操作。任何使用檔案系統的程式必須經過這層介面來使用它。通過這樣的方式,vfs就對使用者遮蔽了底層檔案系統的實現細節和差異。
vfs不僅可以對具體檔案系統的資料結構進行抽象,以一種統一的資料結構進行管理,並且還可以接受使用者層的系統呼叫,如open()、read()、write()、stat()、link()等。此外,它還支援多種具體檔案系統之間的相互訪問,接受核心其他子系統的操作請求,例如,記憶體管理和程序排程。
檢視系統中支援哪些檔案系統:
[root@oa-dev /]# cat /proc/filesystems超級塊:nodev sysfs
nodev rootfs
nodev ramfs
nodev bdev
nodev proc
nodev cpuset
nodev cgroup
nodev cgroup2
nodev tmpfs
nodev devtmpfs
nodev binfmt_misc
nodev debugfs
nodev tracefs
nodev securityfs
nodev sockfs
nodev bpf
nodev pipefs
nodev hugetlbfs
nodev devpts
ext3
ext2
ext4
squashfs
vfat
msdos
乙個超級塊對應乙個檔案系統(已經安裝的檔案系統型別如ext2,此處是實際的檔案系統哦,不是vfs)。之前我們已經說了檔案系統用於管理這些檔案的資料格式和操作之類的,系統檔案有系統檔案自己的檔案系統,同時對於不同的磁碟分割槽也有可以是不同的檔案系統。那麼乙個超級塊對於乙個獨立的檔案系統。儲存檔案系統的型別、大小、狀態等等。
常見檔案系統:
1. ext2
ext2是為解決ext檔案系統的缺陷而設計的可擴充套件的、高效能的檔案系統,又被稱為二級擴充套件檔案系統。它是linux檔案系統中使用最多的型別,並且在速度和cpu利用率上較為突出。ext2訪問檔案的效能極好,並可以支援256位元組的長檔名,是gnu/linux系統中標準的檔案系統。
2. ext3
ext3是ext2檔案系統的日誌版本,它在ext2檔案系統中增加了日誌的功能。ext3提供了3種日誌模式:日誌(journal)、順序(ordered)和回寫(writeback)。與ext2相比,ext3提供了更好的安全性以及向上向下的相容性能。因此,在linux系統中可以掛在乙個ext3檔案系統代替ext2檔案系統。ext3檔案系統格式被廣泛應用於目前的linux系統中。ext3的缺點是缺乏現代檔案系統所具有的高速資料處理和解壓的效能。此外,使用ext3檔案系統還要考慮磁碟限額問題。
3. ext4
4. xfs
方便管理,支援動態擴容。
5. swap
其實swap也是一種檔案系統。swap主要是用於緩解記憶體的壓力而單獨設定的乙個交換空間(類似於 windows 中的虛擬記憶體),當記憶體不夠用時,使用交換分割槽暫時替代記憶體。有三個相關命令mkswap
,swapon
,swapoff
。
Linux Linux檔案系統的實現
linux檔案管理從使用者的層面介紹了linux管理檔案的方式。linux有乙個樹狀結構來組織檔案。樹的頂端為根目錄 節點為目錄,而末端的葉子為包含資料的檔案。當我們給出乙個檔案的完整路徑時,我們從根目錄出發,經過沿途各個目錄,最終到達檔案。我們可以對檔案進行許多操作,比如開啟和讀寫。在linux檔...
Linux Linux作業系統對檔案系統的管理
在虛擬檔案系統的支援下,linux可以支援迄今為止的大多數檔案系統。但是,linux並不是在初始化時就把所有檔案系統全部都裝入,而只是安裝乙個檔案系統 通常是ext2 作為根檔案系統。根檔案系統在整個系統執行過程中是不能被拆卸的,是系統的基本組成部分。通常,根檔案系統上主要安裝了保證系統正常工作執行...
Linux Linux檔案系統目錄配置及常見命令
要遵循fhs規範,規範定義的兩級目錄規範如下 home 每個賬號在該目錄下都有乙個資料夾,進行資料的管理 usr 有點像windows的program files和winnt結合的目錄,主要包括系統的主要程式 本機端額外安裝的軟體 圖形介面所需要的文件 額外的函式庫 共享目錄與檔案等 bin usr...