跳至內容

Fork(檔案系統)

出自Taiwan Tongues 台語維基
於 2025年8月23日 (六) 07:24 由 TaiwanTonguesApiRobot留言 | 貢獻 所做的修訂 (從 JSON 檔案批量匯入)

(差異) ←上個修訂 | 已批准修訂 (差異) | 最新修訂 (差異) | 下個修訂→ (差異)

佇咧電腦檔案系統領域內底,fork是一个佮檔案系統物件有關係的資料集。無咧 fork 機制的檔案系統只允准內容有單個資料集,喔有 fork 的檔案系統允准濟內容。逐个人兜上無有一个人 fork(通常替預設類型); 因為檔案系統嘛無仝,一个檔案可能有一个足濟相關聯的 fork;fork 可能包括有關係的檔案主體的資料,抑是元資料。和通常固定做固定的一个類似的檔案系統特性—— 擴充檔案屬性,fork 會當為著會當變大細,甚至可能大於檔案的主資料 fork。一个檔案的大細是其各 fork 大細的總和。因為其實是會當變大細(攏無仝款固定的資料), Fork 嘛號做資料(streams), 毋過伊佮其他的「流」所表現出來的「可用性綴時間咧改變(包括無限期)」 無仝。

方案

在沒有 fork 的檔案系統上,使用者會當使用互相關聯的濟單獨檔案,尤其是用 sidecar file 來儉元資料。猶毋過,遮的檔案間的連接袂由檔案系統自動保留,並且逐个程式攏愛支援揤遮的檔案來做工課。另外一種選擇是容器檔案,其實共額外資料儲存佇指定的檔案格式抑是一个 archive file 中,因此允准佇一个檔案(單位 fork)中儲存真濟个檔案佮元資料。這會要求程式處理容器檔案抑是壓縮檔案,毋是由作業系統處理 fork。遮的替代方案攏愛處理資料的程式進行另外的處理,但是毋支援 fork 的檔案系統的可移植性閣較好。

實現

蘋果公司

蘋果公司的分層檔案系統(HFS)中 fork 佮檔案系統關係密切。HFS 佮原有的 Mac 系列(麥金塔)的檔案系統麥金塔檔案系統(MFS)允准一个檔案系統的物件有偌種 fork:一个資料 fork,一个資源 fork,佮幾若个號名 fork。

資源 fork 的設計是為儲存被系統的圖形化使用者介面(GUI)使用的非編譯資料,比如講會當在地化文字捾,由 Finder 抑是選單使用的檔案圖樣,閣有應用程式相關的選單佮對話方塊等等。但是這個特性非常的靈活,所以嘛出現了加額的用途,比如講共文書處理文件處理做內容佮表示法,才閣共各部份儉佇咧單獨的資源內底。因為編譯了後的軟體代碼也儲存佇咧資源內底,所以應用程式通常只包含一个資源 fork,啊若無資料 fork。

HFS + 的一項上晦澀的特性是,一个檔案除了傳統的資料佮資源 fork 以外,閣會當有任意數量的自訂的「號名 fork」。 此特性真少予人使用,因為蘋果公司毋捌佇 Mac OS 八孵一至十三 . 九上添加對伊的支援。對十曉四開始,一个部份實現予人完成,以支援蘋果的擴充行內屬性。

佇咧 Mac OS X v 十曉四進前,使用者執行 Mac OS X 佇咧所內起的經典的 Unix 命令列實用工具(比如講 tar)可能紮來資料遺失風險,因為遮的工具無予人更新用支援處理檔案的資源 fork,一直到 v 十曉四。

Novell

對一九八五年開始,Novell NetWare File System(NWFS)佮其實繼續 Novell Storage Services(NSS)就已經對頭設計加種儲存檔案元資料的方法。部分元資料儲存佇咧 Novell Directory Services(NDS)中,部份元資料儲存佇磁碟頂懸的 kha-tá-lok-guh 結構當中,部份儲存佇咧檔案本身的「多項資料流」中。濟項資料流允准 Macintosh 客戶捀附加佮使用 NetWare 侍服器。

