一般來說,面試不會問 inode 。但是 inode 是一個重要概念,是理解 Unix/Linux 文件系統和硬盤儲存的基礎。
理解inode,要從文件儲存說起。
文件儲存在硬盤上,硬盤的最小存儲單位叫做"扇區"(Sector)。每個扇區儲存512字節(相當於0.5KB)。
操作系統讀取硬盤的時候,不會一個個扇區地讀取,這樣效率太低,而是一次性連續讀取多個扇區,即一次性讀取一個"塊"(block)。這種由多個扇區組成的"塊",是文件存取的最小單位。"塊"的大小,最常見的是4KB,即連續八個 sector組成一個 block。
文件數據都儲存在"塊"中,那么很顯然,我們還必須找到一個地方儲存文件的元信息,比如文件的創建者、文件的創建日期、文件的大小等等。這種儲存文件元信息的區域就叫做inode,中文譯名為"索引節點"。
每一個文件都有對應的inode,里面包含了與該文件有關的一些信息。
簡述 Linux 文件系統通過 i 節點把文件的邏輯結構和物理結構轉換的工作過程?
一般來說,面試官不太會問這個題目。
Linux 通過 inode 節點表將文件的邏輯結構和物理結構進行轉換。
· inode 節點是一個 64 字節長的表,表中包含了文件的相關信息,其中有文件的大小、文件所有者、文件的存取許可方式以及文件的類型等重要信息。在 inode 節點表中最重要的內容是磁盤地址表。在磁盤地址表中有 13 個塊號,文件將以塊號在磁盤地址表中出現的順序依次讀取相應的塊。
· Linux 文件系統通過把 inode 節點和文件名進行連接,當需要讀取該文件時,文件系統在當前目錄表中查找該文件名對應的項,由此得到該文件相對應的 inode 節點號,通過該 inode 節點的磁盤地址表把分散存放的文件物理塊連接成文件的邏輯結構。