270 likes | 384 Views
作業系統. 第十三章 檔案系統實例. 第十三章 檔案系統實例. UNIX 檔案系統 架構 inode Superblock Linux 檔案系統 Windows 檔案系統 摘要. UNIX 檔案系統. UNIX 是 Linux 作業系統的基礎架構。 兩者設計的基本概念上所支援的各種檔案系統大同小異。 UNIX 檔案系統 inode Superblock. 開機區塊. Superblock. inode 列表. 資料 區塊. 資料 區塊. 資料 區塊. ……. 資料 區塊. 資料 區塊. 架構.
E N D
作業系統 第十三章 檔案系統實例
第十三章 檔案系統實例 • UNIX檔案系統 • 架構 • inode • Superblock • Linux檔案系統 • Windows 檔案系統 • 摘要
UNIX檔案系統 • UNIX 是 Linux 作業系統的基礎架構。 • 兩者設計的基本概念上所支援的各種檔案系統大同小異。 • UNIX 檔案系統 • inode • Superblock
開機區塊 Superblock inode列表 資料 區塊 資料 區塊 資料 區塊 …… 資料 區塊 資料 區塊 架構 • 磁碟分割會切割成多個固定大小的區塊。 • 這些區塊依用途可分成三類: • 系統相關資訊 • 儲存目錄與檔案紀錄的 inode • 儲存檔案中的資料 • UNIX 檔案系統的磁碟區塊分配示意圖
架構(續) • 開機區塊 • 被作業系統保留,用來儲存系統的開機程式碼以及相關資訊。 • Superblock • 儲存這整個檔案系統的相關訊息。 • inode 列表 • 儲存檔案系統中每個檔案與目錄的相關訊息。 • 資料區塊 • 真正用來儲存檔案資料的地方。
inode • 主要用途 • 記錄檔案系統中的所有檔案以及目錄。 • 使用多階層式的索引 • 資料少則直接將資料指標指向某個儲存資料的區塊。 • 資料多則利用索引的方式間接找到所儲存資料的區塊,甚至是多層索引,最多三層。
索引 索引 次索引 次索引 inode的基本架構 模式 擁有者訊息 資料 大小 資料 時間戳記 資料 區塊計數 資料區塊 資料 資料 間接區塊錄 資料 雙層索引 資料 三層索引 資料 資料
Inode的基本架構(續) • 模式 • 表示這個 inode 中的資料的意義為何。 • 擁有者訊息 • 記錄該 inode 的擁有者及其相關資訊,主要是供檔案系統用來對該 inode 的各項存取作控管。 • 大小 • 以位元為單位來記錄該檔案大小的數值。 • 時間戳記 • 記錄該 inode 有關的時間訊息,如建立時間以及最後一次被修改的時間等。
... 資料讀取 同步 開啟檔案表 檔案結構表 inode列表 (核心內) 使用者空間 核心空間 磁碟空間 檔案系統控制區塊 • 每個行程都會有各自的開啟檔案表,開啟檔案表可以容納的檔案個數是固定的。
Superblock • UNIX 檔案系統中有唯一的一個 Superblock • 儲存整個檔案系統的相關資訊。 • Superblock 所包含的資訊 • 檔案系統大小(以區塊為單位) • 所有 inode 所使用的磁碟空間大小(以區塊為單位) • 可用空間的區塊個數以及 inode 個數 • 可用空間列表 • 未使用的 inode 列表
第十三章 檔案系統實例 • UNIX檔案系統 • Linux檔案系統 • 虛擬檔案系統 • 一般檔案系統 x • 日誌式檔案系統 x • 其他檔案系統 x • Windows 檔案系統 • 摘要
Linux檔案系統 • 使用者可安裝各式各樣的檔案系統。 • Linux 在各種作業系統平台之間的整合能力極佳。 • 屬於 UNIX 作業系統類的檔案系統多半有較完整的功能實作。 • 不屬於 UNIX 作業系統類的檔案系統可能會欠缺某些功能。
使用者行程 使用者模式 核心模式 虛擬檔案系統(Virtual File System, VFS) proc Ext2 Ext3 FAT32 虛擬檔案系統 • 行程與檔案系統溝通的介面。 • Linux 核心中的軟體層 • 負責處理所有使用者對檔案系統所下的指令 • 虛擬檔案系統的基本架構
虛擬檔案系統(續) • 實體磁碟檔案系統 • Ext2、Ext3 與 FAT-32 • 裝置檔案(device files) • proc • dev • proc • 不是一個佔有實體區塊的檔案系統,而是使用者要存取時才動態產生的。 • 虛擬檔案系統的目的是為了存取系統核心狀態的資訊 • dev • 所有可用的裝置都會被儲存在一個樹狀目錄中
一般檔案系統 • 依照不同的作業系統與實作方式,大致上可分為下列幾種: • BSD檔案系統 • 微軟平台檔案系統 • Ext2 檔案系統
第十三章 檔案系統實例 • UNIX檔案系統 • Linux檔案系統 • Windows 檔案系統 • 內部佈局 • 復原 • 安全 • 壓縮 • 摘要
Windows 檔案系統 • FAT 檔案系統 • 有內部斷裂的問題 • 最多只能定址 2 GB 的限制 • NTFS • 解決 FAT 檔案系統的問題 • 且加上了許多有用的功能 • 資料的復原、檔案壓縮、容錯以及檔案系統的多重鏈結串列等。 • 提供了對 FAT 檔案系統的支援 • 可以利用轉換程式在兩種檔案系統間進行轉換。
MFT記錄 檔案資料存放區域 MFT區域 內部佈局 • 基本單位是卷(volume) • 以磁簇(cluster)作為磁碟配置的基本單位。 • 磁碟區域可分成兩個主要的部分 • 主檔案表(master file table, MFT) • 其餘則為用來儲存目錄與檔案資料的空間
內部佈局(續) • 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 以下的檔案並不會被進行壓縮
摘要 (1) • 常用的檔案系統可概括地分為 3 大部分: • UNIX 作業系統中所使用的檔案系統 • Linux 系列的作業系統中所支援的檔案系統 • Windows 系列中所支援的檔案系統 • NTFS 是目前 Windows 所使用的檔案系統中穩定性最好的一種。
摘要 (2) • UNIX 與 Linux 作業系統所支援的檔案系統在概念上大同小異,兩個主要結構是 • Superblock • 記錄與整個檔案系統有關的資訊紀錄 • inode • 記錄檔案系統中的所有檔案以及目錄
摘要 (3) • 虛擬檔案系統(VFS)的軟體層 • 行程與檔案系統溝通的介面。 • 利用了裝置檔案來對應可用的週邊設備 • proc • dev • 使用者要從裝置讀取資料或是輸出資料至裝置時,就只要按照一般的檔案存取方式即可。
摘要 (4) • NTFS 檔案系統 • 第一個部分是主檔案表(MFT) • 架構檔案系統的目錄與檔案。 • 第二個部分 • 儲存檔案的資料。 • 將所有磁碟寫入的動作都記錄在交易中 • 發生錯誤時很快恢復其一致性。 • NTFS 檔案系統所採用的檔案名稱記錄空間 • 以 B+ 樹(B+ Tree)資料結構為基礎。