静美隔音窗:振南的znFAT
振南的znFAT
一开始我们先不讲FAT32诸多的技术细节,对于一个刚刚接触FAT32的人来说,了解它的一些由来和发展历程,以及与其相关的知识,我认为是十分有必要的。当然也不乏很多人已经对FAT32有了一定的认识,或者急切想学习FAT32的具体内容,那么您就可以跳过这一章,而直入主题了。
第一节
第二节
在微软的MS-DOS大行其道的时候,Windows已经在研制之中了,Windows1.0在1985年11月发布出来,其实就是一个图形界面的MS-DOS,原来的命令输入方式变为了鼠标点击方式。如图1.0所示为Windows1.0的界面。
虽然Windows1.0已经有了较为华丽的界面,但它的功能与MS-DOS基本上差不多,主要工作就是进行磁盘文件和目录的管理。其实从某种意义上来讲,MS-DOS与早期的Windows并不能算是操作系统,他们在任务管理方面仍然较弱。
Windows继1.0之后又发布了2.0、3.0,尤其是1990年发布的3.0是一个全新的版本,并取得了巨大成功,两年内销售量就达到了1000万份拷贝。随后又相继发布95、98、2000、XP等等,其中95真正使Windows大众化,首次引入了“开始”按钮和任务栏,大大方便了用户的使用,也使其成为了一种标准模式,此后的Windows中仍在延用,直到今日。98在95的基础上进一步改进,这里要说的是在这一版本中引入了较为成熟的FAT32文件系统,并马上体现出了其自身的优势。
纵观微软操作系统产品的发展史,从DOS到Windows,再从Windows1.0到现在的Windows7,规模越来越大,功能也越来越强大,但文件系统在其中的地位从未动摇,并且得到了极大的发展,所以我们研究FAT32文件系统是十分有意义的。
第三节
FAT,字面上的意思是文件分配表(File
其实FAT文件系统早在1977年就已经由比尔·盖茨和马斯·麦当劳发明了,为得是管理磁盘。1980年被添·彼得逊的86-DOS操作系统(86-DOS可以看作是MS-DOS的前身)采用。
FAT文件系统的最基本思想就是使用链式结构来记录文件数据的位置,这样就允许文件数据的存放可以不连续,从而极大的提高了磁盘的利用率。FAT文件系统又分为不同的版本,用后面的数字进行区别,分别有FAT12、FAT16、FAT32,不同的版本在支持的分区容量、簇大小等方面都不尽相同。
FAT12是FAT文件系统中最古老的文件系统了,在DOS3.0之前使用。它采用12位文件分配表,并因此而得名(以后的FAT文件系统都按照这样的方式在命名)。FAT12可以管理的磁盘容量是8M。这在当时,它的磁盘管理能力已经算是很强了,因为当时还没有硬盘,主要还是在软盘上应用。直到现在,我们仍然可以看到FAT12的身影。
FAT16是使用时间最长的FAT文件系统了。在DOS2.0使用的过程中,其实磁盘的容量也在不断扩大,从而造成FAT12无法管理较大容量的磁盘,这样FAT16在DOS3.0中应运而生。除了采用了16位的分区表之外,FAT16和FAT12在其他地方都非常的相似。前期的FAT16管理磁盘的能力实际只有32M,到了1987年DOS4.0的时候,FAT16发展到可以支持128M,随后又到达2G。在整整10年的时间里,存储技术得到突飞猛进的发展,磁盘容量也与日俱增。于是在1997年发布的Windows95OSR2中首次引入了FAT32文件系统,这也是本书的主角。
FAT32文件系统是FAT文件系统的最后一个产品。和它的前辈一样,这种格式采用32位的文件分配表,磁盘的管理能力大大增强。FAT32文件系统最大可以支持2T的磁盘,但在WindowsXP中实际最大只能支持32G。FAT32是对前面FAT文件系统的传承,但并不是简单加长了文件分配表项的长度,而是一个全新的产品。比如FAT32
在后面章节的学习中,您会渐渐为FAT32的巧妙设计赞叹不已!
第四节
在粗略的了解FAT32文件系统之后,您可能要问了,FAT32文件系统再强大,那也是计算机上的事情,与单片机底上的应用又有什么关系呢?在笔记本电脑都是奢侈品的年代,这样的质疑是有道理的,脱离开了计算机,人们确实在日常生活看不到文件系统的存在。
到了今天,嵌入式技术极速发展,手持式设备,如手机、MP3、数码相机、DV等等,比比皆是,FAT32文件系统已经早已挣脱了计算机的束缚,被应用在了更多领域之中。手机、DV中影音文件的存储与读取;MP3中音频文件的录制与播放……您觉得这些应用中是什么在起着重要的作用?那当然是文件系统!而其中占主导地位的就是FAT文件系统,而FAT32就是FAT文件系统中最经典,最强大的一个版本!
在嵌入式设备中,更确切的说,是在嵌入式
那么没有文件系统到底行不行呢?回答是,行!但这样的设备不是很专业的人估计就玩不转了。还拿上面的MP3例子来说,在录音的时候,如果MP3中没有文件系统,那么它可能采用的方式就是把声音数据直接写到存储器的物理扇区中去。这样把它放到操作系统上去之后,操作系统根本就不知道这些声音数据在哪些扇区上,更无法将它们识别为一个文件。所以虽然数据确实在存储器中,但一般人是没办法把它们读出来了。除非你是这方面的高手,知道声音数据记录到了哪些扇区,也知道如何去读取物理扇区,还要知道怎么把这些数据还原为文件,这样的工作估计没几个人会作,即使是在硬件方面很有经验的人,也要研究几天。如果真是这样,那么这样的MP3又有谁会买,MP3也绝不会像今天这样大众化,而可能只会成为少数高手眼中的玄妙之物。
总而言之,文件系统已经广泛应用于各种设备之中,正是因为文件系统的存在才使得众多的电子产品变得越来越普及,连老人和小孩都可以使用自如。那些物理上的数据,在人们面前已经变成了一个文件的图标了,要访问他,只要用手中之笔轻触即可!如图1.1,是PPC上的文件浏览器的界面。
到这里我们已经了解了文件系统的重要了,可以说它是物理设备与我们的上层应用的桥梁,使我们直接以文件的方式看到数据,而不用了解数据在物理设备中的存储情况和诸多细节,让我们把更多精力放在应用层的软件开发和功能的实现上。
这里要说的是,要自己在嵌入式的微处理器上实现FAT32文件系统,也绝非是一件易事,它要求你懂得微处理器的使用和开发方法、存储设备的驱动程序开发、FAT32文件系统的运行机制、硬件及软件的测试方法等等,总之,这已经不是一个简单的Hello
从下一章开始,我们就真正进入到去FAT32文件系统的学习研究中了,了解FAT32文件系统中的各种技术细节以及会遇到哪些问题,大家也可以看到在znFAT中是如何将FAT32文件系统付诸实现的。