乙個linux檔案系統通常包括三部分:superblock、inode、block(block的概念參照 磁碟硬碟組成
)。
inode:記錄檔案的屬性,乙個檔案占用乙個inode,同時記錄此檔案的資料所在的 block 號碼;
block:實際記錄檔案的內容,若檔案太大時,會占用多個 block 。
如下圖所示,檔案系統先格式化出 inode 與 block 的區塊,假設某乙個檔案的屬性與許可權資料是放置到 inode 4 號(下圖較小方格內),而這個 inode 記錄了檔案資料的實際放置點為 2, 7, 13, 15 這四個 block 號碼,此時我們的作業系統就能夠據此來排列磁碟的閱讀順序,可以一口氣將四個 block 內容讀出來! 那麼資料的讀取就如同下圖中的箭頭所指定的模樣了。
inode/block 資料訪問示意圖
這種資料訪問的方法我們稱為索引式檔案系統(indexed allocation)。那有沒有其他的慣用檔案系統可以比較一下啊? 有的,那就是我們慣用的閃盤(快閃儲存器),閃盤使用的檔案系統一般為 fat 格式。fat 這種格式的檔案系統並沒有 inode 存在,所以 fat 沒有辦法將這個檔案的所有 block 在一開始就讀取出來。每個 block 號碼都記錄在前乙個 block 當中, 他的讀取方式有點像底下這樣:
fat檔案系統資料訪問示意圖
上圖中我們假設檔案的資料依序寫入1->7->4->15號這四個 block 號碼中, 但這個檔案系統沒有辦法一口氣就知道四個 block 的號碼,他得要乙個乙個的將 block 讀出後,才會知道下乙個 block 在何處。 如果同乙個檔案資料寫入的 block 分散的太過厲害時,則我們的磁碟讀取頭將無法在磁碟轉一圈就讀到所有的資料, 因此磁碟就會多轉好幾圈才能完整的讀取到這個檔案的內容!
常常會聽到所謂的『碎片整理』吧? 需要碎片整理的原因就是檔案寫入的 block 太過於離散了,此時檔案讀取的效能將會變的很差所致。 這個時候可以透過碎片整理將同乙個檔案所屬的 blocks 彙整在一起,這樣資料的讀取會比較容易啊! 想當然爾,fat 的檔案系統需要經常的碎片整理一下,那麼 ext2 是否需要磁碟重整呢?
節選自 鳥哥的linux私房菜簡體中文站
linux 檔案系統 Linux 檔案系統結構介紹
ubuntu 像所有類unix系統一樣 在分層樹中組織檔案,其中的關係就像父母和孩子一樣。目錄可以包含其他目錄以及常規檔案,它們是樹的 葉子 樹的任何元素都可以通過路徑名引用 絕對路徑以字元 標識根目錄,其中包含所有其他目錄和檔案 開頭,然後列出必須遍歷以到達該元素的每個子目錄,每個子目錄用 符號分...
Linux檔案系統
linux目錄結構 根目錄 bin 可執行檔案目錄 boot 核心引導檔案 vmlinuz,initrd.img等 dev 裝置檔案儲存目錄,應用程式對這些檔案讀寫和控制可訪問實際裝置 etc 系統配置和一些伺服器配置檔案的位置,如帳號及密碼配置檔案。home 普通使用者目錄 lib 庫檔案目錄 l...
Linux檔案系統
之前對磁碟分割槽已經有了詳細的描述,這篇主要介紹檔案系統 linux的檔案系統是出了名的 下面就 大概介紹下 可以把檔案系統大概分成 superblock inodeblock datablock 三部分 superblock superblock記錄檔案系統的基本資訊比如每塊資料塊的大小,空閒磁碟...