檔案系統的演進
在開發電腦以在磁片作業系統上運作之前,每部電腦都是為了執行單一專屬應用程式而建置,此應用程式具有整個電腦的完整和獨佔控制權。 應用程式會直接將其永續性資料寫入磁片,或藉由將命令直接傳送至磁碟控制卡來寫入磁片。 應用程式負責管理磁片上資料的絕對位置,並確定它不會覆寫已經存在的資料。 由於任何時間只有一個應用程式在電腦上執行,因此此工作並不困難。
可能執行多個應用程式的電腦系統問世需要一個機制,以確保應用程式不會寫入彼此的資料。 應用程式開發人員藉由採用單一標準來區別使用中的磁片磁區,以及藉由據以標記磁片磁區,來解決此問題。 這些標準會聯合成為磁片作業系統,其為應用程式提供各種服務,包括用於管理永續性儲存體的檔案系統。 隨著檔案系統的問世,應用程式不再需要直接處理實體儲存媒體。 相反地,他們只會告訴檔案系統將資料區塊寫入磁片,並讓檔案系統擔心該怎麼做。 此外,檔案系統允許應用程式透過稱為目錄的抽象概念來建立資料階層。 目錄不只包含檔案,也可以包含其他目錄,而其他目錄則包含自己的檔案和目錄等等。
檔案系統提供應用程式和磁片之間的單一間接層級,結果是每個應用程式在磁片上將檔案視為單一連續的位元組資料流程,即使檔案系統實際將檔案儲存在不連續的磁區中也一樣。 間接取用會釋放應用程式,而不需要追蹤儲存體裝置上資料的絕對位置。
現在,檔案輸入和輸出的所有系統 API 幾乎都會提供應用程式,以將資訊寫入一般檔案。 應用程式會將此檔案視為單一位元組資料流程,可視需要成長到磁片已滿為止。 這些 API 已足以讓應用程式儲存其永續性資訊。 應用程式在處理單一資訊串流的方式上進行了重大創新,以提供累加「快速」儲存等功能。
不過,在元件物件的世界中,將資料儲存在單一一般檔案中不再有效率。 就像檔案系統一樣,多個應用程式需要共用相同的儲存媒體,因此現在,元件物件需要一個系統,讓它們能夠在單一檔案的概念架構內共用儲存體。 即使可以使用傳統一般檔案儲存體來儲存個別的物件,但如果其中一個物件的大小增加,或者如果您只新增另一個物件,則需要將整個檔案載入記憶體、插入新的物件,然後儲存整個檔案。 此程式可能非常耗時。
COM 所提供的解決方案是實作第二層間接取值:檔案內的檔案系統。 一般檔案儲存體需要透過具有單一搜尋指標的單一檔案控制代碼操作磁片上的大型連續位元組序列。 相較之下,COM 結構化儲存體會定義如何將單一檔案系統實體視為兩種物件類型的結構化集合,這些物件會像目錄和檔案一樣運作。