inode

參考:

http://www.ruanyifeng.com/blog/2011/12/inode.html

http://www.opsers.org/base/one-day-the-little-learning-linux-inode-detailed.html

http://www.cnblogs.com/sonic4x/archive/2011/08/05/2128543.html

定義:

這種儲存文件元信息的區域就叫做inode,中文譯名爲"索引節點"。

  • 硬盤的最小存儲單位叫做"扇區"(Sector)。每個扇區儲存512字節(相當於0.5KB)。
  • 多個扇區組成的"塊",是文件存取的最小單位。"塊"的大小,最常見的是4KB,即連續八個 sector組成一個 block。
  • 文件數據都儲存在"塊"中,必須找到一個地方儲存文件的元信息,比如文件的創建者、文件的創建日期、文件的大小等等。

inode包含文件的元信息,具體來說有以下內容:

  • 文件的字節數
  • 文件擁有者的User ID
  • 文件的Group ID
  • 文件的讀、寫、執行權限
  • 文件的時間戳,共有三個:ctime指inode上一次變動的時間,mtime指文件內容上一次變動的時間,atime指文件上一次打開的時間。
  • 鏈接數,即有多少文件名指向這個inode
  • 文件數據block的位置

查看:

  • stat
  • ls -i

大小:

inode也會消耗硬盤空間,硬盤格式化時操作系統自動將硬盤分成兩個區域:

  • 數據區,存放文件數據
  • inode區(inode table),存放inode所包含的信息。

每個inode節點的大小,一般是128字節或256字節。

inode節點的總數,在格式化時就給定,一般是每1KB或每2KB就設置一個inode。

df -i查看

號碼機制

打開文件步驟:

  • 系統找到這個文件名對應的inode號碼;
  • 通過inode號碼,獲取inode信息;
  • 根據inode信息,找到文件數據所在的block,讀出數據。


總結:

  • 1、一個Inode對應一個文件,而一個文件根據其大小,會佔用多塊blocks。
  • 2、更爲準確的來說,一個文件只對應一個Inode。因爲硬鏈接其實不是創建新文件,只是在Directory中寫入了新的對應關係而已。
  • 3、當我們刪除文件的時候,只是把Inode標記爲可用,文件在block中的內容是沒有被清除的,只有在有新的文件需要佔用block的時候,纔會被覆蓋。

 

硬鏈接/軟鏈接

概念:

  • 硬鏈接 hard link 對目標文件,生成一條新的到達路徑。只有該文件所有硬鏈接都被刪除,該文件才被真正刪除。
  • 軟鏈接 symbolic link 生成一個保存目標文件位置信息的文件

硬連接的2個限制:

  • l 不允許給目錄創建硬鏈接
  • l 只有在同一文件系統中的文件之間才能創建鏈接。 即不同硬盤分區上的兩個文件之間不能夠建立硬鏈接。這是因爲硬鏈接是通過結點指向原始文件的,而文件的i-結點在不同的文件系統中可能會不同。

inode節點:

  • 硬鏈接文件和原始文件inode編號相同
  • 軟鏈接文件和原始文件inode編號不同
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章