09 文件系统.ppt
上传人:qw****27 上传时间:2024-09-12 格式:PPT 页数:87 大小:2.4MB 金币:15 举报 版权申诉
预览加载中,请您耐心等待几秒...

09 文件系统.ppt

09文件系统.ppt

预览

免费试读已结束,剩余 77 页请下载文档后查看

15 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

文件系统本章主要内容目录Linux透明的支持许多不同的文件系统,将各种安装的文件和文件系统以一个完整的虚拟文件系统的形式呈现给用户。将文件系统的操作和管理纳入统一的框架当中来,使得内核的文件系统接口,如同标准的的文件系统“总线”,让用户通过同一组系统调用来管理和操作不同类型文件系统上的文件。这个统一的、抽象的、虚拟的文件系统接口,被称为VFS(virtual组标准的文件操作接FileSystemSwitch),主要包含一口。ntfs用户访问磁盘文件系统时,对于目录树下的访问,最终将转换成对这一部分物理磁盘的访问对于设备文件的访问,最终将转换成对于对于驱动程序的访问。图2Linux文件系统层次图2文件系统类型2.1romfs文件系统romfs文件系统结构romfs映像文件开始的8个字节存放了ASCII码“-ROM1FS-”,后面存放了这个文件系统的字节数。checksum存放从文件头开始的512个字节的校验码。然后是文件系统的卷标名称,该名称以ASCII值为0的字符结尾,所占用的空间为16字节的整数倍。后面存放各个文件的头部结构如表9-2所示。表2romfs中的文件头结构spec.info域主要有如下几种情况:4:块设备,spec.info域内容为各16bit的主、从设备号5:字符设备,spec.info域的内容无效,设置为06:网络socket套接字spec.info域的内容无效,设置为07:fifo管道文件,spec.info域的内容无效,设置为02.1romfs文件系统在主机的/romfs目录下生成需要的目录结构利用genromfs工具,将/cygdrive/d/aaaa/uClinux-44b0ii/romfs目录生成ROMdisk的romfs映像文件romfs.imggenromfs–v–V"ROMdisk"-f/cygdrive/d/aaaa/images/romfs.img–d/cygdrive/d/aaaa/uClinux-44b0ii/romfs将romfs.img作为初始化数据连接到Linux内核当中。使用romfs的文件系统的时,可采用mount命令直接将其挂接到合适的目录下,例如(假设/dev/ram0是romfs文件系统的设备):mount-tromfs/dev/rom0/var2.2ramfs文件系统使用ramdisk:ramdisk的配置项是/config/.config文件中的CONFIG_USER_RAMIMAGE_RAMFS128(128K)。ramdisk的加载过程包含在/vendors/micetek/44b/rc文件中:bin/expand/etc/ramfs.img/dev/ram0mount-text2/dev/ram0/var2.3JFFS与JFFS2文件系统JFFS存储格式JFFS是一个日志结构的文件系统。只有一种文件节点,它通过jffs_raw_inode这个结构进行描述。每个这样的节点都关联到某个文件上,其中包含了一个简单的头部、辅助信息以及存储的数据。存储的辅助信息包括通常所记录的文件inode信息(如uid,gid等)及所关联的文件名。删除文件时,在辅助信息存放的地方设置一个已删除标记,被删除文件的Flash块都会加上这个已删除标记,在该文件的文件句柄释放后,这些节点就成为废弃节点了。更新文件的时,新的文件存放的节点会添加到所有已经使用的存储空间的末尾,旧版本的文件也会被废弃,等待在回收空间的时候重新分配利用。文件系统操作的实施过程读取文件目录结构可以通过mount时生成的信息获得,cd和rmdir等目录操作都可以直接根据这些信息来确定如何操作。读取文件时,利用mount时生成的物理地址将指定的内容读入到缓存区中。改变属性例如改变文件的属主(chown命令)和操作权限(chmod命令)等操作,只需要将一个记录新的信息的节点写到Flash已利用的存储空间的末尾,然后将旧节点标记为废弃节点即可。空间回收同时,系统也自动从所有存储块中的第一个开始进行分析,不断将废弃的节点回收,将尚在使用的节点进行合并,最终合成出整个的——块废弃的Flash存储块,这样就可以将这一整块存储块的内容一次性擦除,成为新的空闲块。缺陷JFFS不支持对数据进行压缩之后存储。而在嵌入式系统中,如果数据可以得到最大限度的压缩,可以提高资源的利用率,提高性能、节省成本。JFFS2的节点头部中增加了一些新的信息,包括CRC校验码和节点类型等。由于JFFS空间回收方式的缺陷,在JFFS2中,所有的存储节点都不可以跨越Flash的块界限了。JFFS2有3种节点类型了,分别用于表示擦除块的标记、普