![第五章文件系統(tǒng)_第1頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-1/4/55cd2f06-0607-44e4-868f-00efe8663b90/55cd2f06-0607-44e4-868f-00efe8663b901.gif)
![第五章文件系統(tǒng)_第2頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-1/4/55cd2f06-0607-44e4-868f-00efe8663b90/55cd2f06-0607-44e4-868f-00efe8663b902.gif)
![第五章文件系統(tǒng)_第3頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-1/4/55cd2f06-0607-44e4-868f-00efe8663b90/55cd2f06-0607-44e4-868f-00efe8663b903.gif)
![第五章文件系統(tǒng)_第4頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-1/4/55cd2f06-0607-44e4-868f-00efe8663b90/55cd2f06-0607-44e4-868f-00efe8663b904.gif)
![第五章文件系統(tǒng)_第5頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-1/4/55cd2f06-0607-44e4-868f-00efe8663b90/55cd2f06-0607-44e4-868f-00efe8663b905.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第第5章章 Linux內(nèi)核內(nèi)核簡(jiǎn)介簡(jiǎn)介文件系統(tǒng)為什么要進(jìn)行分區(qū)格式化?因?yàn)楦鞣N操作系統(tǒng)都必須按照一定的方式來(lái)管理磁盤,而只有格式化才能使磁盤的結(jié)構(gòu)能被操作系統(tǒng)認(rèn)識(shí)。 因?yàn)槊糠N操作系統(tǒng)所配置的文件屬性/權(quán)限并不相同, 為了存放這些文件所需的數(shù)據(jù),因此就需要分區(qū)進(jìn)行格式化,以成為操作系統(tǒng)能夠利用的文件系統(tǒng)格式(filesystem)。文件系統(tǒng)是如何運(yùn)行的呢?這與操作系統(tǒng)的文件數(shù)據(jù)有關(guān)。較新的操作系統(tǒng)的文件數(shù)據(jù)除了文件實(shí)際內(nèi)容外, 通常含有非常多的屬性,例如 Linux 操作系統(tǒng)的文件權(quán)限(rwx)與文件屬性(擁有者、群組、時(shí)間參數(shù)等)。文件系統(tǒng)通常會(huì)將這兩部份的數(shù)據(jù)分別存放在不同的區(qū)塊,權(quán)限與屬性
2、放置到 inode 中,至于實(shí)際數(shù)據(jù)則放置到 data block 區(qū)塊中。 另外,還有一個(gè)超級(jí)區(qū)塊 (superblock) 會(huì)記錄整個(gè)文件系統(tǒng)的整體信息,包括 inode 與 block 的總量、使用量、剩余量等。每個(gè) inode 與 block 都有編號(hào),至于這三個(gè)數(shù)據(jù)的意義可以簡(jiǎn)略說明如下:superblock:記錄此 filesystem 的整體信息,包括inode/block的總量、使用量、剩余量, 以及文件系統(tǒng)的格式與相關(guān)信息等;inode:記錄文件的屬性,一個(gè)文件占用一個(gè)inode,同時(shí)記錄此文件的數(shù)據(jù)所在的 block 號(hào)碼;block:實(shí)際記錄文件的內(nèi)容,若文件太大時(shí),會(huì)占
3、用多個(gè) block 。我們將 inode 與 block 區(qū)塊用圖解來(lái)說明一下,文件系統(tǒng)先格式化出 inode 與 block 的區(qū)塊,假設(shè)某一個(gè)文件的屬性與權(quán)限數(shù)據(jù)是放置到 inode 4 號(hào),而這個(gè) inode 記錄了文件數(shù)據(jù)的實(shí)際放置點(diǎn)為 2, 7, 13, 15 這四個(gè) block 號(hào)碼,操作系統(tǒng)就能夠據(jù)此來(lái)排列磁盤的閱讀順序,可以將四個(gè) block 內(nèi)容讀出來(lái)!這種數(shù)據(jù)存取的方法我們稱為索引式文件系統(tǒng)(indexed allocation)。我們以閃存常用的FAT 格式為例做對(duì)比。FAT 這種格式每個(gè) block 號(hào)碼都記錄在前一個(gè) block 當(dāng)中, 他的讀取方式如下圖所示:Lin
4、ux 的的 EXT2 文件系統(tǒng)文件系統(tǒng)inode 的內(nèi)容在記錄文件的權(quán)限與相關(guān)屬性,至于 block 區(qū)塊則是在記錄文件的實(shí)際內(nèi)容。Ext2 文件系統(tǒng)在格式化的時(shí)候基本上是區(qū)分為多個(gè)區(qū)塊群組 (block group) 的,每個(gè)區(qū)塊群組都有獨(dú)立的 inode/block/superblock 系統(tǒng)。data block (數(shù)據(jù)區(qū)塊數(shù)據(jù)區(qū)塊)data block 是用來(lái)放置文件內(nèi)容數(shù)據(jù)地方,在 Ext2 文件系統(tǒng)中所支持的 block 大小有 1K, 2K 及 4K 三種而已。在格式化時(shí) block 的大小就固定了,且每個(gè) block 都有編號(hào),以方便 inode 的記錄。Block 大小1KB
5、2KB4KB最大單一文件限制16GB256GB2TB最大文件系統(tǒng)總?cè)萘?TB8TB16TBExt2 文件系統(tǒng)的 block 基本限制如下:原則上,block 的大小與數(shù)量在格式化完就不能夠再改變了(除非重新格式化);每個(gè) block 內(nèi)最多只能夠放置一個(gè)文件的數(shù)據(jù);如果文件大于 block 的大小,則一個(gè)文件會(huì)占用多個(gè) block 數(shù)量;若文件小于 block ,則該 block 的剩余容量就不能夠再被使用了(磁盤空間會(huì)浪費(fèi))。例題: 假設(shè)你的Ext2文件系統(tǒng)使用 4K block ,而該文件系統(tǒng)中有 10000 個(gè)小文件,每個(gè)文件大小均為 50bytes, 請(qǐng)問此時(shí)你的磁盤浪費(fèi)多少容量? 答
6、:每個(gè) block 會(huì)浪費(fèi) 4096 - 50 = 4046 (byte), 所有文件容量為:50 (bytes) x 10000 = 488.3Kbytes,浪費(fèi)的容量為: 4046 (bytes) x 10000 = 38.6MBytes 。inodeinode 的內(nèi)容是記錄文件的屬性以及該文件實(shí)際數(shù)據(jù)是放置在哪幾號(hào) block 內(nèi)! inode 記錄的文件數(shù)據(jù)至少以下這些:該文件的存取模式(read/write/excute);該文件的擁有者與群組(owner/group);該文件的容量;該文件創(chuàng)建或狀態(tài)改變的時(shí)間(ctime);最近一次的讀取時(shí)間(atime);最近修改的時(shí)間(mtim
7、e);定義文件特性的旗標(biāo)(flag),如 SetUID.;該文件真正內(nèi)容的指向 (pointer);inode 的數(shù)量與大小也是在格式化時(shí)就已經(jīng)固定了,除此之外 inode 還有些什么特點(diǎn)呢?每個(gè) inode 大小均固定為 128 bytes;每個(gè)文件都僅會(huì)占用一個(gè) inode ;文件系統(tǒng)能夠創(chuàng)建的文件數(shù)量與 inode 的數(shù)量有關(guān);系統(tǒng)讀取文件時(shí)需要先找到 inode,并分析 inode 所記錄的權(quán)限與用戶是否符合,若符合才能夠開始實(shí)際讀取 block 的內(nèi)容。多重索引結(jié)構(gòu)多重索引結(jié)構(gòu)Superblock (超級(jí)區(qū)塊)Superblock 是記錄整個(gè) filesystem 相關(guān)信息的地方,
8、沒有 Superblock ,就沒有這個(gè) filesystem 了。他記錄的信息主要有:block 與 inode 的總量;未使用與已使用的 inode / block 數(shù)量;block 與 inode 的大小 (block 為 1, 2, 4K,inode 為 128 bytes);filesystem 的掛載時(shí)間、最近一次寫入數(shù)據(jù)的時(shí)間、最近一次檢驗(yàn)磁盤 (fsck) 的時(shí)間等文件系統(tǒng)的相關(guān)信息;一個(gè) valid bit 數(shù)值,若此文件系統(tǒng)已被掛載,則 valid bit 為 0 ,若未被掛載,則 valid bit 為 1 。Filesystem Description (塊組描述符)塊
9、組描述符)這個(gè)區(qū)段可以描述每個(gè) block group 的開始與結(jié)束的 block 號(hào)碼,以及說明每個(gè)區(qū)段 (superblock, bitmap, inodemap, data block) 分別介于哪一個(gè) block 號(hào)碼之間。block bitmap (區(qū)塊對(duì)照表區(qū)塊對(duì)照表)從 block bitmap 當(dāng)中可以知道哪些 block 是空的,因此我們的系統(tǒng)就能夠很快速的找到可使用的空間來(lái)處置文件。刪除某些文件時(shí),那么那些文件原本占用的 block 號(hào)碼就得要釋放出來(lái), 此時(shí)在 block bitmap 當(dāng)中相對(duì)應(yīng)到該 block 號(hào)碼的標(biāo)志就得要修改成為未使用中!這就是 bitmap 的
10、功能。inode bitmap (inode 對(duì)照表對(duì)照表)inode bitmap 則是記錄使用與未使用的 inode 號(hào)碼df指令格式:df 選項(xiàng) 文件功能:顯示指定磁盤文件的可用空間。如果沒有文件名被指定,則所有當(dāng)前被掛載的文件系統(tǒng)的可用空間將被顯示。參數(shù):-a 全部文件系統(tǒng)列表-h 方便閱讀方式顯示-i 顯示inode信息-k 區(qū)塊為1024字節(jié)-l 只顯示本地文件系統(tǒng)-T 文件系統(tǒng)類型范例:找出我的根目錄磁盤文件名,并觀察文件系統(tǒng)的相關(guān)信息范例:找出我的根目錄磁盤文件名,并觀察文件系統(tǒng)的相關(guān)信息rootwww # df =這個(gè)命令可以叫出目前掛載的裝置這個(gè)命令可以叫出目前掛載的裝置F
11、ilesystem 1K-blocks Used Available Use% Mounted on/dev/hdc2 9920624 3822848 5585708 41% / /dev/hdc3 4956316 141376 4559108 4% /home/dev/hdc1 101086 11126 84741 12% /boottmpfs 371332 0 371332 0% /dev/shm格式:dumpe2fs -bh 裝置文件名選項(xiàng)與參數(shù):-b :列出保留為壞軌的部分(一般用不到吧???)-h :僅列出 superblock 的數(shù)據(jù),不會(huì)列出其他的區(qū)段內(nèi)容!rootwww # du
12、mpe2fs /dev/hdc2dumpe2fs 1.39 (29-May-2006)Filesystem volume name: /1 =這個(gè)是文件系統(tǒng)的名稱(Label)Filesystem features: has_journal ext_attr resize_inode dir_index filetype needs_recovery sparse_super large_fileDefault mount options: user_xattr acl =默認(rèn)掛載的參數(shù)Filesystem state: clean =這個(gè)文件系統(tǒng)是沒問題的(clean)Errors beha
13、vior: ContinueFilesystem OS type: LinuxInode count: 2560864 =inode的總數(shù)Block count: 2560359 =block的總數(shù)Free blocks: 1524760 =還有多少個(gè) block 可用Free inodes: 2411225 =還有多少個(gè) inode 可用First block: 0Block size: 4096 =每個(gè) block 的大小Filesystem created: Fri Sep 5 01:49:20 2008Last mount time: Mon Sep 22 12:09:30 2008L
14、ast write time: Mon Sep 22 12:09:30 2008Last checked: Fri Sep 5 01:49:20 2008First inode: 11Inode size: 128 =每個(gè) inode 的大小Journal inode: 8 Journal backup: inode blocksJournal size: 128MGroup 0: (Blocks 0-32767) =第一個(gè) data group 內(nèi)容, 包含 block 的啟始/結(jié)束號(hào)碼 Primary superblock at 0, Group descriptors at 1-1 =超
15、級(jí)區(qū)塊在 0 號(hào) block Reserved GDT blocks at 2-626 Block bitmap at 627 (+627), Inode bitmap at 628 (+628) Inode table at 629-1641 (+629) =inode table 所在的 block0 free blocks, 32405 free inodes, 2 directories =所有 block 都用完了! Free blocks: Free inodes: 12-32416 =剩余未使用的 inode 號(hào)碼Group 1: (Blocks 32768-65535)ext2
16、和目錄和目錄樹樹每個(gè)文件(不管是一般文件還是目錄文件)都會(huì)占用一個(gè) inode , 且可依據(jù)文件內(nèi)容的大小來(lái)分配多個(gè) block 給該文件使用。而我們知道目錄的內(nèi)容是記錄文件名, 一般文件才是實(shí)際記錄數(shù)據(jù)內(nèi)容的地方。那么目錄與文件在 Ext2 文件系統(tǒng)當(dāng)中是如何記錄數(shù)據(jù)的呢?當(dāng)我們?cè)?Linux 下的 ext2 文件系統(tǒng)創(chuàng)建一個(gè)目錄時(shí),ext2 會(huì)分配一個(gè) inode 與至少一塊 block 給該目錄。其中,inode 記錄該目錄的相關(guān)權(quán)限與屬性,并可記錄分配到的那塊 block 號(hào)碼; 而 block 則是記錄在這個(gè)目錄下的文件名與該文件名占用的 inode 號(hào)碼數(shù)據(jù)。也就是說目錄所占用的
17、block 內(nèi)容在記錄如下的信息:當(dāng)創(chuàng)建一個(gè)目錄時(shí),文件系統(tǒng)會(huì)為該目錄分配一個(gè)inode和至少一個(gè)block。該inode記錄該目錄的屬性,并指向那塊block。該block記錄該目錄下相關(guān)聯(lián)的文件或目錄的關(guān)聯(lián)性和名字。 當(dāng)創(chuàng)建一個(gè)文件時(shí),文件系統(tǒng)會(huì)為該文件分配至少一個(gè)inode和與該文件大小相對(duì)應(yīng)的數(shù)量的block。該inode記錄該文件的屬性,并指向block。 如果一個(gè)目錄中的文件數(shù)太多,以至于1個(gè)block容納不下這么多文件時(shí),Linux的文件系統(tǒng)會(huì)為該目錄分配更多的block。要讀取 /etc/passwd 這個(gè)文件時(shí),系統(tǒng)是如何讀取的呢?Ext2 是如何新建文件的呢? 先確定用戶對(duì)
18、于欲新增文件的目錄是否具有 w 與 x 的權(quán)限,若有的話才能新增;根據(jù) inode bitmap 找到?jīng)]有使用的 inode 號(hào)碼,并將新文件的權(quán)限/屬性寫入;根據(jù) block bitmap 找到?jīng)]有使用中的 block 號(hào)碼,并將實(shí)際的數(shù)據(jù)寫入 block 中,且升級(jí) inode 的 block 指向數(shù)據(jù);將剛剛寫入的 inode 與 block 數(shù)據(jù)同步升級(jí) inode bitmap 與 block bitmap,并升級(jí) superblock 的內(nèi)容。一般來(lái)說,我們將 inode 與 data block 稱為數(shù)據(jù)存放區(qū)域,至于其他例如 superblock、 block bitmap 與
19、 inode bitmap 等區(qū)段就被稱為 metadata (中介數(shù)據(jù)中介數(shù)據(jù)) ,因?yàn)?superblock, inode bitmap 及 block bitmap 的數(shù)據(jù)是經(jīng)常變動(dòng)的,每次新增、移除、編輯時(shí)都可能會(huì)影響到這三個(gè)部分的數(shù)據(jù),因此稱為中介數(shù)據(jù)。 日志式文件系統(tǒng)日志式文件系統(tǒng) (Journaling filesystem)避免文件系統(tǒng)不一致的情況發(fā)生:在 filesystem 當(dāng)中規(guī)劃出一個(gè)區(qū)塊,該區(qū)塊專門記錄寫入或修訂文件時(shí)的步驟預(yù)備:當(dāng)系統(tǒng)要寫入一個(gè)文件時(shí),會(huì)先在日志記錄區(qū)塊中紀(jì)錄某個(gè)文件準(zhǔn)備要寫入的信息;實(shí)際寫入:開始寫入文件的權(quán)限與數(shù)據(jù);開始升級(jí) metadata 的數(shù)據(jù);結(jié)束:完成數(shù)據(jù)與 metadata 的升級(jí)后,在日志記錄區(qū)塊當(dāng)中完成該文件的紀(jì)錄。
溫馨提示
- 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 中外貿(mào)易采購(gòu)合同(CFR條款)
- 交通監(jiān)控設(shè)備保養(yǎng)合同
- 場(chǎng)物業(yè)委托管理合同
- 一站式租車帶駕合同
- 產(chǎn)學(xué)研技術(shù)合作合同模板
- 交通賠償合同參考文本
- 個(gè)人代理人保險(xiǎn)代理服務(wù)合同書
- 專業(yè)培訓(xùn)服務(wù)合同示例
- 個(gè)人保險(xiǎn)代理合同范本
- 二手設(shè)備轉(zhuǎn)讓合同范本
- 借名買車的協(xié)議書范文范本
- 《2024 ESC血壓升高和高血壓管理指南》解讀
- 歷史公開課《第1課中華人民共和國(guó)成立》教案教學(xué)設(shè)計(jì)-第1課中華人民共和國(guó)成立-初二下冊(cè)歷史
- 北京中考英語(yǔ)詞匯表(1600詞匯)
- 20世紀(jì)西方音樂智慧樹知到期末考試答案章節(jié)答案2024年北京大學(xué)
- 塑料 聚氨酯生產(chǎn)用聚醚多元醇 堿性物質(zhì)含量的測(cè)定
- 運(yùn)動(dòng)技能學(xué)習(xí)與控制課件第十二章運(yùn)動(dòng)技能學(xué)習(xí)的反饋
- 食材配送售后服務(wù)方案
- 2024年浙江省溫州市中考一模語(yǔ)文試題
- 《陸上風(fēng)電場(chǎng)工程設(shè)計(jì)概算編制規(guī)定及費(fèi)用標(biāo)準(zhǔn)》(NB-T 31011-2019)
- 精神科醫(yī)生培訓(xùn)課件
評(píng)論
0/150
提交評(píng)論