我們可以把一個磁盤分成一個或多個分區。每個分區可以包含一個文件系統(見圖4-1)。
圖4-1 磁盤、分區和文件系統
i節點(i-node)是固定長度的記錄項,它包含有關文件的大部分信息。
如果更仔細地觀察一個柱面組的i節點和數據塊部分,則可以看到圖4-2中所示的情況。
注意圖4-2中的下列各點:
lrwxrwxrwx 1 root root 8 01-02 05:56 lib -> /usr/lib
該目錄項中的文件名是3個字符的字符串lib,而在該文件中包含了8個數據字節/usr/lib。該i節點中的文件類型是S_IFLNK,于是系統知道這是一個符號鏈接。
我們說明了普通文件的鏈接計數概念,但是對于目錄文件的鏈接計數字段又如何呢?假定我們在工作目錄中構造了一個新目錄:
$ mkdir testdir
圖4-3顯示了其結果。注意,該圖顯式地顯示了.和..目錄項。
圖4-3 創建了目錄testdir后的示例柱形組
對于編號為2549的i節點,其類型字段表示它是一個目錄,而鏈接計數為2。任何一個葉目錄(不包含任何其他目錄的目錄)的鏈接計數總是2,數值2來自于命名該目錄(testdir)的目錄項以及在該目錄中的.項。對于編號為1267的節點,其類型字段表示它是一個目錄,而其鏈接計數則大于或等于3。它大于或等于3的原因是,至少有三個目錄項指向它:一個是命名它的目錄項(在圖4-3中沒有表示出來),第二個是在該目錄中的.項,第三個是在其子目錄testdir中的..項。注意,父目錄中的每一個子目錄都會使該父目錄的鏈接計數增1。
這種格式與UNIX文件系統的經典格式類似。
本篇博文內容摘自《UNIX環境高級編程》(第二版),僅作個人學習記錄所用。關于本書可參考:http://www.apuebook.com/。
新聞熱點
疑難解答