簡述inode

inode的好處

inode也叫"索引節點",每個文件都有一個獨一無二的inode號,通過這個inode號操作系統就可以輕鬆的找到文件數據所在的位置。

理解inode我們可以通過理解操作系統如何創建文件和如何找到文件的過程,先了解一下磁盤的概念

===============================================================

在這裏插入圖片描述
在這裏插入圖片描述

磁盤由許多盤片疊起來組成
每個盤片有兩面
每面有許許多多的同心圓,每個同心圓叫做一個柱面
每個同心圓之間是有一定距離的
柱面(同心圓)其實也不是一個連續的圓,這個圓分成了多個圓弧
這個圓弧我們叫扇區
每個扇區的數據我們規定是512字節
對於磁盤讀取數據是以扇作爲單位的,也就是說磁盤讀取數據的時候就算只需要某個扇區的一個字節的數據,也需要把整個扇區讀完
而對於文件系統,是以塊作爲單位的,而塊是由多個扇組成

根據硬盤的規格不同,磁道數可以從幾百到成千上萬不等。每個磁道可以存儲數Kb的數據,但是計算機不必要每次都讀寫這麼多數據。因此,再把每個磁道劃分爲若干個弧段,每個弧段就是一個 扇區 (Sector)。扇區是硬盤上存儲的物理單位,現在每個扇區可存儲512字節數據已經成了業界的約定。也就是說,即使計算機只需要某一個字節的數據,但是也得把這個512個字節的數據全部讀入內存,再選擇所需要的那個字節。雖然扇區從裏面到外面面積越來越大,但是它們的容量是一樣的;貌似後來技術更加先進了,把外面的大面積扇區又劈成了更小的塊。

文件系統是以塊爲單位的,對於每個塊而言,它可以分成5個部分

超級塊:

是存儲對應文件系統元數據的結構,存儲的元數據包括包括文件系統大小,塊大小,以及空閒及已使用的塊的數量inode表的大學及位置等

inode表:

存放文件的信息如文件大小,所有者,最近修改時間等

數據區:

存放文件的內容

inode位圖表:

管理存儲屬性的內存

數據位圖表:

管理存儲數據的內存

================================================================

有了這些概念後,就可以談一談文件的創建過程,當操作系統創建一個文件的時候,操作系統首先尋找到一個空閒的inode號
在這裏插入圖片描述

創建一個文件時,在文件系統中發生的故事

操作系統 : 好啦,我準備創建一個文件了,文件名叫做myfile是吧,我去系統裏找一個空閒的inode號,好啦,找到了,這個叫做123的inode號在inode表裏面沒有和它有映射關係的文件名,現在myfile這個文件名就和123組成映射關係了。 (當然這個映射關係還要存到當前目錄中)
操作系統:現在我要把這個映射關係存到inode表中,我得先看一下inode表中還有沒有地方可以存呀(操作系統掏出了inode位圖表,這個表中記錄inode表中哪些地方還沒存東西),找到了。(inode號和文件名的映射關係被存到inode表中,同時inode位圖表中把已經使用的空間標記)
操作系統:文件名字和inode號ok了,現在再往inode表中存一些文件的其他屬性信息,現在要存文件的數據了,我找一下數據區裏哪些地方可以存數據(掏出了數據位圖表)
找到了。(然後操作系統在數據區中選擇了多個空閒的數據塊,存下了數據,並把數據塊的編號存到了inode表中,同時兩個位圖標記已經使用了的空間)
操作系統:把文件的數據存好了,文件的一些屬性比如文件大小,訪問時間,擁有者,等信息也要存到inode表中哈。

尋找一個文件時,在文件系統中發生的故事

首先我們要知道目錄也是一個文件
在操作系統中,一切皆文件
目錄中儲存了文件的路徑信息和文件名以及文件對應的inode信息。
當我們給操作系統一個文件名的時候

操作系統:給我文件名是吧,inode表中不是存了一些文件名和inode號的映射關係嘛,通過文件名我就可以找到文件對應的inode號了呀,這個文件使用的數據塊列表肯定就在存映射關係的邊上唄,那麼我就找到文件的數據了。現在我就找到文件了,也找到文件中的數據了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章