<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      Linux下對inode和塊的理解

      基本概念

      首先講下inode和塊的基本概念。在Linux系統中,文件由元數據數據塊組成。數據塊就是多個連續性的扇區(sector),扇區是文件存儲的最小單位(每個512字節)。塊(block)的大小,最常見的是4KB,也就是連續8個sector組成,存儲文件數據和目錄數據。而元數據用來記錄文件的創建者、創建日期、大小等,這種存儲文件元數據信息的區域叫做inode,即索引節點。

      由于inode也是用來存儲文件相關屬性信息的,所以也會消耗硬盤空間。具體包含的信息有inode號,文件的字節數、User ID、Group ID、讀、寫、執行權限、時間戳(共有三個:ctime指inode上一次變動的時間,mtime指文件內容上一次變動的時間,atime指文件上一次打開的時間)、鏈接數(軟硬鏈接)、數據block的位置,注意沒有文件名。

      在硬盤格式化的時候,操作系統就會將硬盤分為兩個區,即數據區和inode區。每個inode節點的大小一般為128B或者256B,inode的總數在格式化文件系統的時候就已經確定。

      另外還有幾個概念了解一下:

      inode Bitmap:即inode位圖,用二進制的方式記錄了inode的使用情況, 比如inode是否空閑等。

      Block Bitmap:即塊位圖,同Inode Bitmap,用二進制方式記錄了塊的使用情況。當查找或創建文件時,會掃描此位圖來尋找空閑的inode號對應的塊。

      super block:超級塊包含了該硬盤或分區上的文件系統的整體信息,如文件系統的大小等。

      dentry:在內核中起到了連接不同的文件對象inode的作用,進而起到了維護文件系統目錄樹的作用。dentry是一個純粹的內存結構,由文件系統在提供文件訪問的過程中在內存中直接建立。dentry中包含了文件名,文件的inode號等信息。

      下圖為文件系統inode區block區圖:

       

      文件的查找、創建、刪除原理

      接下來對文件的查找、創建、刪除原理三個方面來對inode和塊的理解。

      文件的查找:比如要查找/var/log/message

      文件的創建:比如要創建/backup/test.txt(前提backup目錄存在)

      文件的刪除:刪除/backup/test.txt

       

      查找

          

       

      1. 首先根目錄(目錄也是個文件,不是容器!也可以理解為路徑的映射表)會自引用。找到inode表中對應的條目。(暫且把inode表中inode號和其對應的塊信息成為條目)
      2. inode表中對應的信息指向根目錄對應的塊,其中有var目錄對應的信息和inode號。
      3. 系統根據var目錄inode號回頭找到inode表中var目錄其對應的條目。
      4. 根據var目錄對應的塊信息找到對應的塊,其中有log目錄對應的信息和inode號。
      5. 系統又根據log目錄inode號在inode表中找到其對應的條目。
      6. 根據log目錄對應的塊信息找到對應的塊,其中有messages文件。
      7. 根據messages文件的inode號在inode表中找到其對應的條目。
      8. 最后系統根據messages對應的條目信息告訴我們messages文件對應了多少的塊,最后給我們呈現的就是所看到的數據。

       

      創建

       

      1. 首先掃描inode位圖,找空閑的inode號,找到之后占用。
      2. 根目錄自引用找到inode表中對應的條目,并根據條目找到對應的塊。
      3. 依據根目錄對應的塊中backup目錄對應的inode號,回頭找到inode表中條目。
      4. inode表中條目又找到對應的塊,在這個塊的dentry中新建了一個文件test.txt。
      5. 然后在最開始掃描占用的inode號給到此test.txt文件。

         

      當要存數據給test.txt文件時,會進行如下:

      系統掃描塊位圖(加速查找磁盤空閑塊,記錄是否空閑等),找到空閑塊,分配大于數據大小的塊,最后再回收(避免磁盤碎片)。比如要創建10k大小的test.txt文件,一個塊4k,只需要3個塊,系統分配4個或者多于,最后再去把這多余的塊分配到空閑塊中等待使用。

       

       

      刪除

      當要刪除一個文件時,其實就是把其使用的block位圖標記為空閑,inode位圖的相關位置成空,相當于不被占用,系統就認為此文件刪除。但是數據還在,在下次創建文件時,就可覆蓋原已清空block位圖和inode位圖的文件的數據。

      文件粉粹也只是使用一些隨機數據填充進原來文件的數據塊中,導致文件難以恢復。

       

      以上

      posted @ 2018-07-16 00:41  風住  閱讀(11258)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 福利一区二区1000| 国产精品一区在线蜜臀 | 亚洲欧洲日产国产 最新| 熟女乱一区二区三区四区| 国产成人免费观看在线视频| 中文字幕av无码免费一区| 亚洲另类激情专区小说图片| 激情五月开心综合亚洲| 新婚少妇无套内谢国语播放| 丝袜老师办公室里做好紧好爽| 国产真实younv在线| 日韩一区二区三区亚洲一| 久久亚洲av成人无码软件| 午夜视频免费试看| 亚洲成av人片色午夜乱码| 国产精品熟女孕妇一区二区| 午夜av高清在线观看| 老色批国产在线观看精品 | 7777精品久久久大香线蕉| 人妻精品动漫H无码中字| 亚洲成av人片无码迅雷下载| 做暖暖视频在线看片免费| 绥化市| 中国国产免费毛卡片| 素人视频亚洲十一十二区| 亚洲色大成网站WWW永久麻豆| 亚洲av永久无码精品漫画| 内射合集对白在线| 四虎永久精品在线视频| 老司机午夜免费精品视频| 免费人妻av无码专区| 亚洲国产午夜福利精品| 宁乡县| 性xxxx搡xxxxx搡欧美| 久久这里只有精品好国产| 成人免费ā片在线观看| 日韩av综合免费在线| 国产精品天天看天天狠| 2019亚洲午夜无码天堂| 伊人久久久大香线蕉综合直播| 黄色亚洲一区二区在线观看|