今天帶大家了解一下ext4的歷史,包括其與ext3和之前的其它文件系統之間的區別
大多數現代Linux發行版默認為ext 4文件系統,就像以前的Linux發行版默認為ext3、ext2,以及-如果追溯到足夠遠的話-ext。
如果您是Linux新手或者是文件系統新手,您可能會想知道ext 4給表帶來了什么,而ext3卻沒有??紤]到諸如btrfs、XFS和ZFS等備用文件系統的新聞報道,您可能還想知道ext4是否還在積極開發中。
我們不能在一篇文章中涵蓋所有關于文件系統的內容,但是我們將嘗試讓您了解Linux的默認文件系統的歷史、它所處的位置以及所期待的內容。
我大量地引用了各種ext文件系統文章以及我在編寫本概覽時的經驗。
ext 簡史
MINIX 文件系統
在有 ext 之前,使用的是 MINIX 文件系統。如果你不熟悉 Linux 歷史,那么可以理解為 MINIX 是用于 IBM PC/AT 微型計算機的一個非常小的類 Unix 系統。Andrew Tannenbaum 為了教學的目的而開發了它,并于 1987 年發布了源代碼(以印刷版的格式?。?。

IBM 1980 中期的 PC/AT, MBlairMartin , CC BY-SA 4.0
雖然你可以細讀 MINIX 的源代碼,但實際上它并不是自由開源軟件(FOSS)。出版 Tannebaum 著作的出版商要求你花 69 美元的許可費來運行 MINIX,而這筆費用包含在書籍的費用中。盡管如此,在那時來說非常便宜,并且 MINIX 的使用得到迅速發展,很快超過了 Tannebaum 當初使用它來教授操作系統編碼的意圖。在整個20 世紀90年代,你可以發現 MINIX 的安裝在世界各個大學里面非常流行。而此時,年輕的 Linus Torvalds 使用 MINIX 來開發原始 Linux 內核,并于1991 年首次公布,而后在 1992 年 12 月在 GPL 開源協議下發布。
但是等等,這是一篇以 文件系統 為主題的文章不是嗎?是的,MINIX 有自己的文件系統,早期的 Linux 版本依賴于它。跟 MINIX 一樣,Linux 的文件系統也如同玩具那般小 ―― MINIX 文件系統最多能處理 14 個字符的文件名,并且只能處理 64MB 的存儲空間。到了 1991 年,一般的硬盤尺寸已經達到了 40-140 MB。很顯然,Linux 需要一個更好的文件系統。
ext
當 Linus 開發出剛起步的 Linux 內核時,Rémy Card 從事第一代的 ext 文件系統的開發工作。ext 文件系統在 1992 年首次實現并發布 ―― 僅在 Linux 首次發布后的一年!―― ext 解決了 MINIX 文件系統中最糟糕的問題。
1992 年的 ext 使用在 Linux 內核中的新虛擬文件系統(VFS)抽象層。與之前的 MINIX 文件系統不同的是,ext 可以處理高達 2 GB 存儲空間并處理 255 個字符的文件名。
但 ext 并沒有長時間占統治地位,主要是由于它原始的時間戳(每個文件僅有一個時間戳,而不是今天我們所熟悉的有 inode、最近文件訪問時間和最新文件修改時間的時間戳。)僅僅一年后,ext2 就替代了它。
ext2
Rémy 很快就意識到 ext 的局限性,所以一年后他設計出 ext2 替代它。當 ext 仍然根植于 “玩具” 操作系統時,ext2 從一開始就被設計為一個商業級文件系統,沿用 BSD 的 Berkeley 文件系統的設計原理。
ext2 提供了 GB 級別的最大文件大小和 TB 級別的文件系統大小,使其在 20 世紀 90 年代的地位牢牢鞏固在文件系統大聯盟中。很快它被廣泛地使用,無論是在 Linux 內核中還是最終在 MINIX 中,且利用第三方模塊可以使其應用于 MacOS 和 Windows。
但這里仍然有一些問題需要解決:ext2 文件系統與 20 世紀 90 年代的大多數文件系統一樣,如果在將數據寫入到磁盤的時候,系統發生崩潰或斷電,則容易發生災難性的數據損壞。隨著時間的推移,由于碎片(單個文件存儲在多個位置,物理上其分散在旋轉的磁盤上),它們也遭受了嚴重的性能損失。
新聞熱點
疑難解答