微軟

佇咧 Windows NT 三更一引入的 NTFS 檔案系統支援予人叫做替代資料流(ADS)檔案系統 fork。隨 Windows Server 二千空一十二引入的新檔案系統 ReFS,上頭仔毋支援 ADS,, 猶毋過佇 Windows 八否一六十四位元及 Server 二千空一十二 R 第二中已經支援 ADS,唯其長度上濟百二八 K 的限制予人加入來到 ReFS。

ADS 上蓋起初是為著添加佮現有的支援 fork 的作業系統的相容性。電腦的程式會當直接咧檔案路徑的後壁添加一个冒號(:)佮指定的 ADS 這个名稱來拍開一个 ADS。就算講遮支援,但包括檔案總管佮 DIR 命令(Windows Vista 進前)在內的大多數程式攏會失覺察 ADS。Windows 檔案總管會複製 ADS 並且佇目的檔系統毋支援 ADS 時陣發出警告,但是只有算主流的大細,並且袂列出檔案抑是資料篋仔的流。Windows Vista 中的 DIR 命令支援顯示 ADS。Windows PowerShell v 三更零及之後的版本支援操作 ADS。

使用

Windows 二千使用 ADS 以佇圖檔內底儲存縮圖,並且佇任何檔案當中儲存摘要資訊(諸如標題、作者等), 按呢袂更改主資料流。佇咧 Windows XP 中,微軟已經意識到當檔案予人徙出 NTFS 卷時,其實所含的 ADS 較𠢕遺失;所以 Windows XP 為著欲檔案格式支援,就儘量共資料儉佇咧主資料流內底。Windows Vista 停止支援添加挽愛資訊,微軟認為用 ADS 操作伊過敏感。猶毋過,用著其他目的的 ADS 無停,Windows XP 的 Service Pack 二引入附件執行服務,伊會已經下載檔案的原始來源詳細儲存佇一个名做「區域識別碼」的 ADS 中,努力保護使用者免受著載檔案所帶來的風險。Internet Explorer 和 Windows 八則是通過 Microsoft SmartScreen 執行這个功能。Internet Explorer 嘛使用 ADS 來佇咧 Internet 捷徑檔案當中儲存 Favicon。

Sun

Solaris 第九版佮了後的版本允准檔案有「擴充屬性」,這實際上就是 fork;一个擴充屬性的上大大細佮檔案的上大大細仝款,並且讀寫𪜶是採用佮讀寫檔案仝款的方式。佇內部,𪜶實際上像普通檔案仝款儲存佮存取,所致其所有權和權限可能佮爸檔案的所有權和權限欲相異。因為路徑會佮子 kha-tá-lok-guh 衝突,因此𪜶的檔名袂當包括「/」字元。

網路檔案系統(NFS)第四版支援擴充檔案屬性,佮 Solaris 的方式真大致仝款。

可能的安全問題佮資料遺失風險

你咧檔案系統支援某種抑是濟種 fork 時,應該用程式應該感知𪜶,猶閣有注意資料佮安全風險。允准經典的軟體存取無適當相容層的資料是發生此類問題的主要原因。

若是各類系統實用的程式(磁碟檔案總管、防病毒軟體、壓縮歸檔程式等等)未感知 fork,可能致使拄著下列問題:

  • 使用者袂知影任何 fork 的存在矣,嘛毋知檔案的實際總大細,干焦看著檔案的主資料流的大細。
  • 電腦病毒可能佇 Windows 上使用替代的資料流(ADS)隱藏來逃脫檢測,若防病毒軟體無意識講 fork 的存在矣。
  • 咧通過 fork 無敏感的通道傳送檔案的時陣,資料可能遺失。遮的管道包括親像電子批、無支援 fork 的檔案系統,並且嘛包括咧支援 fork 的檔案系統上使用無支援 fork 的軟體複製抑是包包(壓縮、歸檔)檔案。

參見

  • 擴充檔案屬性

參考資料

外部連結

  • MSDN Library : File Streams
  • Alternate Data Streams
  • Alternate Data Streams in Windows