作業系統 第十三章 檔案系統實例
第十三章 檔案系統實例 UNIX檔案系統 架構 inode Superblock Linux檔案系統 Windows 檔案系統 摘要
UNIX檔案系統 UNIX 是 Linux 作業系統的基礎架構。 兩者設計的基本概念上所支援的各種檔案系統大同小異。 UNIX 檔案系統 inode Superblock
架構 磁碟分割會切割成多個固定大小的區塊。 這些區塊依用途可分成三類: UNIX 檔案系統的磁碟區塊分配示意圖 系統相關資訊 儲存目錄與檔案紀錄的 inode 儲存檔案中的資料 UNIX 檔案系統的磁碟區塊分配示意圖 Superblock 開機區塊 inode列表 資料 區塊 ……
架構(續) 開機區塊 Superblock inode 列表 資料區塊 真正用來儲存檔案資料的地方。 被作業系統保留,用來儲存系統的開機程式碼以及相關資訊。 Superblock 儲存這整個檔案系統的相關訊息。 inode 列表 儲存檔案系統中每個檔案與目錄的相關訊息。 資料區塊 真正用來儲存檔案資料的地方。
inode 主要用途 使用多階層式的索引 記錄檔案系統中的所有檔案以及目錄。 資料少則直接將資料指標指向某個儲存資料的區塊。 資料多則利用索引的方式間接找到所儲存資料的區塊,甚至是多層索引,最多三層。
inode的基本架構 模式 擁有者訊息 資料 大小 資料 時間戳記 資料 區塊計數 資料 資料區塊 資料 索引 間接區塊錄 資料 次索引 雙層索引 索引 資料 三層索引 次索引 資料 資料
Inode的基本架構(續) 模式 擁有者訊息 大小 時間戳記 表示這個 inode 中的資料的意義為何。 以位元為單位來記錄該檔案大小的數值。 時間戳記 記錄該 inode 有關的時間訊息,如建立時間以及最後一次被修改的時間等。
檔案系統控制區塊 每個行程都會有各自的開啟檔案表,開啟檔案表可以容納的檔案個數是固定的。 使用者空間 核心空間 磁碟空間 資料讀取 檔案結構表 inode列表 (核心內) ... 同步
Superblock UNIX 檔案系統中有唯一的一個 Superblock 儲存整個檔案系統的相關資訊。 檔案系統大小(以區塊為單位) 所有 inode 所使用的磁碟空間大小(以區塊為單位) 可用空間的區塊個數以及 inode 個數 可用空間列表 未使用的 inode 列表
第十三章 檔案系統實例 UNIX檔案系統 Linux檔案系統 Windows 檔案系統 摘要 虛擬檔案系統 一般檔案系統 x
Linux檔案系統 使用者可安裝各式各樣的檔案系統。 Linux 在各種作業系統平台之間的整合能力極佳。 屬於 UNIX 作業系統類的檔案系統多半有較完整的功能實作。 不屬於 UNIX 作業系統類的檔案系統可能會欠缺某些功能。
虛擬檔案系統(Virtual File System, VFS) 行程與檔案系統溝通的介面。 Linux 核心中的軟體層 負責處理所有使用者對檔案系統所下的指令 虛擬檔案系統的基本架構 使用者行程 虛擬檔案系統(Virtual File System, VFS) Ext2 Ext3 FAT32 proc 使用者模式 核心模式
虛擬檔案系統(續) 實體磁碟檔案系統 裝置檔案(device files) Ext2、Ext3 與 FAT-32 proc dev 不是一個佔有實體區塊的檔案系統,而是使用者要存取時才動態產生的。 虛擬檔案系統的目的是為了存取系統核心狀態的資訊 所有可用的裝置都會被儲存在一個樹狀目錄中
一般檔案系統 依照不同的作業系統與實作方式,大致上可分為下列幾種: BSD檔案系統 微軟平台檔案系統 Ext2 檔案系統
第十三章 檔案系統實例 UNIX檔案系統 Linux檔案系統 Windows 檔案系統 內部佈局 復原 安全 壓縮 摘要
Windows 檔案系統 FAT 檔案系統 NTFS 有內部斷裂的問題 最多只能定址 2 GB 的限制 解決 FAT 檔案系統的問題 且加上了許多有用的功能 資料的復原、檔案壓縮、容錯以及檔案系統的多重鏈結串列等。 提供了對 FAT 檔案系統的支援 可以利用轉換程式在兩種檔案系統間進行轉換。
內部佈局 基本單位是卷(volume) 以磁簇(cluster)作為磁碟配置的基本單位。 磁碟區域可分成兩個主要的部分 主檔案表(master file table, MFT) 其餘則為用來儲存目錄與檔案資料的空間 檔案資料存放區域 MFT記錄 MFT區域
內部佈局(續) NTFS 檔案系統的檔案名稱紀錄空間 NTFS 檔案系統 以 B+ 樹來實作。 方便表示檔案系統中目錄與檔案階層結構。 節省重新組織樹狀結構時所需要花費的時間與空間。 B+ 樹的最上層相當於是檔案系統的根目錄。 NTFS 檔案系統 最前面的 16 個檔案會被系統所保留 記錄關於整個檔案系統的相關資訊。
復原 磁碟寫入動作記錄在交易(transaction)中 記錄檔案服務(Log File Service, LFS) 處理交易記錄的機制 記錄區(logging area) 重作資訊(redo information) 還原資訊(undo information) 開始區域(start area) 記錄著記錄區的起始位置
安全 NTFS 檔案系統中的每個目錄與檔案都具有存取控制清單(Access Control List, ACL)如 權限上的設定 完全控制(full control) 修改(modify) 執行(execute) 權限上的設定 與一般 Linux 作業系統相同,將檔案與目錄以個人或是群組的方式來設定存取權限
壓縮 NTFS 檔案系統中提供了資料壓縮的功能 將檔案資料區分成以 16 個磁簇為大小的壓縮單位。 應用壓縮演算法來進行資料的壓縮,若所得到的結果小於原來 16 個磁簇的大小,便會將此壓縮結果寫至壓縮檔案中。 使用者需要讀取到這些壓縮起來的資料時,並不需要另外執行解壓縮的動作即可存取其中的資料。
壓縮(續) 優點 缺點 大小在 4 KB 以下的檔案並不會被進行壓縮 不需做任何額外的動作即可使用比原本的磁碟空間更大的檔案系統。 需花費額外的時間進行計算,會影響到原本系統執行的效率。 大小在 4 KB 以下的檔案並不會被進行壓縮
摘要 (1) 常用的檔案系統可概括地分為 3 大部分: UNIX 作業系統中所使用的檔案系統 Linux 系列的作業系統中所支援的檔案系統 Windows 系列中所支援的檔案系統 NTFS 是目前 Windows 所使用的檔案系統中穩定性最好的一種。
摘要 (2) UNIX 與 Linux 作業系統所支援的檔案系統在概念上大同小異,兩個主要結構是 Superblock inode 記錄與整個檔案系統有關的資訊紀錄 inode 記錄檔案系統中的所有檔案以及目錄
摘要 (3) 虛擬檔案系統(VFS)的軟體層 利用了裝置檔案來對應可用的週邊設備 行程與檔案系統溝通的介面。 利用了裝置檔案來對應可用的週邊設備 proc dev 使用者要從裝置讀取資料或是輸出資料至裝置時,就只要按照一般的檔案存取方式即可。
摘要 (4) NTFS 檔案系統 NTFS 檔案系統所採用的檔案名稱記錄空間 第一個部分是主檔案表(MFT) 第二個部分 架構檔案系統的目錄與檔案。 第二個部分 儲存檔案的資料。 將所有磁碟寫入的動作都記錄在交易中 發生錯誤時很快恢復其一致性。 NTFS 檔案系統所採用的檔案名稱記錄空間 以 B+ 樹(B+ Tree)資料結構為基礎。