FAT文件系统与文件装载.doc
《FAT文件系统与文件装载.doc》由会员分享,可在线阅读,更多相关《FAT文件系统与文件装载.doc(76页珍藏版)》请在咨信网上搜索。
1、FAT文件系统与文件装载在建立自己的文件系统之前,为了进行操作系统装载程序的实验,我们选择使用DOS简单的FAT12文件系统,作为存储数据和文件的组织方式。1 文件系统文件系统是操作系统在(磁/U/光)盘上组织文件的方法和存储数据的结构;也指用于存储文件的磁盘分区、或文件系统的种类;还是操作系统中负责管理和存储文件信息的软件模块(文件管理系统)的简称。文件系统是对文件存储器空间进行组织和分配,负责文件存储并对存入的文件进行保护和检索的系统。具体地说,它负责为用户创建文件,存入、读出、修改、转储文件,控制对文件的访问,当用户不再使用时撤销和删除文件等。1.1 操作系统与文件系统每种操作系统都有自
2、己的文件系统,而且往往一种操作系统有多种文件系统类型,并且每种类型又有若干具体格式和多个升级版本。有的操作系统还支持多种文件系统类型,如Windows支持NTFS和FAT,Linux通过VFS(Virtual File Systems,虚拟文件系统)机制支持多种文件系统,如ext2、ext3、ReiserFS、Minix、FAT32、NTFS等。DOS操作系统的文件系统为FAT(File Allocation Table,文件分配表),包括FAT12、FAT16、FAT32和exFAT等多种具体格式,老式Windows是DOS的外壳,当然也支持FAT文件系统。Windows NT系列(包括NT
3、/2000/XP/Vista/7/8)的文件系统为NTFS(New Technology File System,新技术文件系统),版本有v1.0(NT 3.1)、v1.1(NT 3.5)、v1.2(NT 3.51和NT 4.0)、v3.0(NTFS 5.0/Win2000)、v3.1(NTFS 5.1/WinXP、NTFS 5.2/WinServer2003、NTFS 6.0/Vista、NTFS 6.1/WinServer2008和Win7)。Windows NT系列操作系统也支持老式的FAT文件系统。Linux最初使用的是Minix文件系统。为了突破Minix文件系统的局限,Rmy Ca
4、rd于1992年4月在传统的UFS(Unix File System,Unix文件系统)的启发下设计出了ext(extended file system,扩展文件系统)。后来Rmy Card于1993年1月又推出了改进的ext2(second extended filesystem),成为Linux的标准文件系统。Stephen Tweedie设计的带有日志功能的ext3(third extended filesystem)于2001年11月被引入Linux 2.4.15内核,现在也被许多Linux发行版广泛使用。2006年10月10日西奥多周(Theodore Tso)和Mingming C
5、ao(曹明明?)等人又开发出了ext4(fourth extended filesystem),引进了盘区(extent)文件储存方式,以取代ext2/3使用的块映射(block mapping)方式,提高了大型文件的操作效率,2008年10月21日推出的Linux 2.6.28开始提供对ext4文件系统的支持。ReiserFS是Linux的另一种日志型文件系统格式,由Hans Reiser及其公司Namesys于1997年7月23日推出,Linux内核从2.4.1版本(2001年1月30日)开始支持ReiserFS。1.2 磁盘分区磁盘分区(disk partitioning)将硬盘分割成若
6、干逻辑部分(分区,partition),可安装多个操作系统和使用不同的文件系统。在DOS和Windows中,硬盘的分区对应于文件系统中不同的卷(volume),如C:、D:、E:等。由于软盘的容量小,没有分区结构。1引导扇区的构成引导扇区(Boot Sector)是磁盘的第一个物理扇区,由主引导记录(MBR = Master Boot Record)、磁盘分区表(DPT = Disk Partition Table)和引导记录标识符(BRID = Boot Record IDentifier)三部分组成。01BD主引导记录MBR(446B)1BE1CD分区项1(16B)DPT(64B)1CE1
7、DD分区项2(16B)1DE1ED分区项3(16B)1EE1FD分区项4(16B)1FE1FF55 AABRID(2B)引导扇区结构图2分区表项的结构DPT含4个分区表项,每一项占16B,参见下表:分区表项的字段结构偏移量长度含义(值)0x001B分区是否激活(0x80或0)0x011B开始磁头号0x022B开始扇区号(低字节的低6位)和柱面号(其余10位,其中低位字节的高2位为其第9、10位)0x041B分区类型(如:0x06/0x0E = FAT16、0x0B/0x0C = FAT32、0x07 = NTFS、0x05/0x0F = 扩展、0x83 = Linux)0x051B结束磁头号0
8、x062B结束扇区号(低字节的低6位)和柱面号(其余10位,其中低位字节的高2位为其第9、10位)0x084B分区起始地址(相对扇区数)0x0C4B分区大小 (总扇区数)3分区类型PC的分区类型标志数值开发者分区类型数值开发者分区类型0x00IBM空分区3CPowerQuestPqRP(PartitionMagic)0x01微软FAT1264NovellNetWare File System 2860x02微软Xenix root65NovellNetWare File System 3860x03微软Xenix user78Geurt VosXOSL引导装入文件系统0x04微软FAT16 3
9、2MB80Andrew Tanenbaum老Minix文件系统0x05IBM扩展分区(CHS)81Minix文件系统0x06CompaqFAT16B82GNU/SunLinux交换空间/Solaris0x07微软HPFS/NTFS/exFAT83GNU/LinuxLinux文件系统0x08IBMAix84微软休眠0x09IBMAix bootable85GNU/LinuxLinux扩展0x0A微软&IBMOS/2 Boot Manager86微软Legacy FT FAT160x0B微软FAT32(CHS)87微软Legacy FT NTFS0x0C微软FAT32(LBA)88GNU/Linu
10、xLinux无格式文本0x0E微软FAT16(LBA)89GNU/LinuxLinux LVM0x0F微软扩展分区(LBA)8B微软Legacy FT FAT320x11微软隐藏FAT128C微软Legacy FT FAT32 with LBA0x12Compaq康柏诊断(FAT)A0HPHP膝上型电脑诊断分区0x14微软隐藏FAT16 32MBA5FreeBSDBSD slice0x17微软隐藏HPFS/NTFSDEDellDell诊断分区0x1B微软隐藏FAT32EBBe公司BFS(BeOS或Haiku)0x1C微软隐藏FAT32(LBA) EE微软EFI保护分区0x1D微软隐藏FAT16
11、(LBA)EFIntelEFI系统分区(可为FAT文件系统)0x20微软Windows Mobile update XIPFBVMwareVMware VMFS0x23微软Windows Mobile boot XIPFCVMwareVMware VMKCORE0x25微软Windows Mobile IMGFSFDGNU/LinuxLinux RAID auto0x27微软Windows恢复分区(隐藏NTFS)FEIBMIBM IML分区其中:l Xenix是微软公司于1980年为微机推出的一种Unix系统(最后的版本是1989年推出的2.3.4),1987年转让给了SCO公司,后者在其基础
12、上推出了SCO Unix(即现在的SCO OpenServer)。l HPFS(High Performance File System,高性能文件系统)是微软公司于1989年为IBM的操作系统OS/2 1.2推出的一种文件系统,Windows NT 3.13.51支持,但是从Windows NT 4.0后不再支持。l AIX(Advanced Interactive Executive,高级交互执行体/先进交互执行程序)是IBM于1986年推出的一种Unix系统,现在最新的版本是2010年9月推出的7.1。l CHS(Cylinder/Head/Sector,柱面/磁头/扇区)磁盘的一种传统
13、寻址方式。l LBA(Logical Block Addressing,逻辑块寻址)磁盘的一种线性寻址方式,有22b(ATA,1986)、28b(ATA-1,1994)和48b(ATA-6,2003)三种版本。1996年以后推出的硬盘一般都采用了LBA。下面是LBA与CHS的转换公式:LBA = (C*HPC)+H)*SPT+S-1C = LBA/(SPT*HPC)H = (LBA/SPT) % HPCS = (LBA % SPT)+1其中:n HPC = Heads Per Cylinder,柱面磁头数(对28位的LBA一般为16)n SPT = Sectors Per Track,磁道扇区
14、数(对28位的LBA一般为63)l OS/2(Operating System/2,操作系统/第二代)微软与IBM于1987年为IBM的第二代个人计算机系统PS/2(Personal System/2)开发的一种操作系统,最后的版本为2001年12月推出的4.52。4磁盘寻址方式用这种CHS(Cylinder柱面/Head磁头/Sector扇区)方式表示的分区容量是有限的,因为柱面和磁头从0开始编号,扇区 从1开始编号,所以最多只能表示1024个柱面63个扇区256个磁头512B = 8 455 716 864B(8.4GB实际上应该是7.8GB左右)。对容量超过8.4GB的分区,分区结束的C
15、HS一般用其最大值FE FF FF填充,有时也用柱面与1024的模来填充。用4B存储的分区大小,最大为232*512B = 2 147 483 648KB = 2048GB = 2TB。即使使用NTFS文件系统,也不能创建大于2TB的分区,但可以使用动态卷或GPT来创建超过2TB的NTFS卷。由于分区不允许跨柱面(分区粒度,分区的扇区总数加上与前一分区之间的保留扇区数必须是柱面容量= 磁头数*每个柱面的扇区数的整数倍),所以用操作系统进行分区时所得到的分区容量往往不是我们所指定的整数值。为了增加容量,现代硬盘一般使用等密度结构(即外圈磁道的扇区数比内圈磁道的多),大容量磁盘一般采用线性寻址(可
16、突破CHS寻址方式下容量8.4GB限制,硬盘控制器内部的地址翻译器可将老式的CHS参数转换成线性参数)。硬盘的扇区总数不一定是(所设)柱面容量的整数倍,所以磁盘的末尾处常会出现未被分配使用的剩余空间。5GPTGPT(GUID Partition Table,全局唯一标识符分区表)一种新的磁盘分区表标准,最初由Intel公司开发,2010年作为UEFI(Unified Extensible Firmware Interface,统一可扩展固件接口)规范的子集而推出,可突破传统MBR的2TB限制,最大可支持9.4ZB的硬盘和分区。字节的十进制/二进制次方单位缩写英文名中文名次方KBkilobyte
17、 / kibibyte千字节103 / 210MBmegabyte / mebibyte兆字节106 / 220GBgigabyte / gibibyte吉字节109 / 230TBterabyte / tebibyte太字节1012 / 240PBpetabyte / pebibyte拍字节1015 / 250EBexabyte / exbibyte艾字节1018 / 260ZBzettabyte / zebibyte泽字节1021 / 270YByottabyte / yobibyte尧字节1024 / 280GPT方案(LBA的大小为512B,LBA 0=MBR,LBA -1为磁盘的最后
18、一个512B大小的块)支持GPT的操作系统平台类别OS起始版本平台类UnixFreeBSD7.0x86/x64Linux2.5.8Mac OS X10.4.0WindowsVistaSP1x64Server200871.2 扩展分区与逻辑驱动器在主引导扇区的DPT中,最多可以定义4个(基本)分区(卷)。为了引入和管理更多的逻辑驱动器(分区/卷),微软定义了扩展分区(类型值一般为0x0F)。在Windows操作系统中,一般将主引导扇区里DPT的第一个表项作为磁盘的主(基本)分区,第二个表项作为扩展分区。在一个扩展分区中,可包含多个逻辑驱动器。每个逻辑驱动器都有自己的引导扇区和引导记录,分别叫做扩
19、展引导扇区和扩展引导记录(EBR = Extended Boot Record),逻辑驱动器还有自己的扩展分区表。在扩展分区表的4个分区表项中,第1个指向自己的引导扇区,第2个指向下一个逻辑驱动器的EBR,后两个分区表项没有使用。最后一个逻辑驱动器的第2个分区表项的值,必须全为0。DOS/Windows硬盘的分区结构1.3 FAT分区FAT(File Allocation Table,文件分配表)是微软公司为其操作系统DOS和老式Windows所定义的一套文件系统,包括FAT12、FAT16、FAT32和exFAT等多种具体格式。FAT12可支持的最大容量为32MB,用于早期的1.2MB/1.
20、44MB软盘和小容量硬盘,现在已被淘汰。FAT16则可支持4GB的盘,现在一般用于中小容量的U盘。FAT32虽然在理论上最多可以支持128TB的盘,但是由于目前只使用了大小为32位簇字段中的28位,所以允许的最大容量是8TB,但Windows 2000/XP最多只能格式化32GB的盘,如小容量硬盘和较大容量U盘。exFAT(也叫FAT64)支持现代的大容量硬盘、移动硬盘和固态盘,但出现的晚,支持的系统少,而且由于exTAT采用了与NTFS一样的分区类型值(7),造成了一些兼容性问题。Windows NT系列操作系统,一般都采用性能更好的NTFS格式。NTFS支持的最大卷为264-1个簇(Win
21、XP的为232-1簇),若采用默认/最大的簇大小4KB / 64KB,则最大卷为64ZB-4KB / 1YB-64KB(WinXP的为16TB-4KB / 256TB-64KB)。NTFS支持的最大文件的理论值为16EB-1KB,实现值为16TB-64KB。不同版本FAT的比较FAT开发商微软(Compaq)全名文件分配表12位版16位版32位版64位版发布时间1980年8月1984年8月1987年11月1996年8月2006年11月OS版本QDOS 0.11MS DOS 3.0Compaq DOS 3.31Windows 95 OSR2Windows Embedded CE 6.0分区标识0
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- FAT 文件系统 文件 装载
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【精****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【精****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。