2011-05-18 54 views
0

我正在考慮開發自己的文件存檔格式以用於私人項目。問題是我不在尋找像7z或RAR這樣的解決方案,但我想做出與文件系統類似的東西。定製存檔格式問題

看着真正的文件系統,每個人都有兩個共同的部分在其體系結構 - 關於存儲在磁盤上的文件的實際數據文件的信息,如下所示:

---------------------------- 
     METADATA | FILE DATA 
    ---------------------------- 

我的問題是 - 怎麼回事這兩個部分可能不會重疊?我的意思是,FAT結構部分增長向文件數據部分,而後者增長到磁盤(分區)的末尾。文件系統如何管理這些部分?

這是我一直試圖找出大部分時間,任何提示將更受歡迎。

回答

0

大多數文件系統都使用具有固定大小的簇或頁面或塊進行操作。在許多文件系統中,目錄(元數據)只是一個特殊文件,因此它可以像常規數據文件增長一樣進行增長。在其他文件系統上,某些主元數據塊具有固定的大小,該大小在文件系統格式化時預先分配。在這種情況下,在文件佔用所有可用空間之前,文件系統可能會變滿。

在附註中,是否有理由重新發明輪子(用於私人需求的自定義文件系統)?存在一些類似於檔案的文件內虛擬文件系統的實現,但是提供更多功能。其中一個例子是我們的SolFS

+0

嗨尤金,我正在尋找一個挑戰。我還聽說過元數據部分朝向磁盤末尾增長並且文件部分向元數據部分增長的方法。你對這種方法有什麼看法?並感謝您的好意,但我想盡我所能,並提出自己的解決方案。 :) – Pateman 2011-05-18 22:05:10

+0

@Paterman是的,你描述的方法聽起來非常有趣和可行(對於固定大小的磁盤)。然而,在你的特定情況下它有一個缺點 - 你需要修復存儲的大小。相反,將所有內容作爲集羣序列使用,可以根據需要增大或縮小存儲空間。我們的SolFS使用第二種方法,這讓我們擁有可變長度的容器。 – 2011-05-19 05:03:49

+0

我明白了。是的,我不想設置我的檔案文件的固定大小。我的另一個想法是將元數據放在文件數據之後,在保存壓縮文件之前,將整個元數據複製到內存中,讓文件覆蓋現有的部分,並將元數據再次存儲在文件中。你怎麼看? – Pateman 2011-05-19 09:19:35