現代文件系統(例如Ext4和XFS等)具有多種附加特性,不僅擴展了文件系統的應用場景,而且使得文件系統的容錯性(例如日誌特性)和性能得到很大的提高。而下一代文件系統(例如Btrfs和ZFS)則提供了更加高級的功能特性,比如存儲池、RAID支持和快照等特性,使得文件系統超出了嚴格文件系統的界限,甚至具備的卷管理的能力。
文件系統已經發展的如此完善,我們是否有必要在去了解那些老古董。本號以為是有這個比較要的。一方面是通過這個我們可以了解文件系統最初的樣子,理解文件系統的理念;另外一方面是現代的問題系統都比較龐大(最少的也幾萬行代碼),不容易理解,而老的文件系統才幾千行代碼,理解起來比較容易。
廢話說了半天,還沒進入正題。首先我們可能想知道Ext4的老祖宗到底是誰,我們知道Linux操作系統是參考MINIX操作系統寫的。而Linux操作系統的第一代文件系統Ext也正式參考該系統的實現。目前在最新的內核代碼樹仍然保留這Minix文件系統。該文件系統功能特性非常簡單,能力有限,但麻雀雖小五臟俱全,代碼總量才2千行左右。