一悯姊、特點概述:
1、Unix文件系統(tǒng)的組織是分級樹型結構形式贩毕。其類似于倒向的樹悯许,樹的根是根目錄,樹上每個結點都是一個目錄辉阶,而樹葉則是信息文件先壕。Unix十分靈活。每個用戶都可以建立自己的文件系統(tǒng)谆甜,將掛載到Unix文件系統(tǒng)中垃僚,或者從Unix文件系統(tǒng)中卸載自己的文件系統(tǒng)。
2规辱、引入索引結點iNode的概念谆棺,將文件名和文件說明部分分開,分別作為目錄文件和索引文件的一個表項罕袋。不僅可以加速對文件的檢索過程改淑,減輕通道I/O的壓力,還可以給文件的鏈接和共享帶來極大的方便浴讯。
3朵夏、文件的物理結構為混合索引式文件結構。即榆纽,文件的物理結構可能包括多種索引結構形式:單級索引結構仰猖,兩級索引結構,多級索引結構形式奈籽。這樣可提高文件查詢的速度饥侵,節(jié)省文件地址所需存儲空間。
4唠摹、采用成組鏈接法管理空閑盤塊爆捞。這種管理方式結合了空閑鏈法和空閑表法的優(yōu)點,有避免了鏈(表)過長的缺點勾拉。
二煮甥、硬鏈接與軟鏈接
文件都有文件名與數據盗温,這在 Linux 上被分成兩個部分:用戶數據 (user data) 與元數據 (metadata)。用戶數據成肘,即文件數據塊 (data block)卖局,數據塊是記錄文件真實內容的地方。
元數據則是文件的附加屬性双霍,如文件大小砚偶、創(chuàng)建時間、所有者等信息洒闸。在 Linux 中染坯,元數據中的 inode 號(inode 是文件元數據的一部分但其并不包含文件名,inode 號即索引節(jié)點號)才是文件的唯一標識而非文件名丘逸。文件名僅是為了方便人們的記憶和使用单鹿,系統(tǒng)或程序通過 inode 號尋找正確的文件數據塊。
1深纲、硬鏈接
有著相同 inode 號僅文件名不同的文件仲锄,因此硬鏈接存在以下幾點特性:
- 文件有相同的 inode 及 data block;
- 只能對已存在的文件進行創(chuàng)建湃鹊;
- 不能交叉文件系統(tǒng)進行硬鏈接的創(chuàng)建儒喊;
- 不能對目錄進行創(chuàng)建,只可對文件創(chuàng)建币呵;
- 刪除一個硬鏈接文件并不影響其他有相同 inode 號的文件怀愧。
2、軟鏈接
軟鏈接與硬鏈接不同富雅,若文件用戶數據塊中存放的內容是另一文件的路徑名的指向掸驱,則該文件就是軟連接。軟鏈接就是一個普通文件没佑,只是數據塊內容有點特殊毕贼。軟鏈接有著自己的 inode 號以及用戶數據塊。因此軟鏈接的創(chuàng)建與使用沒有類似硬鏈接的諸多限制:
- 軟鏈接有自己的文件屬性及權限等蛤奢;
- 可對不存在的文件或目錄創(chuàng)建軟鏈接鬼癣;
- 軟鏈接可交叉文件系統(tǒng);
- 軟鏈接可對文件或目錄創(chuàng)建啤贩;
- 創(chuàng)建軟鏈接時待秃,鏈接計數 i_nlink 不會增加;
- 刪除軟鏈接并不影響被指向的文件痹屹,但若被指向的原文件被刪除章郁,則相關軟連接被稱為死鏈接(即 dangling link,若被指向路徑文件被重新創(chuàng)建,死鏈接可恢復為正常的軟鏈接)暖庄。