相關sd卡fat32文件系統(tǒng)詳細介紹_第1頁
相關sd卡fat32文件系統(tǒng)詳細介紹_第2頁
相關sd卡fat32文件系統(tǒng)詳細介紹_第3頁
相關sd卡fat32文件系統(tǒng)詳細介紹_第4頁
相關sd卡fat32文件系統(tǒng)詳細介紹_第5頁
已閱讀5頁,還剩9頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

:FileSystemisusedtomanagefilessoftwareanddata,itispartoftheoperatingsystem.FAT32filesystemisakindofformatthatitmanagediskfiles.AndthecorrespondingotherfilesystemformatsuchasNTFS,EXT2 FileSystem;FAT32FileSystem;摘要: 文件系統(tǒng)是用于管理文件的軟件和數(shù)據(jù)的統(tǒng)稱,它是操作系統(tǒng)的一部分。T32文件系統(tǒng)是一種理磁盤文件的一種格式。還有相應的其他文件系統(tǒng)格式比如NTFS,EXT2等。 文件系統(tǒng);FAT32文件系統(tǒng);硬盤物理結構1控制電路板由接口,DSP處理器,ROMIDE接口(IntegratedDriveElectronics),SCSI接口(SmallComputerSystemInterface),SATA接口(Serial-ATA)(目前是主流),SAS接口,IEEE1394接口。硬盤數(shù)據(jù)是根據(jù)電、磁轉換原理實現(xiàn)的。硬盤由一個或幾個表面鍍有磁性物質的金屬或玻璃等物質盤片以及盤片兩面所安裝的磁頭和相應的控制電路組成(1),其中盤片和磁頭密封在無塵的金屬殼中。硬盤工作時,盤片以設計轉速高速旋轉,設置在盤片表面的磁頭則在電路控制下徑向移動到指定位置然后將數(shù)據(jù)或出來。當系統(tǒng)向硬盤寫入數(shù)據(jù)時,磁頭中“寫數(shù)據(jù)”電生磁場使盤片表面磁性物質狀態(tài)發(fā)生改變,并在寫電流磁場后仍能保持,這樣數(shù)據(jù)就下來了;當系統(tǒng)從硬盤中讀數(shù)據(jù)時,磁頭經(jīng)過盤片指定區(qū)域,盤片表面磁場使磁頭產(chǎn)生感應電流或線圈阻抗產(chǎn)生變化,經(jīng)相關電路處理后還原成數(shù)據(jù)。因此只要能將盤片表面處理得更平滑、磁頭設計得更精密以及盡量提高盤片旋轉速度,就能造出容量更大、讀寫數(shù)據(jù)速度更快的硬盤。這是因為盤片表面處理越平、轉速越快就能越使磁頭離盤片表面越近,提高讀、寫靈敏度和速度;磁頭設計越小越精密就能使磁頭在盤片上占用空間越小,使磁頭在一張盤片上建立的磁道以的數(shù)據(jù)。2如圖2硬盤由很多盤片(tter)組成,每個盤片的每個面都有一個讀寫磁頭。如果有N個盤片。就有2N2N個磁頭(Heads)0、1、2開始編號。每個盤片被劃分成若干個同心圓磁道(邏輯上的,是不)每個盤片的劃分規(guī)則通常是一樣的。這樣每個盤片的半徑均為固定值R的同心圓再邏輯上形成了一個以電機主軸為軸的柱面(Cylinders)0、1、2……每個盤片上的每個磁道又被劃分為幾十個扇區(qū)(Sector)512字節(jié),并按照一定規(guī)則編號為1、2、3……CylindersHeadsSector個扇區(qū)。這三個參數(shù)即是硬盤的物理參數(shù)。我們下面的很多實踐需要深刻理解這三個參數(shù)的意義。所以就形成CHS尋址方式,這種尋址方式可以定位唯一的扇區(qū)地址。還有一種尋址方式是LBA尋址方式,這是一種邏輯塊尋址,也稱作線性尋址。主分區(qū)以及擴展分區(qū)一個硬盤主分區(qū)至少要有一個,最多四個,擴展分區(qū)可以沒有,最多一個。且主分區(qū)+擴展分區(qū)總共不能超過四個。邏輯分區(qū)可以有若干個。擴展分區(qū)是不能夠直接使用的,它是以邏輯分區(qū)的方式使用的。所以有如下的關系:3所示硬盤的主要3可以看到電腦硬盤只有一個主分區(qū),那就是C盤有一個擴展分區(qū),這個擴展分區(qū)分成三個邏輯分區(qū)D,主引導記錄區(qū)MBRmasterbootrecord44MBRMBR001扇區(qū),可以看做是硬盤的第一個扇區(qū),它起著至關重要的作用。它由三部分組成,446個字節(jié)的主引導扇區(qū),64字節(jié)的磁盤分區(qū)表,以及兩個字節(jié)的分區(qū)結束標志。計算機在按下power按鍵的時候,開始執(zhí)行主板的BIOS程序。進行完一系列的檢測和配置之后。開始按BIOS設定來引導系統(tǒng),BIOS執(zhí)行完自己的程序就把指揮權交給MBR。那么MBR就是起到引導活動分區(qū)的作用。那么MBR的引導程序時用于引導活動分區(qū)的,那么活動分區(qū)又是從哪里知道的呢?如圖5有更為詳細的MBR結構圖5MBR由改圖可以知道分區(qū)表記錄了四個分區(qū)信息,所以為什么主分區(qū)最多有四個的原因。如圖6是第一個分6分區(qū)表里面記錄該分區(qū)的詳細信息,包括開始扇區(qū),開始柱面,系統(tǒng)ID,結束扇區(qū),以及總的扇區(qū)數(shù)。MBR在把指揮權交給這個活動分區(qū)來執(zhí)行。還有一個重要的參數(shù)是相對扇區(qū)數(shù),這個相對扇區(qū)數(shù)指明了這個分區(qū)的開擴展引導記錄區(qū)擴展引導記錄包括一個擴展分區(qū)表以及該扇區(qū)的結束標志。這個擴展分區(qū)表和MBR中的磁盤分區(qū)表大7這個擴展分區(qū)表只記錄兩項,一項是用于記錄當前邏輯驅動器的信息,另一項是記錄下一個邏輯驅動器的信息。第三個和第四個表項是不用的。這樣如果硬盤要分多個分區(qū),那么只能在擴展分區(qū)這里分多幾個邏輯分區(qū)才可以。T32文件系統(tǒng)理論上支持最多24個分區(qū),所以擴展分區(qū)最多可以分23個邏輯分區(qū)。88是用于三個邏輯分區(qū)的擴展分區(qū)。每個邏輯驅動器的擴展分區(qū)表的第一表項都記錄本邏輯驅動的情況。第二表項都指向下一個邏輯驅動器的EBR。但是最后一個邏輯驅動器只有第一個表項記錄了該驅動器的信息,第二,三,四表項都沒有使用。只有這一點區(qū)別。MBR以及擴展引導記錄EBRBIOS加電自檢(檢查整個硬件是否正常),跳到內存地址0x0fff0000地址處,并初始化一些中斷向將硬盤的第一個扇區(qū)(也就是主引導記錄MBR)讀入內存0x00007c00檢查0x00007cfe末尾處是否是0xaa55,(因為一個扇區(qū)結束標志位0xaa55),若不等于則轉去嘗試其他介質,如果沒有其他啟動介質,返回“NORAMBASIC”那么電腦死機。0x00007c00MBRMBR將自己到 處執(zhí)將活動分區(qū)的第一個扇區(qū)讀入內存0x00007c000xaa55,不等于則顯示“MissingOperatingSystem如果找到活動分區(qū)。則將控制權轉移給活動分區(qū)的引導扇區(qū)25BIOS6MBRBIOS是整個電腦啟動的鑰匙,那么MBR就是操作系統(tǒng)啟動的。第10個步驟如果找到了活動分區(qū),則將指揮權交給了該分區(qū)的引FAT32FAT329FAT32如圖9,F(xiàn)AT32文件系統(tǒng)主要分為四個部分。那么上述講到的如果MBR找到活動分區(qū)那么應該將指揮權交給DBR區(qū)。這個是一個操作系統(tǒng)引導扇區(qū)。每一個主分區(qū)都有一個DBR。而且每一個邏輯分區(qū)也都有各自操作系統(tǒng)引導記錄區(qū)DBRDOSBOOTRECORD0扇區(qū)。如圖10所示為DBR的結構。10DBR這個DBR結構包含著該分區(qū)重要的參數(shù),其中跳轉指令的作用是為了跳過后面的不可執(zhí)行的BPB展BPBBPB以及擴展。BPBBIOSParameterBlock即基礎輸入輸出系統(tǒng)參數(shù)塊。BPB偏移(節(jié)長度(節(jié)2扇區(qū)字節(jié)數(shù)(BytesPerSector)512、1024、20484096.5121件系統(tǒng)只能有限個簇(最多為4,294,967,296個因此,通增加每簇扇區(qū)數(shù),可以使FAT32值 和128。Windows2000的FAT32現(xiàn)只能創(chuàng)建最大為32G的分區(qū)。但是,Windows2000能夠其他操作系統(tǒng)(Windows95、OSR2及其以后的版本)2保留扇區(qū)數(shù) 導扇區(qū)。本字段的十進制值一般為32122 分區(qū)而言,本字段必須設置為02分區(qū)而言,本字段必須設置為01描述符(MediaDescriptor),提供有關被使用的信息0xF80xF03.5MS-DOSFAT16Windows20002FAT3202每道扇區(qū)數(shù)(SectorsPerTrack)0x132頭數(shù)”幾何結構值。例如,在一張1.44MB3.524引導序列計算到 的數(shù)據(jù)區(qū)的絕對位移的過程中使用了值。本字段一般只對那些在中斷0x13上可見的有意義。在有分區(qū)的上它必須總是為04總扇區(qū)數(shù)(LargeSector)FAT32FAT12/FAT160BPBFAT表的個數(shù),保留扇區(qū)數(shù),根項數(shù),F(xiàn)AT扇區(qū)數(shù),總的扇區(qū)數(shù),扇區(qū)字節(jié)數(shù),等等。那么多參數(shù)如何利用呢。通過這些參數(shù)可FAT表的開始扇區(qū)數(shù),根的開始扇區(qū)數(shù)。扇區(qū)總數(shù)等等重要的參數(shù)。文件分配表文件分配表是FAT32文件系統(tǒng)的精華所在,因為它是通過簇來對文件以及數(shù)據(jù)進行有效的管理的。那么簇的一開始人們使用的是180kb的軟盤,不久就采用360kb的軟盤,為了組織這些設別上面的數(shù)據(jù),最初的DOS開發(fā)者就設計了一個表,這個表的作用就是指示哪些扇區(qū)屬于哪些文件,哪些扇區(qū)是空閑的。那么可以使得文件可以在不連續(xù)的空間里面,最大限度的利用了磁盤空間。但是后來的360kb的磁盤上有720個扇區(qū),表中的每個記錄只用了一個字節(jié),那么這個表只能標識256則要將表的每個表項擴大。但是如果每個表項用兩個字節(jié),就表示了65536個扇區(qū),這樣將浪費磁盤空間,12FAT表來,124096個值,如果一個表項代表一個扇區(qū)(512字節(jié)),那么這個FAT表能夠處理高達2MB的文件。但是由于磁盤扇區(qū)數(shù)迅速擴大,所以用每個表項來代表一個扇區(qū)來尋找位置則顯得效率低下,所以引入了簇的概念。5122N次冪。最大可以達到32Kb的大小。當然FAT32文件系統(tǒng)的FAT表的每一個表項就是采用32位的。這樣子可以更大的FAT的原012345678911FATFAT表如圖11所示,F(xiàn)AT32文件系統(tǒng)的FAT表的每個表項都是32位的,那么0號簇以及1號簇是系統(tǒng)保留用的,從2號簇開始才是根 12012號簇開始。FAT1232FAT280如圖13,顯示FAT表文件簇鏈原理。拿文件鏈表1來講解。文件鏈表1只占用三個簇,那FAT34,45,50FFFFFFF,5號簇就代表結束了。23都是一樣的道理。這樣就形成了文件和的簇鏈結構。非常清晰的標示了文件或者所占用的簇的塊數(shù),也可以實現(xiàn)對文件的不連續(xù)。文件鏈表1的FAT表象對應值如下表所FAT表的內00000000圖13FAT表簇鏈原 FAT32文件系統(tǒng)僅僅靠文件分配表就能夠管理文件的了嗎?答案是否定的。還必須結合根的管FDT表,即是文件表,用于描述以及文件的名稱,擴展名,屬性,存放的起始位置以及大小等FDT32個字節(jié)。有兩個重要的數(shù)據(jù)結構:短項數(shù)據(jù)結構和長項數(shù)據(jù)結構。14,F(xiàn)AT32文件系統(tǒng)剛剛初始化的時候就只有一個表,也就是根表。這個根什么都沒有。根8512個字節(jié),每個32字節(jié),所16個項。這里還附有兩個數(shù)據(jù)結構。9FAT區(qū)時以扇區(qū)進行管理的,而根區(qū)DATA區(qū)是以簇進行管理的,根0,1簇系統(tǒng)保留沒用,將根命名為第2簇。那么數(shù)據(jù)區(qū)的簇就從2之后開始編號,依次遞增。圖 表的結 的創(chuàng) 的時候是如何創(chuàng)建的,而且又是如何在FDT區(qū)中進行記錄的。圖15FAT32短文件 圖16FAT32長文件 首先看看圖15以及圖16的短文件名 項8個字節(jié)文件名,3個字節(jié)擴展名,8.3格式的文件記錄形式。屬性有說明是 還是文件,還有四種非關鍵性屬性:只讀,隱藏存檔,系統(tǒng)。還包括了文件創(chuàng)建時間日期,文件長度用節(jié)表示,也就說文件最長為4G,大于4G就要分片了。以及文件的起始簇號的地址。只要知道文件的起始簇號的地址,就可以從FAT表的簇鏈結構中找出長文件名unicode10字節(jié)是用于記錄文件名的第1-5的字符,每個字符占用兩個字節(jié)。接著是長文件名屬性標志一定是0x0F,這個是與短文件12unicode6-11的字符,同樣每個字符占用兩個字節(jié),那么最后的節(jié)文件名unicode碼是用于記錄12-13字符的文件名,同樣每個字符占我做了一個測試。我用了一個軟件叫做WinHex,它是16FAT32文件系統(tǒng)最終是要移植到sd卡上面,所以以sd卡為例講解。Sd卡的結構與硬盤類似sdFAT32sd卡什么都沒有,有主要的DBR,F(xiàn)AT,F(xiàn)DTDATAsdMBRMBR,這個我也不清楚。FAT2簇分配給了根0,1簇未使用。根FDT0。sd卡上面創(chuàng)建一個叫做Mysd圖17創(chuàng)建Mysd 情17,在根下出現(xiàn)了兩個項,奇怪,我只創(chuàng)建了一個子,為什么有兩個項呢,原來無論是創(chuàng)建還是文件,在創(chuàng)建短文件名項的同時還要創(chuàng)建長文件名0x0B可以看到第一個為長文件名0x10說明該項是子。看第二個項,第三行開始的,從0x000x0A描述的是文件或者的文件名和擴展名。由于0x20進行填充,最后節(jié)都是0,因為沒有長度,最重要的信息是第四行開始的,偏移量0x14-0x15文件起始簇160x1A-0x1B16位,這個標明了該所處的開始簇號,通過這個簇FAT表中找出該到底占用多少個簇了。18,由于是沒有大小的,所以分給它一個簇,那么Mysd3號簇上面。318MysdFATFAT0xFFFFFF0F,標明簇結束。好,既然這樣,這個子MysdFATFDT表中記錄FDT表放在什么地方了呢?當然文件和就放在了DATAFAT32結構中,DATA區(qū)域是最龐大的。19MysdMysd項中創(chuàng)建了兩個項,這兩個項一個叫做.項,一個叫做..項。分別叫做子項和父項,會發(fā)現(xiàn).項與根的短文件名項中的文件創(chuàng)建日期時間,文件最近修改日期時間,文件長度,簇號等等都一樣的。..項Mysd項創(chuàng)建的同時,也創(chuàng)建了.和..項。圖19 項中的情 非有 是用戶創(chuàng)建的,所以不僅要在 項中記載 項的內容,而且要在分配給的簇中記錄 項與 項之間的關系sd卡格式化。接著在sd卡下面創(chuàng)建文件Mysd.txt。圖20創(chuàng)建Mysd.txt后 的情如同20,同樣的,在根 項的屬性是0x20,屬于歸檔屬性。從第三行開始,從偏移量0x00-0x0A記錄了文件的文件名和擴展名。不足的地方用0x20填充。第四行的偏移量0x1C-0x1F標明文件長度為0,因為剛創(chuàng)建文件什么數(shù)據(jù)都沒有,當然為0。第四行偏移量0x14-0x15,還有偏移量0x1A-0x1B的起始簇號為0,原來文件在剛創(chuàng)建的時候是不分圖21Mysd寫入數(shù)據(jù)之后 的情如同21,發(fā)現(xiàn)第四行的偏移量0x1C-0x1F標明文件長度為7(0x 示0x ),并且起始簇號為3。好,那么看看FAT表中的情況。22MysdFATFAT表中,標明這個文件只占用一個簇,文件長度只有7個字節(jié),但是占用一個簇,這個sd卡的簇(8個扇區(qū))74096FAT32規(guī)定,一個簇只能屬于但是在windows中,很多文件都是大于一個簇的,所以從整體的磁盤利用率來說還是蠻不錯的。只是有FAT324G4G怎么辦,沒辦法只能將文件截斷,每4G進行。我們現(xiàn)在試試將文件的長度大于一個簇。我將Mysd.txt的文件長度變?yōu)榱?k圖

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論