檔案系統新手

檔案系統新手

我不明白為什麼每個檔案系統的檔案大小和總可尋址記憶體都有限制。例如為什麼FAT32的最大檔案大小可以是4GB?

答案1

基本上,大部分都歸結為舊標準(尤其是 FAT16/32),這些標準是在 4GB 文件聞所未聞、2TB 分區大得令人難以置信的時候設計的。他們在當時完全合理的標準中進行了權衡。

如果你仔細研究一下,你會發現舊的檔案系統非常有限,因為當時電腦的使用受到限制。現在,我們有能力創建如此大的分區,我們可能在接下來的 20-30 年內都不會擁有與之匹配的設備。

答案2

我將在這裡省略大量的程式理論和作業系統設計,否則這將需要幾天的時間。

簡而言之,因為在編寫它們時,在實作中做出了某些假設和決定,特別是在如何尋址和存取檔案方面。

用計算機的術語來說,任何事物都必須有一個最大值──無限是不存在的。

更重要的是,每個目錄條目都需要有一種獨特的方式來標識自己——所有權、它有什麼特殊屬性和權限、它是什麼類型的文件(目錄、符號鏈接、硬鏈接、常規文件、管道、區塊設備、字元)設備等)。在大多數 UNIX 檔案系統上,這稱為 '索引節點號',並且由於每個文件都必須是唯一的,因此您擁有的文件數量永遠不會超過可能的不同數量。

其他問題是(或曾經是)最佳化問題之一;因為檔案系統操作是您的系統將要做的事情相當通常,設計人員自然傾向於選擇他們認為合理的最小尺寸數字範圍,因為計算機可以用(位長方面)較小的數字比較大的數字快得多......並且當您在最大的硬碟驅動器中看到時市場容量為 1 或 2 GB,您可能會傾向於認為 65,000 個檔案和 2 TB 的最大檔案系統大小是合理的前瞻性想法。

然後時間流逝,不到十年後,核心程式設計師咒罵你的名字和你缺乏遠見,因為他們試圖將更好的容量逆向工程到你的檔案系統程式碼中。

相關內容