操作系統(tǒng)LINUX文件系統(tǒng)_第1頁
操作系統(tǒng)LINUX文件系統(tǒng)_第2頁
操作系統(tǒng)LINUX文件系統(tǒng)_第3頁
操作系統(tǒng)LINUX文件系統(tǒng)_第4頁
操作系統(tǒng)LINUX文件系統(tǒng)_第5頁
已閱讀5頁,還剩37頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

第10章LINUX文件系統(tǒng) 10 1LINUX文件系統(tǒng)的特點(diǎn)與文件類別10 2LINUX的虛擬文件系統(tǒng)10 3文件系統(tǒng)的注冊和掛裝10 4進(jìn)程與文件系統(tǒng)的聯(lián)系10 5ext2文件系統(tǒng)10 6塊設(shè)備啟動10 7字符設(shè)備啟動本章小結(jié)習(xí)題 10 1LINUX文件系統(tǒng)的特點(diǎn)與文件類別10 1 1特點(diǎn)從用戶的角度看 LINUX文件系統(tǒng)具有如圖10 1所示的樹形層次結(jié)構(gòu) 在圖中 根目錄root之下有dev設(shè)備子目錄 bin實(shí)用程序子目錄 lib庫文件子目錄 tmp臨時文件子目錄 usr通用子目錄等 圖10 1LINUX文件系統(tǒng)的層次結(jié)構(gòu)例 常用用戶命令 操作系統(tǒng)核心程序 設(shè)備子目錄 庫文件子目錄 存放配置文件 超級用戶子目錄 存放系統(tǒng)管理程序 binbootdevetchomelibmediamntprocrootsbinsystmpusr 用戶文件主目錄 存放與設(shè)備有關(guān)的系統(tǒng)信息 bindocetcincludeliblocal Zhangliu 路徑名確定一個文件在文件系統(tǒng)中的位置 一個完整的路徑名由代表根目錄的斜杠開始 到所指定的文件為止 例如在圖10 1中 usr bin man 確定了文件man在文件系統(tǒng)中的位置 絕對路徑 路徑名也可從正在執(zhí)行進(jìn)程的當(dāng)前目錄開始指定 例如 若在圖10 1中的當(dāng)前目錄是zhang的話 路徑名a txt與 home zhang a txt具有相同的效果 相對路徑 LINUX文件系統(tǒng)特點(diǎn) 樹形結(jié)構(gòu) 文件是無結(jié)構(gòu)的字符流式文件 文件可以動態(tài)地增長或減少 文件數(shù)據(jù)可由文件擁有者設(shè)置相應(yīng)的訪問權(quán)限而受到保護(hù) 外部設(shè)備 例如終端用磁帶 磁盤設(shè)備 鍵盤等都被看作文件 在文件系統(tǒng)中 設(shè)備文件占據(jù)著文件系統(tǒng)目錄結(jié)構(gòu)中相應(yīng)的位置 用戶程序按與存取其他文件時所使用的系統(tǒng)調(diào)用和語法來讀 寫設(shè)備文件 用戶程序既沒有必要知道設(shè)備的內(nèi)部特性 也不必在更換或增加設(shè)備之后修改自己 10 1 2文件類型6種 普通文件 存儲用戶和系統(tǒng)的有關(guān)數(shù)據(jù)和程序的文件 它是無結(jié)構(gòu) 無記錄概念的字符流式文件 2 目錄文件是由文件系統(tǒng)中的各個目錄所形成的文件 在形式上同普通文件一樣 由系統(tǒng)將其解釋成目錄 在LINUX系統(tǒng)中 一個目錄文件由多個目錄項組成 而每個目錄項則由文件名及指示相應(yīng)的文件索引節(jié)點(diǎn) inode 的標(biāo)識符id組成 普通文件和目錄文件都是無結(jié)構(gòu) 無記錄概念的字符流式文件 3 設(shè)備文件與普通文件和目錄文件不同 它除了在目錄文件和文件索引節(jié)點(diǎn)表中占據(jù)相應(yīng)的位置外 并不占有實(shí)際的物理存儲塊 對設(shè)備文件的讀 寫操作實(shí)際上為對設(shè)備的操作 而對設(shè)備文件的保護(hù)也將變成對設(shè)備的保護(hù) 例如 cp dev tty1terminalread把在第一個終端上敲進(jìn)的字符 設(shè)備文件 dev tty1是用戶終端1 讀入 并把它們復(fù)制到文件terminalread上 4 有名管道 FIFO 5 軟鏈接6 UNIX域套接字 10 2LINUX虛擬文件系統(tǒng)10 2 1虛擬文件系統(tǒng)VFS框架LINUX內(nèi)核使用虛擬文件系統(tǒng)VFS VirtualFileSwitch 給用戶提供文件系統(tǒng)接口 使用多個不同的文件系統(tǒng) VFS提供一個抽象基類 由這個基類派生的子類支持具體的文件系統(tǒng) 支持的文件系統(tǒng)有 a 基于磁盤的文件系統(tǒng) ext2 ext3 reiserfs JFS XFS等 UNIXSYSTEMV的文件系統(tǒng) 微軟的MS DOS vfat及ntfs ISO9660光盤文件系統(tǒng)等 b 基于網(wǎng)絡(luò)的文件系統(tǒng) 如NFS SMB OCFS等 c 特殊的文件系統(tǒng) 如proc sysfs 它們并不管理真正的磁盤空間 而是通過它們訪問內(nèi)核數(shù)據(jù) 10 2 2LINUX虛擬文件系統(tǒng)的數(shù)據(jù)結(jié)構(gòu)組成 超級塊super block 存放已掛裝文件系統(tǒng)的有關(guān)信息索引節(jié)點(diǎn)inode 一個具體文件的信息文件file 存放打開文件與進(jìn)程之間進(jìn)行交互的有關(guān)信息目錄項dentry 保存目錄項與相應(yīng)文件進(jìn)行鏈接的信息 1 VFS的超級塊super block每個文件系統(tǒng)分配一個超級塊 用雙向循環(huán)鏈組成一個鏈表 主要成員 略P250超級塊操作 structsuper operations描述 地址存放在s op中 每個具體的文件系統(tǒng) 都要提供超級塊的具體實(shí)現(xiàn) 以實(shí)現(xiàn)文件的掛裝 卸載 讀寫inode等 2 索引節(jié)點(diǎn)inode存放文件系統(tǒng)處理所需要的所有信息 索引節(jié)點(diǎn)操作 inode operation描述 3 文件file描述的是進(jìn)程和一個打開文件交互的過程 當(dāng)一個文件被打開時創(chuàng)建file結(jié)構(gòu) 4 目錄項dentry當(dāng)目錄讀入內(nèi)存 VFS就把它轉(zhuǎn)換為基于dentry的一個目錄項對象 目錄項對象將每個目錄與其對應(yīng)的索引節(jié)點(diǎn)相聯(lián)系 10 4進(jìn)程與文件系統(tǒng)的聯(lián)系 從系統(tǒng)內(nèi)部的角度來說 需要有相應(yīng)的數(shù)據(jù)結(jié)構(gòu)來記錄和控制打開文件的用戶進(jìn)程以及記錄和控制那些共享同一文件的用戶進(jìn)程 為此LINUX系統(tǒng)設(shè)置了用戶打開文件表和系統(tǒng)打開文件表 10 4 1系統(tǒng)打開文件表 訪問文件之前 進(jìn)程必須打開文件 open 返回一個文件描述符 進(jìn)程用該描述符調(diào)用read和write 主要用來指明打開同一文件的不同進(jìn)程和不同進(jìn)程所使用的不同打開路徑 以及這些不同進(jìn)程和不同打開路徑所對應(yīng)的讀寫指針 文件file結(jié)構(gòu) 10 4 2用戶打開文件表 使用用戶打開文件表 一個進(jìn)程可同時打開多個文件 可打開的文件表項files struct中含有打開文件的描述符fd 共享該表的進(jìn)程數(shù)目count等 10 4 3進(jìn)程的當(dāng)前目錄和根目錄 當(dāng)前目錄根目錄 10 5ext2文件系統(tǒng) ext2文件系統(tǒng)是最經(jīng)典的文件系統(tǒng) 是一個可擴(kuò)展的功能較強(qiáng)的文件系統(tǒng) ext2文件系統(tǒng)中的文件信息都保存在數(shù)據(jù)塊中 對同一個ext2文件系統(tǒng)而言 所有數(shù)據(jù)塊的大小都是一樣的 例如4096字節(jié) 但是 不同的ext2文件系統(tǒng)中數(shù)據(jù)塊的大小可以不同 ext2文件系統(tǒng)將邏輯塊劃分成塊組 每個塊組重復(fù)保存著一些有關(guān)整個文件系統(tǒng)的關(guān)鍵信息及實(shí)際文件和目錄的數(shù)據(jù)塊 引導(dǎo)塊 塊組0 塊組1 塊組n 超級塊 組描述符 數(shù)據(jù)塊位圖 索引節(jié)點(diǎn)位圖 索引節(jié)點(diǎn)表 數(shù)據(jù)塊 系統(tǒng)引導(dǎo)塊總是介質(zhì)上的第一個數(shù)據(jù)塊 只有根文件系統(tǒng)才有引導(dǎo)程序放在這里 其余一般文件系統(tǒng)都不使用引導(dǎo)塊 超級塊中包含有文件系統(tǒng)本身的大小和形式的基本信息 系統(tǒng)管理員可以利用這些信息使用和維護(hù)文件系統(tǒng) 每個塊組都有一個超級塊 10 5 2ext2文件系統(tǒng)主要的磁盤數(shù)據(jù)結(jié)構(gòu) 1 磁盤超級塊ext2 super block超級塊中包含有文件系統(tǒng)本身的大小和形式的基本信息 系統(tǒng)管理員可以利用這些信息使用和維護(hù)文件系統(tǒng) 每個塊組都一個超級塊 一般情況下 當(dāng)安裝文件系統(tǒng)時 系統(tǒng)只讀取數(shù)據(jù)塊組0中的超級塊 將其放入內(nèi)存 直至該文件系統(tǒng)被卸載 超級塊中包含以下內(nèi)容 塊數(shù) 用于安裝時確認(rèn)是ext2文件系統(tǒng)的超級塊 修訂級別 這是文件系統(tǒng)的主版本號和次版本號 安裝計數(shù)和最大安裝數(shù) 系統(tǒng)用來決定文件系統(tǒng)是否應(yīng)該全面地進(jìn)行檢查 塊組號碼 包含此超級塊的數(shù)據(jù)塊組的號碼 數(shù)據(jù)塊大小 文件系統(tǒng)創(chuàng)建后數(shù)據(jù)塊的大小就固定了 一般為1024 2048或4096個字節(jié) 每組數(shù)據(jù)塊的個數(shù) 即塊組中數(shù)據(jù)塊的個數(shù) 文件系統(tǒng)創(chuàng)建后它就固定了 空閑塊 文件系統(tǒng)中空閑塊的個數(shù) 空閑索引節(jié)點(diǎn) 文件系統(tǒng)中空閑索引節(jié)點(diǎn)的數(shù)目 第一個索引節(jié)點(diǎn) 文件系統(tǒng)中第一個索引節(jié)點(diǎn)的號碼 在ext2根文件系統(tǒng)中 第一個索引節(jié)點(diǎn)是根目錄 的入口 2 塊組描述符 BlockGroupDescriptors 每個塊組有描述它的數(shù)據(jù)結(jié)構(gòu) 即塊組描述結(jié)構(gòu) 其中包含以下信息 1 數(shù)據(jù)塊位示圖 這一項表示數(shù)據(jù)塊位示圖所占的數(shù)據(jù)塊數(shù) 塊位示圖反映出數(shù)據(jù)塊組中數(shù)據(jù)塊的分配情況 在分配或釋放數(shù)據(jù)塊時要使用塊位示圖 2 索引節(jié)點(diǎn)位示圖 這一項表示索引節(jié)點(diǎn)位示圖所占的數(shù)據(jù)塊數(shù) 索引節(jié)點(diǎn)位示圖反映出數(shù)據(jù)塊組中索引節(jié)點(diǎn)分配的情況 在創(chuàng)建或刪除文件時要使用索引節(jié)點(diǎn)位示圖 3 索引節(jié)點(diǎn)表 數(shù)據(jù)塊組中索引節(jié)點(diǎn)表所占的數(shù)據(jù)塊數(shù) 系統(tǒng)中的每一個文件都對應(yīng)一個索引節(jié)點(diǎn) 每個索引節(jié)點(diǎn)都由一個數(shù)據(jù)結(jié)構(gòu)來描述 4 空閑塊數(shù) 空閑索引節(jié)點(diǎn)數(shù)和已用目錄數(shù) 3 塊位圖和索引節(jié)點(diǎn)位圖 兩個塊分別記錄本組內(nèi)各個數(shù)據(jù)塊的使用情況和索引節(jié)點(diǎn)表的使用情況 數(shù)據(jù)塊位示圖中一位代表一個數(shù)據(jù)塊 1表示使用 0表示空閑 索引節(jié)點(diǎn)位示圖中一位代表一個索引節(jié)點(diǎn) 1表示該塊忙 0表示空閑 4 磁盤索引節(jié)點(diǎn)ext2 inode 索引節(jié)點(diǎn)又被稱為I節(jié)點(diǎn) 每個文件都有惟一一個索引節(jié)點(diǎn) 每個數(shù)據(jù)塊組中的索引節(jié)點(diǎn)都保存在索引節(jié)點(diǎn)表中 可對文件進(jìn)行控制和管理 每個磁盤索引節(jié)點(diǎn)占128個字節(jié) 則一個長4096字節(jié)的塊可存放32個i節(jié)點(diǎn)項 磁盤索引節(jié)點(diǎn)包括文件長度 文件位置 所有者 存取權(quán)限 創(chuàng)建時間 上次訪問時間等主要內(nèi)容 索引節(jié)點(diǎn)有盤索引節(jié)點(diǎn) 如ext2 inode 和內(nèi)存索引節(jié)點(diǎn) 如inode 兩種形式 盤索引節(jié)點(diǎn)存放在磁盤的索引節(jié)點(diǎn)表中 內(nèi)存索引節(jié)點(diǎn)存放在系統(tǒng)專門開設(shè)的索引節(jié)點(diǎn)區(qū)中 內(nèi)存索引節(jié)點(diǎn)除了具有盤索引節(jié)點(diǎn)的主要信息外 還增添了反映該文件動態(tài)狀態(tài)的項目 例如 共享訪問計數(shù) i count 表示在某一時刻該文件被打開以后進(jìn)行訪問的次數(shù) 10 5 3ext2的內(nèi)存數(shù)據(jù)結(jié)構(gòu) 內(nèi)存有內(nèi)存索引節(jié)點(diǎn)和內(nèi)存超級塊內(nèi)核掛裝文件系統(tǒng)時 讀取磁盤超級塊部分內(nèi)容 填充到內(nèi)存超級塊中 直到該文件系統(tǒng)被卸載 10 5 4數(shù)據(jù)塊尋址 邏輯塊與物理塊之前的關(guān)系多重索引結(jié)構(gòu) 又稱多級索引結(jié)構(gòu) 在這種結(jié)構(gòu)中采用了間接索引方式 即由最初索引項中得到某一盤塊號 該塊中存放的信息是另一組盤塊號 而后者每一塊中又可存放下一組盤塊號 或者是文件本身信息 這樣間接幾級 通常為1 3級 最末尾的盤塊中存放的信息一定是文件內(nèi)容 0 2 1 4 3 5 6 8 7 14 13 12 11 9 10 文件信息 文件信息 二級數(shù)組 文件信息 文件信息 二級數(shù)組 二級數(shù)組 三級數(shù)組 三級數(shù)組 文件信息 文件信息 三級數(shù)組 四級數(shù)組 文件信息 一個塊4096字節(jié) 每個塊號4個字節(jié) 則一個塊存放4096 4 1024個 引導(dǎo)塊 塊組0 塊組1 塊組n 磁盤超級塊 磁盤索引節(jié)點(diǎn) 內(nèi)存超級塊

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論