Minix檔案系統概述

2021-05-25 04:51:53 字數 1406 閱讀 1875

minix檔案系統是乙個邏輯的、自包含的實體。在磁碟上它由六部分組成,分別是:引導塊,超塊、i-節點、

i-節點位圖、區段位圖、資料塊。具體結構如下圖所示:

每個檔案系統都以引導塊開始,引導塊的最後兩個位元組是魔數0x55aa.引導塊大小為資料塊的一塊,一般為512位元組。啟動計算機時,硬體從引導裝置將磁碟的引導塊讀入記憶體,轉而執行其**,接下來引導塊負責將作業系統從磁碟讀入記憶體,並啟動作業系統。

超級塊包含了檔案系統的布局資訊,它的主要功能是給出檔案系統不同部分的大小,具體如下所示:

i-節點位圖用於標識i-節點的使用情況,區段位圖用於標識區段的使用狀況。i-節點用於記錄檔案(包括目錄檔案和普通檔案),當建立乙個新的檔案時就為它分配乙個i-節點。為檔案分配資料是以區段為單位進行的,而讀檔案時卻是以塊為單位進行的。使用區段的目的是:確保同一檔案的所有磁碟塊都位於同乙個柱面上,從而改進讀取檔案的效能。區段一般由1-n個資料塊構成,它是一種邏輯存在,在物理磁碟上只有資料塊,但在為檔案分配資料時是以區段為單位進行分配的。在檔案系統建立時,根目錄就自動存在。i-節點點陣圖和區段點陣圖有兩位分別為1,表明已經分配出去了,一位是第0位,此位不可用所以為1,一位是根目錄所在的位。

檔案i-節點的主要功能是給出檔案資料塊所在的位置,當要開啟檔案時,首先要找到檔案的i-節點,並把它載入記憶體的inode表中,直到關閉前,它一直保留在記憶體中。當多個程序開啟同乙個檔案時,記憶體的inode中有乙個計數器來計數,只有當計數器減為0的時候才會釋放此i-節點。i-節點如下圖所示:

上述i-節點有七個區段和兩個間接區段,譬如區段的大小為1k,乙個只有7k大小的檔案需要用zone0-zone6來標識,它們分別儲存了所使用的區段號。注意第二項中的number of links是指檔案系統中目錄檔案引用此i-節點的次數。當使用者讀取乙個檔案時,讀到它的i-節點後就需要根據其區段號來讀取其資料資料塊,讀取資料塊並不是直接從磁碟上讀取的,在記憶體中minix有乙個塊快取記憶體,作業系統先去該快取記憶體中查詢塊,看是否在其中,如果未查找到,才傳送讀訊息給磁碟任務去讀取乙個塊到快取記憶體中。塊快取記憶體的結構如下圖所示:

圖中的lru指向不在使用的塊。hash表以塊號的低n為作為雜湊索引。

minix中查詢乙個檔案的過程為:由於根目錄是在檔案系統建立時就已經存在了的,所以系統會首先找到根目錄,然後根據目錄項中的i-節點號,找到對應目錄的i-節點,逐步查詢到需要檔案或目錄的i-節點為止,找到i-節點就可以載入檔案了。示例如下圖所示:

當使用者需要掛載乙個新的目錄時,作業系統會在超級塊的表項中填寫兩項來表明其掛載,一項是指向被安裝檔案系統的根目錄i-節點;一項是指向該檔案系統所安裝到的i-節點,比如下圖中的/usr.

檔案系統中還有乙個概念是檔案描述符,它位於程序表中,檔案描述符並不是直接指向其所指檔案的i-節點,而是在中間隔了乙個filp表,此表的主要作用是便於程序共享同乙個i-節點,即共享同乙個檔案,因為當有多個程序讀寫同乙個檔案時,協商好讀寫檔案位置是乙個問題。它們的關係如下:

minix檔案系統

2009 06 14 02 40 1791人閱讀收藏 舉報struct null buffer 資料結構 numbers disk minix檔案系統和標準unix檔案系統基本相同。它由6個部分組成,分別是 引導塊,超級塊,i節點位圖,邏輯塊點陣圖,i節點,和資料區。如果存放檔案系統的裝置不是引導裝...

檔案系統概述

1 常見檔案系統型別 fat12 是ibm第一台個人電腦中的ms dos 1.0使用的檔案系統,主要用於軟盤。這種系統限制分割槽的容量最大為16mb 但這根本算不上問題,因為軟盤容量從來沒有達到16mb。fat16 它被很多作業系統支援,相容性最好,但分割槽最大只能到2gb,並且空間浪費現象比較嚴重...

Minix檔案系統在Linux 4 19核心的編譯

ubuntu16.04虛擬機器 核心版本 v4.19 minix原始碼獲取 minix原始碼在linux原始碼 fs minix 目錄 進入minix目錄,修改makefile為obj config minix fs minix.o minix objs bitmap.o itree v1.o it...