8.1探索linux檔案系統
8.1.1基本的linux檔案系統
ext檔案系統
linux中最早引入的檔案系統:擴充套件檔案系統(extended filesystem),它為linux提供了類unix檔案系統:使用虛擬目錄操作硬體裝置,在物理裝置上使用定長塊儲存資料。
ext採用名為索引節點的系統來存放目錄中所儲存的檔案資訊。該系統在每個物理裝置中建立單獨的表(索引節點表)來儲存這些檔案資訊。虛擬目錄中的每乙個檔案在表中都有乙個條目。ext中的extend部分跟蹤每個檔案的額外資料。包括檔名,大小,屬主,屬組,訪問限權指向資料檔案的硬碟塊指標。
linux通過唯一的數值(索引節點號)來引用表中的每個索引節點,這個值在檔案建立時由檔案系統分配,檔案系統通過索引節點號而不是路徑標識檔案。
ext2檔案系統
ext2保持了同樣的結構,但是將檔案大小上限由2gb提公升到2tb。同時ext2索引節點表增加了檔案建立時間值,修改時間值,和最後訪問時間。此外,ext2通過分組分配磁碟塊優化了ext儲存資料塊易分散在磁碟中的程度。
ext和ext2採用的索引節點表在檔案更新時,無法保證同時更新,所以會帶來二者不同步的問題(通常發生在系統崩潰或斷電時)。
8.1.2日誌檔案系統
日誌檔案系統不同於之前的先更改檔案後更新索引節點表的做法,現將檔案寫入到臨時檔案(稱作日誌,journal)。待資料成功寫入儲存裝置並更新索引節點表後,再刪除對應的日誌檔案。
三種廣泛使用的日誌方式,具有不同的保護等級:
資料模式: 索引節點和檔案都會被寫入日誌,資料丟失風險低,但效能差
有序模式:只有索引節點會被寫入日誌,但只有資料寫入成功後才被刪除
回寫模式:只有索引節點會被寫入日誌,但不控制檔案資料何時寫入,丟失風險高。
其他的檔案系統:
ext3相對於ext2,給每個儲存裝置增加了日誌檔案,以將準備寫入儲存裝置的資料先寫入日誌。預設情況下,其採用預設模式的日誌功能:只將索引節點資訊寫入日誌檔案,知道所有資料塊都被寫入成功後才刪除。
ext3無法恢復誤刪的檔案,沒有內建的資料結構,也不支援加密功能。
ext4支援資料壓縮和加密,同時還支援乙個稱作區段(extent)的特性:區段在儲存裝置上按塊分配空間,但在索引節點表之儲存起始塊位置,可以節省索引節點表的空間。ext4還引入了塊預分配技術(block preallocation):如果你想在儲存裝置上給乙個較大的檔案預留空間,ext4會為檔案分配所有所需要用到的塊,將其用0填滿,不會將它們分配給其他檔案。
jfsxfs
8.1.3寫時複製檔案系統
cow(copy-on-write)兼顧了安全性和效能,如果要修改資料,會使用轉殖或快照,修改過的資料不會覆蓋當前資料,而是被放入檔案系統的其他位置。cow最流行的兩種模式:
zfs檔案系統
btrf檔案系統
8.2操作檔案系統
第八章 管理檔案系統
本章內容 檔案系統基礎 日誌檔案系統與寫時複製檔案系統 檔案系統管理 邏輯卷布局 使用linux邏輯卷管理器 linux作業系統中引入的最早的檔案系統叫作擴充套件檔案系統 extended filesystem,簡記為ext 如果系統在資料被寫入儲存裝置之前崩潰或斷電了,日誌檔案系統下次會讀取日誌檔...
C 程式設計第八章
靜態聯編所支援的多型性稱為編譯時的多型性。動態聯編所支援的多型性稱為執行時的多型性。1 靜態聯編中的賦值相容性及名字支配規律類的物件和呼叫的函式一一對應,編譯時即可確定呼叫關係,從而產生編譯時的多型性。include using namespace std const double pi 3.141...
第八章 檔案操作
第八章 檔案操作 1 檔案 基於檔案描述符的i o操作是通過檔案描述符對乙個檔案執行i o操作 檔案描述符 用於描述被開啟檔案的索引值 1 檔案型別 普通檔案 文字和二進位制 目錄檔案 存放檔名及其相關資訊的檔案,是核心組織檔案系統的基本節點 裝置檔案 外部裝置看作是特殊的檔案,包括塊裝置檔案和字元...