FlossDoc: 請協力 GPLv3 的中文翻譯工作。
GNU/Linux 檔案系統史
FlossDoc,自由中文開源知識庫
目录 |
初代檔案系統 - Minix 檔案系統的不足
Linux 最早期的開發工作是在 Minix 上進行。當 Linus Torvalds 主要集中在儘快令 Linux 成為一可以運作的作業系統而無閒開發其他組件時,Minix 檔案系統[1]很自然地被順手拈來並成為 Linux 上首個使用的檔案系統。Minix 檔案系統效能不錯,並且相對上沒有甚麼臭蟲 (bug)。[2] 然而,可能因為 Minix 本身只是用作教授作業系統原理和編寫的教材,Minix 檔案系統的功能有很多限制而未能應付實際應用上的需要,例如使用 16-bit offset 令它最大只可以支援 64 MiB 大小的檔案,而檔案名稱亦不能超過 14 個字元。因此,開發一個專為 GNU/Linux 而設的檔案系統工作亦隨即展開。[3]
Ext 檔案系統的冒起
為簡化加入新檔案系統並提供一個泛用的檔案 API,Chris Provenzano 和 Linus Torvalds 將 VFS (Virtual File System) 層帶入 Linux。[2] 1992 年 4 月,Rémy Card 設計的 Extended Filesystem (Ext) 正式發佈並在 Linux 0.96c 中開始被收錄,亦成為首個 Linux 上使用 VFS API 的檔案系統。Ext 解決了 Minix 檔案系統的兩個限制,檔案大小上限增至 2 GiB,而檔案名稱亦可以長達 255 個字元。不過,Ext 距一個實際應用的檔案系統仍有一點距離 — 未提供存取時間 (access time)、 inode 修改時間和資料修改時間等功能,其效能亦只屬一般。[4]
Ext2 和 Xiafs 之爭
因此,兩個新的檔案系統 Ext2 和 Xiafs 很迅速地在 1993 年 1 月被提出競逐 Linux 主要檔案系統的寶座。兩個檔案系統在 Linux 0.99.15 (1993 年 12 月) 開始被收錄。[3] Frank Xia 的 Xiafs 建基於 Minix 的檔案系統,比 Ext 更穩定和提供更強功能。而另一競爭者 Ext2 顧名思義是 Ext 的後繼者,亦同是 Rémy Card 的作品。兩者都旨在提 Linux 提供一個效能佳,各類限制合理並修正 Ext 各種問題、真正實用的檔案系統。初期 Xiafs 比 Ext2 更穩定,功能更強。然而,Xiafs 始終對 Minix 檔案系統的改良並不多,令其擴充能力較弱。此外,Xiafs 中的檔案大小不能超過 64 MiB,而整個檔案系統大小不能超過 2 GiB。[5] 相反,Ext2 引入了很多 Berkeley Fast File System 的點子並在設計中預留了擴充的空間。[3] 往後一段時間, Xiafs 的改進很少。相較之下,Ext2 的發展較活躍。它迅速改善了其穩定性,效能和增加了不少新功能。[5] 最終,Ext2 成功擊倒 Xiafs 成為 Linux 的標準檔案系統並發展成為一個非常成熟和穩固的檔案系統。Xiafs 自此亦很少人使用和無人繼續維護,最後在 Linux 2.1.21 (1997 年 1 月) 被正式移除。[5][6]
日誌式檔案系統 (Journaling Filesystem)
Ext2 一直成為使用 GNU/Linux 必用的檔案系統近十年之久。在 90 年代末,GNU/Linux 開始廣為人知並引應不少企業的興趣。然而,欠缺一個穩固的日誌式檔案系統 (Journaling Filesystem) 卻成為 GNU/Linux 進入企業市場的一大障礙。各方開始著手為 GNU/Linux 引入日誌式檔案系統而努力。到 2001 年,四個解決方案幾乎同時出現,他們分別是 ReiserFS、Ext3、JFS 和 XFS。
和其他 GNU/Linux 上的日誌式檔案系統不同,ReiserFS 是完全由零開始創建出來的。其原開發者 Hans Reiser 最早在 1997 年 7 月 23 日於互聯網公布 ReiserFS。2001 年初, ReiserFS 在 Linux 2.4.1 被正式引入 Linux 核心,並成為 Linux 上第一個支援的日誌式檔案系統。
Ext3 顧名思意是 ext2 的後繼者,它事實上只是 ext2 上擴充加入日誌性功能,結構上和 ext2 完全相同。Ext3 的設計者 Stephen C. Tweedie 最早在 1999 年 2 月 kernel 電郵論壇 (mailing list) 的一篇文章[7]透露它正在擴充 Ext2。Tweedie 的成果在 2001 年 11 月被正式放入 Linux 2.4.15 中。 [8]
此外,兩間著名的 Unix 生產商 IBM 和 SGI (Silicon Graphics, Inc) 對在其產品應用 GNU/Linux 非常績極,並把其 Unix 上使用日誌式檔案系統 JFS 和 XFS 移植至 GNU/Linux 。
JFS 是 IBM 在 1990 就開始應用在 AIX 的日誌式檔案系統。曾被安裝在過百萬台 IBM 顧客的 AIX 系統中令 JFS 的穩定性和效能受到很大的肯定。移植至 GNU/Linux 的 JFS 其實是 IBM 在 1995 開始著手改良強化並在 1999 年 4 月開始正式應用在 OS/2 Warp Server 和在 2001 年 5 月開始被加入 AIX 5L 的 JFS2 (Enhanced Journaled File System)。1999 年 10 月,原供 OS/2 並正在移植回 AIX 的 JFS2 源碼被以 GNU General Public License 開放並開始移植至 Linux。而第一個穩定版本的 JFS for Linux 亦在 2001 年 6 月推出。[9] 至 2002 年 8 月,JFS 正式併入穩定版 Linux 核心 2.4.20。[10]
XFS 自 1994 開始已應用在由工作站至超級電腦等所有 IRIX 系統中[11],令其效能和穩定性同受度很大的肯定,尤其在處理大型檔案和多媒體 streaming 方面。2000 年 5 月,SGI 宣佈將 XFS 以 GNU General Public License 開放並移植至 Linux。差不多一年後,SGI 正式推出穩定可應用在 Linux 2.4 系列核心的 XFS 1.0 for Linux。[12] 然而 Linux 穩定版核心正式支援 XFS 要到兩年多後的 Linux 2.6.0 和 2.4.25。[13][14]
ReiserFS 隨後取得不錯的成續,在多個效能測試都取得不錯的成績,尤其在小型檔案處理方面。SuSE Linux Enterprise 和 Xandros 等都相繼使用 ReiserFS 作為預設檔案系統。然而,因為由 Ext2 升級至 Ext3 和 Ext 系列檔案系統原身在 GNU/Linux 界的長期佔有率和穩定性,ReiserFS 在 GNU/Linux 的市場始終未能擊敗 Ext3。
Reiser4 與 Hans Reiser 殺妻風波
2006 年 9 月 Reiser4 的開發領導 Hans Reiser 因涉嫌謀殺其妻被捕,ReiserFS 和 Reiser4 的前景迅速蒙上陰影。Novell 在同年 10 月 12 日宣佈 SuSE Linux Enterprise 往後的版本會由 ReiserFS 改用 Ext3 作預設檔案系統。[15] 各界開始懷疑 Novell 突如其來的決定和 Reiser 被捕有關,但 SuSE 否認此傳聞。[16] 由 Hans Reiser 創立並負責 Reiser4 開發的公司 Namesys 的網站至 2007 年年尾已因 DNS 問題不能被訪問。2008 年 1 月 26 日,Namesys 的一名程式員 Edward Shiskin 於 CNET 的訪問中透露 Namesys 的一切商業活動實則已停止[17]。但在 Kernel.org 提供網頁空間下,Shiskin 仍繼續進行 ReiserFS 的工具和 Reiser4 的開發。[18]
Ext4 接棒
Ext4 原本只是一系列 ext3 的擴充元件以令 Ext3 支援 64-bit 儲存限制和其他效能上的改進。[19] 但部份 Linux 核心開發者以影響穩定為理由反對直接在 ext3 加入這些擴充[20],並建議分拆 ext3 的源碼作新擴充元件的開發,並改名為 ext4。最後,這建議被接納。2006 年 6 月 28 日,ext3 的管理者 Theodore Ts'o 宣佈 ext4 的開發計劃。[21]
一個初步的開發版本 ext4 被放入 Linux 2.6.19 中。2008 年 10 月 11 日,ext3 在 Linux 2.6.28 源碼上被標記為穩定[22],表示 ext4 的開發週期已完結並建議使用 ext4。而 Linux 2.6.28 亦在 2008 年 12 月 25 日正式被發佈。[23]
未來的檔案系統 BtrFS
參考資料
- ↑ Wikipedia. Minix file system.
- ↑ 2.0 2.1 Card, Rémy, Ts’o, Theodore & Tweedie, Stephen (1994). Design and implementation of the second extended filesystem. Proceedings of the First Dutch International Symposium on Linux. ISBN 90-367-0385-9.
- ↑ 3.0 3.1 3.2 Wikipedia. Ext2.
- ↑ Wikipedia. Extended file system.
- ↑ 5.0 5.1 5.2 Wikipedia. Xiafs.
- ↑ Linus Tovalds (1997) linux-2.1.21.tar.bz2. Kernel.org.
- ↑ Tweedie, Stephen C. (Feb 17, 1999). “Re: fsync on large files”. Linux kernel mailing list.
- ↑ Radez, Rob (Nov 23, 2001).“ 2.4.15-final”. Linux kernel mailing list.
- ↑ Loli-Queru Eugenia (Aug 28, 2001) “Interview With the People Behind JFS, ReiserFS & XFS”. OS News.
- ↑ gncuster (Aug 20, 2002). “Linux: JFS merged in 2.4”. KernelTrap.
- ↑ Robbins, Daniel (Jan 1, 2002). “Advanced filesystem implementor's guide, Part 9: Introducing XFS”. IBM developerWorks.
- ↑ The SGI XFS Team (Dec 8, 2003). “Announce: XFS Release 1.0 for Linux'”'. The SGI XFS Team.
- ↑ Tosatti, Marcelo (Dec 8, 2003). “XFS merged in 2.4”. Linux Kernel Mailing List.
- ↑ SGI.“XFS News”. SGI Developer Central Open Source.
- ↑ Shankland, Stephen (Oct 12, 2006). “Novell makes file storage software shift”. CNet News.
- ↑ Mahoney, Jeff (Oct 4, 2006).“ Announcement was unrelated to Reiser's legal troubles”.
- ↑ Shankland, Stephen (Jan 16, 2008). “Namesys vanishes, but Reiser project lives on”. CNet.
- ↑ Shiskin, Edward (Apr 19, 2008). “New location of Namesys software”. Linux Kernel Mailing List.
- ↑ Mathur, Avantika, Cao, Mingming, Bhattacharya, Suparna, Dilger, Andreas, Tomas, Alex and Vivier, Laurent (Jun 2007). “The new ext4 filesystem: current status and future plans”. Proceedings of the Linux Symposium June 27–30, 2007, Ottawa, Ontario, Canada.
- ↑ Torvalds, Linus (Jun, 9 2006) “Re: [Ext2-devel] [RFC 0/13] extents and 48bit ext3”. Linux Kernel Mailing List.
- ↑ Ts'o, Theodore (Jun 28, 2006). “Proposal and plan for ext2/3 future development work”. Linux Kernel Mailing List.
- ↑ Ts'o, Theodore (Oct 11, 2006). “ext4: Rename ext4dev to ext4”. Linux kernel tree.
- ↑ Leemhuis, Thorsten (Dec 23, 2008). “Higher and further: The innovations of Linux 2.6.28”. Heise Online.
請參看
外部連結
- Linux Magazine: ext4 File System: Introduction and Benchmarks (Jeffery B. Layton 2009-03-28)
- MakeTechEasier: Choosing The Best Linux Filesystem For Your PC (Joshua Price 2010-04-13)
页面分类: 未完成小作品 | Filesystem

