《LINUX實戰:Linux文件系統結構》要點:
本文介紹了LINUX實戰:Linux文件系統結構,希望對您有用。如果有疑問,可以聯系我們。
磁盤是由若干扇區組成,每個扇區有512B(將磁盤存儲區扇區化是為了更好的管理磁盤).又由若干個扇區組成一個塊(ext2默認是由8個扇區組成一個塊,即4kb,這里為了簡化說明,就把2個扇區組成一個塊,即1kb).由圖知,將磁盤分成若干個分區,每個分區由若干個塊組成.
將數據指針數組命名為data數組.文件系統中,將data[12]進行一級間接尋址.即:將data[12] 指針指向的數據塊,轉化為一個更大的指針數組,長度為1024/4=256.在將這個更大的指針數組的分別數指向256個數據塊;data[13]進行二級間接尋址,data[14] 進行三級間接尋址.都和一級間接尋址同理.
數據塊中存儲的是一條一條的記錄項,每條記錄項都由文件名、indoe編號、記錄長度(該記錄項首地址到下一條記錄項的首地址的長度).每一個記錄項便是該目錄下“ls -a”的結果.
由圖可以看出,每個inode節點可以對應多個數據塊,和上文在分析inode節點的內容一致.然后,若干個目錄塊中的記錄項指向每個inode節點,通過inode節點中鏈接數這個數據成員來標識指向其的記錄項個數,這便是硬鏈接.當然,這些目錄塊都是目錄文件的數據塊;
由上圖知,inode節點在文件系統中被維護成了結構體數組,inode編號為數組的下標;2549號i節點是1267號i節點的子目錄,因為1267號i節點的數據塊中有2549號i節點的記錄項;“.”目錄文件和 “..”目錄文件都是硬鏈接.
從以上分析能夠得出結論:所有的目錄塊都是不同目錄文件的數據塊.
執行命令:mkdir /home/aaron/a.c
(1)通過塊位圖區找到空閑的數據塊,存放a.c中的內容
(2)通過inode位圖區找到空閑的inode節點塊,生成相應的inode節點
(3)在aaron目錄文件的數據塊中添加一條a.c的記錄項
執行命令:vim /home/aaron/a.c
(1)找到inode編號為2的inode節點,
(2)遍歷根目錄文件的數據塊中的記錄項,匹配aaron記錄項,獲取其inode編號
(3)通過aaron目錄文件的inode編號,找到aaron文件對應的數據塊
(4)遍歷aaron文件的數據塊中的記錄項,匹配a.c記錄項.同理,找到對應的a.c的數據塊.用vim打開相應文件
本文永久更新鏈接地址:
更多LINUX教程,盡在維易PHP學院專欄。歡迎交流《LINUX實戰:Linux文件系統結構》!