fat檔案系統學習筆記

來源:互聯網
上載者:User

對於電腦的硬碟,因為要引導系統,所以還有BOOT區,分區表等等,這些東西在單片機上都用不著,硬碟對空間管理的核心就是檔案配置表(FAT),為了儲存不同的檔案和目錄結構還有一個表也十分重要,就是檔案目錄表(FDT)。這兩個表一般都儲存在硬碟每個分區的開頭幾個扇區之中我們的flash檔案系統自然也會有這樣兩張表存放在flash前面的幾個扇區。

           FAT是什麼:
我的理解:
FAT就是檔案使用登記鏈表,如果用16位的整數來表示一個簇號(稱為FAT16),這樣最多能容納65535個簇(簇的大小是扇區的整數倍)。如果把fat表看成一個元素個數對應硬碟簇數的數組,那麼數組元素在數組中的位置就是他代表的簇在硬碟上的位置。

 在FAT檔案系統中,把硬碟把整個空間劃分為很多的邏輯塊,每塊包含若干扇區,這樣
的塊叫做簇,簇的大小是由硬碟在分區的時候決定的。這樣整個硬碟就有好多好多的簇,每個簇對應有一個簇號,假如簇號用一個16位的整數來表示的話(就是FAT16),就一共能表示65536個簇。簇是檔案儲存體的最小單位。對於一個80GB的硬碟來講,如果用
FAT16檔案系統來管理硬碟,由於FAT16最大隻能表示65536簇,所以每簇的空間將為
(80*1024*1024)/65536=1280Kbyte。 FAT表在這裡就像個大的數組,硬碟上有多少個簇,這個數組的元素就有多少個。數組元素在數組中的位置就是他代表的簇在硬碟
上的位置。
 電腦把檔案佔用的簇的簇號放到FAT中,所以這個表就叫做檔案配置表。一開始FAT表是空的資料全部都是0x0000或者0xffff。

  FAT對空間的管理:
我的理解:
一個檔案在硬碟的儲存是先在fat表中找閒置簇,找到後寫滿空閑簇,然後再找閒置簇,並把此閒置簇號寫在fat表上剛才寫滿的簇的對應的位置上,作為檔案連結(為檔案的讀取提供索引依據),依次類推,到最後以0xfff8在FAT表中的對應位置表示檔案結尾所在簇。記錄檔案的起始簇,就是檔案名稱和副檔名來標記的了,其他的屬性根據情況需要而定。可以定義一個結構檔案目錄表FDT(FDT_REC)用來詳細描述檔案的屬性。

 

           FAT表管理空間的原理
電腦在寫檔案的時候如何對FAT表操作。電腦要向檔案寫資料,先要到FAT表中找到一個閒置簇,並往裡面寫資料,寫滿後,再到FAT表中尋找下一個閒置簇,找到之後先把簇號填到剛才寫滿的那個簇在FAT表中的對應位置,然後繼續寫,寫滿之後再找一個空閑簇,然後再把這次找到的簇的簇號填到我們剛剛寫完的那個簇在FAT表中的
對應位置,這樣下去直到寫完,然後我們把最末尾的簇在FAT表中的對應位置標為0xfff8表示結束。
    而在讀檔案的時候,只要我們找到了檔案的第一簇的簇號,然後就可以在FAT表中的對應位置找到下一簇的簇號,這樣一直下去直到遇到0xfff8。這就好像是一條簇鏈,一條單向的簇鏈表,找到了頭,就能順序找到尾。這就是FAT表管理空間的原理.

檔案的建立和刪除
 電腦要建立一個檔案,就要先根據檔案的名字,目前時間資訊,構造一條FDT_REC記錄,然後把這條FDT_REC記錄插入到FDT表中去,一開始檔案大小為0,起始簇為空白(0xfff8),這樣就建立了一個空檔案,
    刪除檔案的過程。刪除檔案時並不是把檔案佔用的所有簇都清空,而是先把檔案在FDT表中的記錄項(FDT_REC)的第一個位元組置為0x5e表示這條項目已經被刪除。然後在FAT表中釋放該檔案佔用的簇。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.