- Linux服務器配置與管理完全學習手冊
- 王健
- 2481字
- 2021-03-19 15:14:45
6.1 文件系統
文件系統是操作系統中實現對文件的組織、管理和存取的一組系統程序和數據結構,或者說它是管理軟件資源的軟件。對用戶來說,文件系統提供了一種便捷的存取信息的方法。
6.1.1 Linux文件系統的基本概念
文件系統是操作系統用來存儲和管理文件的方法。從系統角度來看,文件系統對文件存儲空間進行組織、分配,并對文件的存儲進行保護和檢查。從用戶角度來看,文件系統可以幫助用戶建立文件,并對文件的讀、寫和刪除操作提供保護和控制。
Windows系統在格式化硬盤時會指定格式,如FAT或NTFS。不同的操作系統可能會采用不同的文件系統,例如,MS DOS下的msdos文件系統,Windows的FAT16、FAT32、NTFS等文件系統。
Linux操作系統采用的是ext2或ext3文件系統,目前ext3文件系統是Linux默認的文件系統。ext2文件系統雖然是高效和穩定的,但是,隨著Linux系統在關鍵業務中的應用,這種文件系統的弱點也漸漸顯露出來了。因為ext2文件系統是非日志文件系統,這在關鍵行業的應用是一個致命的弱點。ext3文件系統直接從ext2文件系統發展而來,ext3文件系統帶有日志功能,可以跟蹤記錄文件系統的變化,并將變化內容寫入日志。寫操作首先是對日志記錄文件進行操作,若整個寫操作由于某種原因(如系統掉電)而中斷,當系統重啟時,會根據日志記錄來恢復中斷前的寫操作,而且這個過程費時極短。目前ext3文件系統已經非常穩定可靠,它完全兼容ext2文件系統,用戶可以平滑地過渡到一個日志功能健全的文件系統中來。這實際上也是ext3日志文件系統初始設計的初衷。
Linux系統能支持使用許多種類的文件系統,即這些文件系統可以掛接在Linux系統的某一個安裝(掛接)點上,并由Linux系統來訪問它們。Linux文件系統在Windows中是不能被識別的,但是在Linux系統中則可以掛載Windows的文件系統,Linux目前支持MS-DOS、VFAT、FAT和BSD等格式。如果用戶使用的是RedHat或者CentOS,那么不要將NFS格式的文件掛載到Linux下,因為它不支持NFS。雖然有些版本的Linux支持NFS,但不建議使用,因為NFS目前的技術還不成熟。
ext3文件系統為Red Hat/CentOS默認使用的文件系統,除了ext3文件系統外,有些Linux發行版(例如SuSE)默認的文件系統為reiserFS。ext3獨特的優點是易于轉換,因其很容易在ext2和ext3之間相互轉換,故而具有良好的兼容性。ext3的其他優點reiserFS都有,而且還比它做得更好。如高效的磁盤空間利用和獨特的搜尋方式都是ext3所不具備的,速度上ext3也不能和reiserFS相媲美。在實際使用過程中,reiserFS也更加安全高效。
reiserFS的優勢在于,它是基于B*Tree快速平衡樹這種高效算法的文件系統,例如在處理小于1k的文件時比ext3快10倍。再有就是reiserFS空間浪費較少,它不會為一些小文件分配inode,而是打包存放在同一個磁盤塊(簇)中;ext2/ext3則是把它們單獨存放在不同的簇上。如簇大小為4k,那么2個100字節的文件會占用2個簇,reiserFS則只占用一個。當然reiserFS也有缺點,比如每升級一個版本,都要將磁盤重新格式化一次。
6.1.2 Linux文件系統類型
Linux操作系統支持的文件系統種類繁多,在/lib/modules/2.4.20-8/kernel/fs目錄(不同Linux的發行套件和版本,目錄的位置和名稱可能有所不同)中保存有Linux當前使用的和所支持的文件系統為名稱的子目錄,這些子目錄里是對應文件系統模塊的二進制代碼。Linux支持的常見文件系統如下。
(1)minix
它是Linux系統最早支持的一種文件系統,雖然本身沒有什么特色,能力也有限,但一直被認為是最可靠的文件系統。
(2)xia
minix文件系統的一個修正版,改變了文件名和文件系統大小的限制,但沒有增加其他的新特點,一直沒有流行起來。
(3)msdos
它是在MS DOS、Windows 3.x和某些OS/2操作系統上使用的一種文件系統,采用8個字符的文件名加上3個字符的擴展名。
(4)umsdos
Linux下的擴展msdos文件系統,支持長文件名、文件所有者、文件權限、鏈接和設備文件等高級文件屬性。允許Linux系統使用普通的msdos文件系統,而無須建立單獨的分區。
(5)iso9600
標準CD-ROM文件系統,支持長文件名。
(6)nfs
網絡文件系統,允許在多臺計算機之間共享文件系統。便于從聯網的計算機上使用資源。
(7)hpfs
它是微軟LAN Manager中的文件系統,同時也是IBM的LAN Server和OS/2操作系統的文件系統。hpfs能訪問較大的硬盤驅動器,并改善了文件系統的安全特性。
(8)sysv
System V和Coherent操作系統在Linux平臺上的文件系統。
(9)vfat
Windows 9.x和Windows NT/2000下使用的一種DOS文件系統,其在MS-DOS文件系統的基礎上增加了對長文件名的支持。
6.1.3 Linux文件系統的組織方式
不同的操作系統對文件的組織方式不同,所支持的文件系統數量和種類也不一定相同。Linux文件系統的組織方式稱作Filesystem Hierarchy Standard(文件系統分層標準,簡稱FHS),即采用層次式的樹狀目錄結構。在Linux操作系統中把ext2或ext3以及Linux系統所支持的各種文件系統稱為邏輯文件系統。由于每一種邏輯文件系統服務于一種特定的操作系統,具有不同的組織結構和文件操作函數,所以Linux系統在傳統的邏輯文件系統上增加了一個虛擬文件系統(VFS)的接口,如圖6-1所示。

