Linux中的檔案i節點
linux檔案系統是Linux系統的心臟部分,提供了層次結構的目錄和檔案。檔案系統將磁碟空間劃分為每1024個位元組一組,稱為塊(也有用512位元組為一塊的,如:SCOXENIX)。編號從0到整個磁碟的最大塊數。
全部塊可劃分為四個部分,塊0稱為引導塊,檔案系統不用該塊;塊1稱為專用塊,專用塊含有許多資訊,其中有磁碟大小和全部塊的其他兩部分的大小。從塊2開始是i節點表,i節點表中含有i節點,表的塊數是可變的,後面將做討論。i節點表之後是空閒儲存塊(資料儲存塊),可用於存放檔案內容。
檔案的邏輯結構和物理結構是十分不同的,邏輯結構是使用者敲入cat命令後所看到的檔案,使用者可得到表示檔案內容的字元流。物理結構是檔案實際上如何存放在 磁碟上的儲存格式。使用者認為自己的檔案是邊疆的字元流,但實際上檔案可能並不是以邊疆的方式存放在磁碟上的,長於一塊的檔案通常將分散地存放在盤上。然而 當使用者存取檔案時,linux檔案系統將以正確的順序取出各塊,給使用者提供檔案的邏輯結構。
當然,在linux系統的某處一定會有一個表,告訴檔案系統如何將物理結構轉換為邏輯結構。這就涉及到i節點了。i節點是一個64位元組長的表,含有有關一個檔案的資訊,其中有檔案大小、檔案所有者、檔案存取許可方式,以及檔案為普通檔案、目錄檔案還是特別檔案等。在i節點中最重要的一項是磁碟地址表。
該表中有13個塊號。前10個塊號是檔案前10塊的存放地址。這10個塊號能給出一個至多10 塊長的檔案的邏輯結構,檔案將以塊號在磁碟地址表中出現的順序依次取得相應的塊。當檔案長於10塊時又怎樣呢?磁碟地址表中的第11項給出一個塊號,這個 塊號指出的塊中含有256個塊號,至此,這種方法滿足了至多長於266塊的檔案(272384位元組)。如果檔案大於266塊,磁碟地址表的第12項給出一 個塊號,這個塊號指出的塊中含有256個塊號,這256個塊號的每一個塊號又指出一塊,塊中含256個塊號,這些塊號才用於取檔案的內容。磁碟地址中和第 13項索引定址方式與第12項類似,只是多一級間接索引。
這樣,在linux系統中,檔案的最大長度是16843018塊,即17247250432位元組,有幸是Linux系統對檔案的最大長度(一般為1到2M位元組)加了更實際的限制,使使用者不會無意中建立一個用完整個磁碟區所有塊的檔案。
檔案系統將檔名轉換為i節點的方法實際上相當簡單。一個目錄實際上是一個含有目錄表的檔案:對於目錄中的每個檔案,在目錄表中有一個入口項,入口項中含 有檔名和與檔案相應的i節點號。當使用者敲入catxxx時,檔案系統就在當前目錄表中查詢名為xxx的入口項,得到與檔案xxx相應的i節點號,然後開 始取含有檔案xxx的內容的塊。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29551564/viewspace-1409355/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Linux--檔案描述符、檔案指標、索引節點Linux指標索引
- 11g中節點間拷貝檔案
- 給XML檔案新增新的節點XML
- Linux 在 i 節點表中的磁碟地址表中,若一個檔案的長度是從磁碟地址表的第 1 塊到第 11 塊 解析?Linux
- 【OS_Linux】刪除日誌檔案中某個時間節點之前的內容Linux
- ELF檔案中的各個節區
- 【Linux】關於Linux的部分細節與配置檔案Linux
- 檔案I/O
- Linux中的檔案種類Linux
- 在Oracle9i中建立SPFILE檔案Oracle
- Python中檔案I/O高效操作處理的技巧Python
- oracle rac 中 映象 控制檔案 更新雙節點spfile for ASM 2013修改OracleASM
- Linux程式間通訊中的檔案和檔案鎖Linux
- Linux中的檔案許可權Linux
- Linux中檔案的許可權Linux
- 使用vim修改linux中的檔案Linux
- linux中的檔案描述符Linux
- alwayson只讀節點資料檔案的磁碟被寫滿
- springboot讀取自定義配置檔案節點Spring Boot
- mybatis配置檔案(其中,注意節點先後順序)MyBatis
- linux 中根據檔案的大小進行檔案的查詢Linux
- 【linux】給目錄或檔案加i、a許可權Linux
- 在 Linux 中如何刪除檔案中的空行Linux
- tom 9I-10g中關於dmp和資料磊檔案以及pga的一點分析
- Linux裝置節點Linux
- 把“點檔案”放到版本控制中
- 檢視linux中檔案的inode資訊Linux
- linux下批量修改檔案中的字元Linux字元
- Java中在二叉搜尋樹中查詢節點的父節點Java
- vue專案中使用bpmn-流程圖xml檔案中節點屬性轉json結構Vue流程圖XMLJSON
- 軟連線、硬連結 和 i節點(inode)
- [轉載] Oracle9i RAC 手工新增節點Oracle
- AIX RAC9I 節點當機測試AI
- 裝置驅動程式INF檔案——INF檔案的節
- I/O流以及檔案的基本操作
- JS中的DOM— —節點以及操作JS
- TCP 中的兩個細節點TCP
- 不點兒之Linux檔案系統Linux