Linux的檔案儲存結構

2021-10-06 15:42:14 字數 1776 閱讀 7599

大部分的linux檔案系統(如ext2、ext3)規定,乙個檔案由目錄項、inode和資料塊組成:

一、目錄塊

linux系統中,目錄(directory)也是一種檔案。開啟目錄,實際上就是開啟目錄檔案。

目錄檔案的結構非常簡單,就是一系列目錄項(dirent)的列表。每個目錄項,由兩部分組成:所包含檔案的檔名,以及該檔名對應的inode號碼。

ls命令只列出目錄檔案中的所有檔名: ls /etc

ls -i命令列出整個目錄檔案,即檔名和inode號碼: ls -i /etc

如果要檢視檔案的詳細資訊,就必須根據inode號碼,訪問inode節點,讀取資訊。ls -l命令列出檔案的詳細資訊。 ls -l /etc

二、inode

1、inode是什麼

理解inode,要從檔案儲存說起。

檔案儲存在硬碟上,硬碟的最小儲存單位叫做「扇區」(sector)。每個扇區儲存512位元組(相當於0.5kb)。

作業系統讀取硬碟的時候,不會乙個個扇區的讀取,這樣效率太低,而是一次性連續讀取多個扇區,即一次性讀取乙個「塊」(block)。這種由多個扇區組成的「塊」,是檔案訪問的最小單位。「塊」的大小,最常見的是4kb,即連續八個sector組成乙個block。

檔案資料都儲存在「塊」中,那麼很顯然,我們還必須找到乙個地方儲存檔案的「元資訊」,比如檔案的建立者、檔案的建立日期、檔案的大小等等。這種儲存檔案元資訊的區域就叫做inode,中文譯名為"索引節點"。

inode包含檔案的元資訊內容(除了檔名之外所有的檔案資訊)

2、inode的大小

inode也會消耗硬碟空間,所以硬碟格式化的時候,作業系統自動將硬碟分成兩個區域。乙個是資料區,存放檔案資料;另乙個是inode區(inode table),存放inode所包含的資訊。

每個inode節點的大小,一般是128位元組或256位元組。inode節點的總數,在格式化時就給定,一般是每1kb或每2kb就設定乙個inode。假定在一塊1gb的硬碟中,每個inode節點的大小為128位元組,每1kb就設定乙個inode,那麼inode table的大小就會達到128mb,佔整塊硬碟的12.8%。

由於每個檔案都必須有乙個inode,因此有可能發生inode已經用光,但是硬碟還未存滿的情況。這時,就無法在硬碟上建立新檔案。

3、inode號碼

每個inode都有乙個號碼,作業系統用inode號碼來識別不同的檔案。

這裡值得重複一遍,linux系統內部不使用檔名,而使用inode號碼來識別檔案。對於系統來說,檔名只是inode號碼便於識別的別稱或者綽號。表面上,使用者通過檔名,開啟檔案。實際上,系統內部這個過程分成三步:首先,系統找到這個檔名對應的inode號碼;其次,通過inode號碼,獲取inode資訊;最後,根據inode資訊,找到檔案資料所在的block,讀出資料。

三、資料塊

資料塊就是在磁碟上儲存資料的地方,使用檔案的時候由操所系統索引inode來呼叫相應的檔案

補充:建立乙個新檔案的操作

儲存屬性

核心先找到乙個空閒的 i 節點(這裡是131074 )

核心把檔案資訊記錄到其中

記錄分配情況

檔案內容按順序 300、500、800存放,核心在 inode 上的磁碟分布區記錄了上述塊列表。

新增檔名到目錄

核心將入口( 131074,abc)新增到目錄項,這樣檔名就通過inode與實際檔案資料建立起來了聯絡。

Linux檔案儲存結構

大部分的linux檔案系統 如ext2 ext3 規定,乙個檔案由目錄項 inode和資料塊組成 理解inode,要從檔案儲存說起。檔案儲存在硬碟上,硬碟的最小儲存單位叫做 扇區 sector 每個扇區儲存512位元組 相當於0.5kb 作業系統讀取硬碟的時候,不會乙個扇區乙個扇區地讀取,這樣效率太...

Linux 檔案儲存結構 基礎操作

windows檔案儲存組織 分盤 c盤 d盤 e盤.linux檔案儲存組織 一切皆檔案 一 目錄的基本含義 bin 命令對應的二進位制可執行檔案 etc 配置目錄,配置檔案 系統執行引數 行為 檔案等 boot 系統啟動時所需要的核心映象檔案 home 普通使用者的家目錄,root root使用者家...

linux下的檔案目錄和儲存結構總結

linux下並不存在c d e f盤,所有的檔案及目錄都是以樹形結構劃分的,並且每個檔案都規定了自己的作用範圍。每個目錄的具體作用 常用的一些目錄 目錄名稱 應放置檔案的內容 boot 開機所需檔案 核心,開機選單及所需配置檔案等 dev 任何裝置與介面都以檔案形式存放在此目錄 etc 配置檔案 h...