圖6-1 Linux文件系統的組織方式
邏輯文件系統按照某種方式對系統中的所有設備,包括字符設備、塊設備和網絡設備進行統一管理,并為這些設備提供訪問接口。虛擬文件系統位于層次結構中的最上層,它是用戶與邏輯文件系統的接口,管理系統中各種邏輯文件系統,屏蔽這些邏輯文件系統的差異,為用戶命令、函數調用和內核其他部分提供訪問文件和設備的統一接口。對于普通用戶而言,感覺不到各種邏輯文件系統之間的差別,可以使用Linux系統的命令來操作其他邏輯文件系統所管理的文件。例如,掛接磁盤上某個分區中Windows操作系統的FAT32邏輯文件系統,并用cp命令復制文件或用vi命令編輯文件等。
在Linux系統中,還有兩種特殊的文件系統,即swap和proc文件系統。在安裝Linux時,系統會要求用戶劃分一個swap類型的分區以便掛接swap文件系統。Linux系統與Unix系統一樣,在內存與磁盤之間采用交換技術,把內存中長時間不活動的進程交換到swap分區(文件系統)上。這個文件系統安裝一般在Linux系統安裝過程中自動完成,Linux不支持使用mount命令掛接swap文件系統。對于proc文件系統,也稱為偽文件系統或虛擬文件系統,它所表現出來的是/proc目錄,但該目錄不占用任何磁盤空間,它實際上是Linux內核在內存中所建立的系統內核映像。proc文件系統被用于從內存讀取進程的信息,因此,通過它可以讓外部環境了解系統內核的執行情況、系統資源的使用情況等。
6.1.4 Linux系統的默認安裝目錄
按著FHS的要求,Linux系統在安裝過程中會創建一些默認的目錄。這些默認的目錄都有其特殊的功能,不可隨便將其更名,以免造成系統的錯誤。
- Kubernetes修煉手冊
- Citrix XenApp Performance Essentials
- 無蘋果不生活 OS X Mountain Lion隨身寶典
- 精通Linux內核開發
- Instant Handlebars.js
- RESS Essentials
- 網絡操作系統教程:Windows Server 2016管理與配置
- 嵌入式實時操作系統:RT-Thread設計與實現
- Mastering Reactive JavaScript
- Red Hat Enterprise Linux 6.4網絡操作系統詳解
- AWS SysOps Cookbook
- Linux基礎使用與案例
- Linux系統最佳實踐工具:命令行技術
- Hands-On GPU Programming with Python and CUDA
- Windows Vista終極技巧金典