FAT16檔案系統簡介 一

2021-04-30 17:50:09 字數 1677 閱讀 4686

我們在前面已經完成了主引導扇區程式的編寫。通過主引導記錄,我們已經實現了裝入分割槽引導扇區執行的操作。和主引導扇區一樣,分割槽引導扇區也只有區區

512 個位元組,根本不可能放得下所有的**來將以作業系統核心裝入記憶體,完成重定位工作並設定核心的執行環境。

應次,分割槽引導扇區也只能做一件事,那就是把真正的作業系統裝載程式(

rmosldr

)從檔案系統讀入記憶體並執行。由於

rmosldr

是以檔案的形式存在於檔案系統上的。因此,它的大小將不會受到限制。另外因為我們必須將作業系統裝載程式從檔案系統上讀入記憶體,我們必須首先了解檔案系統的格式。這裡,我使用了最簡單的檔案系統——

fat16

檔案系統。

乙個fat16

檔案系統的整體結構如下圖所示。

在圖上我們可以看到,

fat16

檔案系統的第一部分是分割槽引導記錄。這就是我們放置分割槽引導程式的地方,也就是分割槽的第乙個扇區。在這個扇區裡,

fat16

檔案系統放置了一些資料結構(

bios

引數塊)來描述整個分割槽大大小以及磁碟結構等等。這個資料結構可以用下面的

c++ 結構表示。

在這裡面,

有幾個域現在已經基本沒什麼用了,比如每磁軌扇區數等等。下表描述了一些重要的域

bytespersector

每扇區位元組數,一般為

512

sectorpercluster:

每簇扇區數。

fat16

檔案系統分配空間的時候是以簇為單位分配的,每簇一般可以有

1-64

個扇區。

reservedsectors:

保留扇區數,也就是檔案分配表之前的扇區數。一般為

1 ,即引導扇區後緊接著檔案分貝表。

numberoffats:

檔案分配表個數。一般為

2 ,也就是乙個檔案分配表加乙個備份。

numberofrootdirentries:

根目錄項數。

fat16

檔案系統上根目錄區的大小是固定的,所以乙個

fat16

檔案系統可以容納的根目錄項數也是有限的。

totalsectors:

總扇區數

sectorspe***t:

檔案分配表大小,以扇區為單位。

totalsectors32:

總扇區數,假如,

totalsectors 為0

,那麼總扇區數放在這裡。

fstype:

為字串

fat16

通過上述的引數,我們就可以算出檔案系統上的幾個重要部分如

fat ,根目錄區,資料區等的位置了。 比如

: fat

區位置= 引導扇區位址

+reservedsectors

根目錄區位置

= fat

區位置+

numberoffats

×sectorspe***t

資料區位置 

= 根目錄區位置+

(numberofrootdirentries

×32+(bytespersector - 1)) / bytespersector

(未完待續)

FAT16檔案系統

fat16檔案系統 yoyoone 1.基本知識 扇區 每個磁軌被分為若干個弧段,這些弧段就是扇區。通常情況下,每個扇區512個位元組。簇 fat將磁碟空間按一定數目的扇區為單位進行劃分,這樣的單位稱為簇。簇的大小一般為2的n次方。2.fat16表的組織形式 使用fat檔案系統必須具有幾個部分 保留...

fat16 檔案系統的結構

fat檔案系統在windows比較常見,相對於ext系統而言,也比較簡單。是學習檔案系統的切入點。首先先了解下fat16檔案系統的基本結構依次為 dbr扇區 fat表1 fat表2 根目錄和資料區。dbr扇區 dbr 是作業系統可以直接訪問的第乙個扇區,包括乙個引導程式和乙個稱為 bpb的本分割槽引...

FAT16檔案系統解析(C 版本)

今天fat檔案系統總算告乙個段落了,已經可以非常完美的讀取包含fat16檔案系統的磁碟了。由於是採用c 編寫,直接借鑑的 很少,並且考慮到mf不支援二進位制序列化,所以對資料結構的解析,是乙個乙個位元組進行的,所以很耗費時間。下面就是程式執行後的結果 可以識別物理磁碟及物理磁碟的分割槽 下圖是用檔案...