block(data block,directory block)、inode、塊位圖、inode位圖和super block概念詳解

一.基本概念:

     1.block:文件系統中存儲數據的最小單元,ext3文件系統中,創建時默認4k,分為存儲文件數據的data block和存儲目錄數據的directory block

     2.inode:又稱“索引節點”,每一個inode對應一個文件或目錄,記錄了文件的大小、所占用的block以及目錄的directory block信息。

    3.Inode Bitmap:翻譯成中文就是“inode位圖”,用二進制的方式記錄了inode的使用情況。

    4.Block Bitmap:翻譯成中文就是“塊位圖”,同Inode Bitmap,用二進制方式記錄了塊的使用情況。

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

二.工作原理

    這里使用幾個常用的操作來解釋這幾個文件系統組件的工作機制。

    1.    讀取文件

            以讀取/tmp/test文件為例,流程如下圖:

                                繪圖1.jpg        繪圖1.jpg

             共分為以下幾步:

                  (1)啟動系統時,自動加載“/”目錄的inode。

                  (2)根據該inode,找到“/”目錄的directory block,從而定位到“/”目錄文件。

                  (3)根據“/”所在的block,定位到“/”目錄文件,該文件中記錄了"/tmp"目錄文件的名稱和inode。

                  (4)根據(3)中找到的inode,找到"/tmp"目錄文件,其中記錄了“test”的文件名和inode。

                  (5)同理,根據(4)中找到的inode,定位到“test”的data block,從而可以訪問test文件。

            注:所謂一切皆文件,連目錄也是文件,該文件記錄了里面的一級子目錄和文件的名稱和inode,所謂cd進這個目錄,其實就是執行該目錄文件,ls則讀取該目錄文件,創建一個文件或子目錄,則意味著向該文件中寫入有關該文件或目錄所對應的條目。

    2.創建文件,刪除文件

              (1)  創建文件

                      創建文件,其實就是根據inode位圖和block位圖,確定哪寫inode和block是空閑的,然后分別向這些block中寫入數據,同時,將整個文件(可能是多個block) 對應一個空閑的inode。 如下圖(這里“1”表示空閑,“0”表示占用,可能不準確~),這樣,訪問inode"E"定位到A塊、C塊、E塊,實現了訪問“test文件”。

                                      演示文稿1.jpg

               (2) 刪除文件

                        刪除文件,其實就是把block位圖和inode位圖的相關位置成空,相當于不被占用,注意:數據還在,下次創建文件時,覆蓋原已清空block位圖和inode位圖的文件的數據。

            


原創文章,作者:Abner,如若轉載,請注明出處:http://www.www58058.com/12117

(2)
AbnerAbner
上一篇 2016-03-04
下一篇 2016-03-05

相關推薦

  • FHS文件系統下個各目錄功能

    FHS文件系統下個各目錄功能 FHS文件系統的建立是為了讓開發者和用戶可以預測軟件安裝文件和文件夾的位置。對整個linux的文件系統系統做了以下的規范:     /bin:命令二進制文件的存放目錄;     /boot:系統啟動時一些文件存放的目錄,包含引導linux的重要文件,…

    Linux干貨 2016-10-18
  • Linux進程及作業管理總結

    一、簡介     在使用Windows操作系統中很多時候需要查看某些程序進程的運行情況,一般來說我們可以打開Windows提供的"任務管理器",然后點擊"進程"欄即可查看到當前系統運行的進程列表。例如偶爾出現系統內存、CPU占用過高的時候,我們往往都會查看進程列表,并找到當前占用內存或CPU過高的進…

    Linux干貨 2015-10-05
  • ?Nginx 代理與緩存

    Nginx 代理與緩存 代理、緩存、集群概述 緩存控制(ngx_http_proxy_module) 配置nginx代理的URI資源類型 增加X-Forwarded-For值 啟用proxy緩存URL資源 封裝首部(ngx_http_headers_module) 響應報文首部添加代理信息 代理調度模塊(ngx_http_upstream_module) R…

    Linux干貨 2016-10-30
  • 馬哥教育網絡班22期第4周課程作業

    1、復制/etc/skel目錄為/home/tuser1,要求/home/tuser1及其內部文件的屬組和其它用戶均沒有任何訪問權限。 [root@MyCloudServer ~]# cp /etc/skel/ /home/tuser1  [root@MyCloudServer ~]# c…

    Linux干貨 2016-09-19
  • 第五周作業

    查看鏈接:http://note.youdao.com/noteshare?id=1ed7b36aa41cbdc1154e3e5b54e43fce

    Linux干貨 2016-09-19
  • CentOS6主機啟動流程

    CentOS6主機啟動流程 流程 一臺Linux主機從開機到登錄界面提示輸入賬號密碼的時間中進行了好多動作,了解這些動作有助于了解Linux系統的過程,并能夠對開機過程出現的故障進行troubleshooting。 主機啟動后最先運行的是主板階段,一旦電源開啟,主板進行POST加點自檢動作,自檢完成后無故障,主板會讀取BIOS信息,根據BIOS信息中的Boo…

    Linux干貨 2017-05-13

評論列表(1條)

  • stanley
    stanley 2016-03-04 17:28

    知道寫標簽的朋友都很細心,細節決定成敗

欧美性久久久久