軟件測試工具linux文件系統基礎知識 軟件測試方法
關鍵字:linux 文件系統 基礎知識
這兩天看了一本fedora 6的實踐教程,下面是有關linux文件系統知識的學習筆記:
1、linux文件系統分配策略:
塊分配( block allocation ) 和 擴展分配 ( extent allocation )
塊分配:磁盤上的文件塊根據需要分配給文件,避免了存儲空間的浪費。但當文件擴充時,會造成文件中文件塊的不連續,從而導致過多的磁盤尋道時間。
每一次文件擴展時,塊分配算法就需要寫入文件塊的結構信息,也就是 meta-dada 。meta-data總是與文件一起寫入存儲設備,改變文件的操作要等到所有meta-data的操作都完成後才能進行,
因此,meta-data的操作會明顯降低整個文件系統的性能。
擴展分配: 文件創建時,一次性分配一連串連續的塊,當文件擴展時,也一次分配很多塊。meta-data在文件創建時寫入,當文件大小沒有超過所有已分配文件塊大小時,就不用寫入meta-data,直到需要再分配文件塊的時候。
擴展分配采用成組分配塊的方式,減少了SCSI設備寫數據的時間,在讀取順序文件時具有良好的性能,但隨機讀取文件時,就和塊分配類似了。
文件塊的組或塊簇 ( block cluster) 的大小是在編譯時確定的。簇的大小對文件系統的性能有很大的影響。
注: meta-data 元信息:和文件有關的信息,比如權限、所有者以及創建、訪問或更改時間等。
2、文件的記錄形式
linux文家系統使用索引節點(inode)來記錄文件信息。索引節點是一種數據結構,它包含了一個文件的長度、創建及修改時間、權限、所屬關系、磁盤中的位置等信息。
一個文件系統維護了一個索引節點的數組,每個文件或目錄都與索引節點數組中的唯一的元素對應。每個索引節點在數組中的索引號,稱為索引節點號。
linux文件系統將文件索引節點號和文件名同時保存在目錄中,所以,目錄只是將文件的名稱和它的索引節點號結合在一起的一張表,目錄中每一對文件名稱和索引節點號稱為一個連接。
對於一個文件來說,有一個索引節點號與之對應;而對於一個索引節點號,卻可以對應多個文件名。
連接分為軟連接和硬連接,其中軟連接又叫符號連接。
硬連接: 原文件名和連接文件名都指向相同的物理地址。目錄不能有硬連接;硬連接不能跨文件系統(不能跨越不同的分區),文件在磁盤中只有一個拷貝。
由於刪除文件要在同一個索引節點屬於唯一的連接時才能成功,因此硬連接可以防止不必要的誤刪除。
軟連接: 用 ln -s 命令建立文件的符號連接。符號連接是linux特殊文件的一種,作為一個文件,它的數據是它所連接的文件的路徑名。沒有防止誤刪除的功能。