【正文】
er the data. 03h 8 OEM name string (of OS which formatted the disk). 0Bh 2 Bytes per sector, nearly always 512 but can be 1024,2048 or 4096. 0Dh 1 Sectors per cluster, valid number are: 1,2,4,8,16,32,64 and 128, but a cluster size larger than 32K should not occur. 0Eh 2 Reserved sectors (number of sectors before the first FAT including the boot sector), usually 1. 10h 1 Number of FAT39。包括:簇大小,根目錄項(xiàng)數(shù)目, FAT表大小,磁盤(pán)參數(shù)(每道扇區(qū)數(shù),磁頭數(shù)),文件卷中的扇區(qū)總數(shù),簇編號(hào)長(zhǎng)度等 ?邏輯扇區(qū)號(hào):三元組(柱面號(hào),磁頭號(hào),扇區(qū)號(hào))- 一個(gè)文件卷中從 0開(kāi)始對(duì)每個(gè)扇區(qū)編號(hào),優(yōu)點(diǎn):屏蔽了物理磁盤(pán)參數(shù)的不同 ?允許同時(shí)訪問(wèn)的文件卷數(shù)目上限可以由 LASTDRIVE= 語(yǔ)句指定 ?簇 (cluster):由若干個(gè)扇區(qū)組成。 例如, FAT12的簇標(biāo)識(shí)為 12位(二進(jìn)制數(shù)),這限制了它的單個(gè)分區(qū)最多只能存儲(chǔ) 2 12( =4096)個(gè)簇,而 FAT 12在 Windows 2022/XP中的簇大小在 512B與 8KB之間,這意味著 FAT12卷的大小至多只有 32M。1 2022/8/18 操作系統(tǒng) 第四章 文件系統(tǒng) ?FAT文件系統(tǒng) ?NTFS文件系統(tǒng) ?Windows文件系統(tǒng)驅(qū)動(dòng)程序( FSD) 知識(shí)是需要沉淀的;思想也是在不斷的學(xué)習(xí)、磨練中走向成熟的;而技術(shù)也是在不斷的創(chuàng)造中開(kāi)拓的 2 2022/8/18 操作系統(tǒng) ?FAT( File Allocation Table,文件分配表)文件系統(tǒng)是為 DOS設(shè)計(jì)的文件系統(tǒng)。為了向后兼容,也為了方便用戶升級(jí), Windows 仍然提供對(duì) FAT的支持 ?每一種 FAT文件系統(tǒng)都用一個(gè)數(shù)字來(lái)標(biāo)識(shí)磁盤(pán)上簇號(hào)的位數(shù)。 ?FSD: \Winnt\System32\Drivers\ FAT文件系統(tǒng) 3 2022/8/18 操作系統(tǒng) 多級(jí)目錄,無(wú)用戶訪問(wèn)權(quán)限控制 磁盤(pán)文件卷結(jié)構(gòu) FAT12與 FAT16 文件分配表1引導(dǎo)區(qū) 文件分配表2 根目錄 其 他 目 錄 和 文 件4 2022/8/18 操作系統(tǒng) ?文件卷 (volume)信息 :記錄在引導(dǎo)記錄的扇區(qū)中。在一個(gè)文件卷中從 0開(kāi)始對(duì)每個(gè)簇編號(hào)。s (nearly always 2). 11h 2 Maximum number of root directory entries. 13h 2 Total number of sectors (for small disks only, if the disk is too big this is set to 0 and offset 20h is used instead). 15h 1 Media descriptor byte, pretty meaningless now. 16h 2 Sectors per FAT. 18h 2 Sectors per track. 1Ah 2 Total number of heads/sides. 1Ch 4 Number of hidden sectors (those preceding the boot sector). 20h 4 Total number of sectors for large disks. 24h 26 Either extended BPB or machine code. 3Eh 448 Machine code. 1FEh 2 Boot Signature AA55h. FAT12與 FAT16 6 2022/8/18 操作系統(tǒng) ? 每個(gè) FAT表項(xiàng)所占位數(shù)是 簇編號(hào) 的位數(shù),其值是(以 FAT12為例): ? 0:表示該簇空閑 ? FF7h:物理壞扇區(qū) ? FF8h~FFFh:表示該簇是文件的最后一個(gè)簇 ? 其他值:表示該簇被文件占用,而且表項(xiàng)中的值是文件下一個(gè)簇的編號(hào)。文件卷中的每個(gè)簇均對(duì)應(yīng)一個(gè) FAT表項(xiàng),文件分配采用鏈?zhǔn)椒峙浞椒ā? ?若目錄中包含的文件數(shù)目較多,則搜索效率低。 ?在目錄項(xiàng)中,若第一個(gè)字節(jié)為 E5h,則表示空目錄項(xiàng);若為 05h,則表示文件名的第一個(gè)字符為 E5h。根目錄下的文件數(shù)目不再受最多 256的限制。 ?也支持長(zhǎng)文件名格式 ?無(wú)法支持高級(jí)容錯(cuò)特性,不具有內(nèi)部安全特性,因而仍然無(wú)法達(dá)到高性能文件系統(tǒng)的要求 FAT32