上回我們談到檔案系統所需要的基本功能,這回我們來談談檔案系統會用到哪些進階功能。
上回我們談到檔案系統所需要的基本功能,這回我們來談談檔案系統會用到哪些進階功能。
一、Symbolic Links
Symbolic Link就是在檔案系統中建立一個指向另一檔案的名稱的link,就Windows中的捷徑就是。Symbolic Link指向的是檔名而不是i-node資訊,所以當原始的檔名更動之後,Symbolic Link就找不到原始的檔案了。
二、Hard Links
不同於Symbolic Link,Hard Link指向的是檔案的i-node資訊所在,所以設置檔案名稱變動了,Hard Link依舊能夠找到檔案。
三、Memory Mapping of Files
Memory Mapping可以在虛擬記憶體(Virtual Memory)中建立一塊完全對應到檔案的區塊,他的作用是可以讓寫到記憶體中的資料同步寫入到磁碟系統的檔案中。在Unix系統中,mmap()呼叫就是這樣一個功能。
四、Attributes
很多檔案系統提供了Attributes這樣的功能,像是NTFS,他可以記錄檔案的額外資訊。譬如說一個影音檔,我們可以在檔案中附加紀錄影音的作者、出版者、或是影音分級、歸類等等資訊。
五、Indexing
在檔案系統中,迅速搜尋檔案是很重要的功能,尤其當檔案數量、種類都越來越多時。除了針對檔名的搜尋之外,我們可以在Attribute中設計關鍵字 (Keyword)的功能,讓檔案的搜尋可以針對內容的描素,而不僅僅檔案名稱。除了在Attributes中加入Keyword的屬性,檔案系統亦要搭配查詢的語言(SQL或是正規表示法),才能讓Indexing發揮很好的效率。
六、Journaling
聰明穩固的檔案系統必須要具備有避免檔案毀損,或是能從毀損中修復檔案系統的能力。Journaling是從資料庫系統上借用來的觀念,這項技術的原理就是將所有檔案的變更動作記錄下來(Transaction Log),以作為修復檔案系統時的參考。
七、Access Control Lists (ACL)
ACL是用來控制檔案存取的權限,在POSIX中定義了三種存取權限的類別,檔案的擁有者(Owner)、使用者所屬的群組(Group)、以及其他任何人(Others)。