第2章-文件系统.ppt

第2章-文件系统

文件系统 文件系统是操作系统为了存储和管理数据,而在存储器(包括软硬盘和光盘等)上建立的一些结构的总和:一般来说,文件系统由操作系统引导区,目录和文件组成。 文件系统主要完成三项功能:跟踪记录存储器上中被耗用的空间和自由空间,维护目录名和文件名,跟踪记录每一个文件的物理存储位置。 不同的文件系统适用于不同的操作系统。有些操作系统只能识别一种文件系统,而有的则可以识别好几种 。 根文件系统 根文件系统就是一种目录结构,它包括Linux启动时所必须的目录和关键性的文件,如Linux启动时需要有init目录下的相关文件,在挂载分区时Linux一定会找/etc/fstab这个挂载文件等,根文件系统中还包括了许多的应用程序如bin目录等,所有这些Linux系统启动所必须的文件都可以成为根文件系统。 Linux启动时,第一个必须挂载的是根文件系统;若系统不能从指定设备上挂载根文件系统,则系统会出错而退出启动。之后可以自动或手动挂载其他的文件系统。因此,一个系统中可以同时存在不同的文件系统。 Linux 根文件系统的目录结构 / :Linux文件系统的入口,处于最高一级的目录。 /bin:用于存放二进制文件的可执行程序。 /boot:用于存放Linux 启动所必需的文件,如内核镜像文件,引导加载器使用的文件LILO和GRUB。 /dev:存放系统的设备文件,用于访问系统资源或设备。 /etc:用于存放系统的各种配置文件。 /home:用于存放系统各个普通用户的主目录。 /lib:用于存放系统共享库文件。 /lost+found:文件系统损坏后找回的文件存放目录。 /mnt:用于挂载其他文件系统。 /root: root 用户的主目录,内容包括:引导系统的必备文件、文件系统的挂载信息、设备特殊文件、系统修复工具和备份工具等。普通用户没有访问权限。 /sbin:存放只有root用户才能运行的系统管理命令。 /tmp:公用的临时文件存放点。 /usr:用来存放供所有用户使用的各种应用程序和数据文件的目录,在该目录中也有对应的/bin、/lib、/etc等目录。 /var:用于存放系统中经常变化的文件。 Linux支持多种文件系统,包括EXT2、EXT3、VFAT、NTFS、ISO9660、JFFS、ROMfs、NFS和PROC等,为了对各类文件系统 进行统一管理,Linux引入了虚拟文件系统VFS(Virtual File System),为各类文件系统提供一个统一的操作界面和应用编程接口。 嵌入式文件系统 文件系统要烧写到存储设备上,在嵌入式Linux应用中,主要的存储设备为 RAM(DRAM、SDRAM)和ROM(常用FLASH存储器),常用的基于存储设备的文件系统类型包括:jffs2,yaffs、 cramfs、 romfs、 ramdisk、 ramfs/tmpfs等。 不同的文件系统类型有不同的特点,因而根据存储设备的硬件特性、系统需求等有不同的应用场合。 基于FLASH的文件系统 Flash是嵌入式系统的主要存储媒介,有其自身的特性。它的写入操作只能把对应位置的1修改为0,而不能把0修改为1(擦除Flash就是把对应存储块的内容恢复为1),因此,一般情况下,向Flash写入内容时,需要先擦除对应的存储区间,这种擦除是以块(block)为单位进行的。 Flash主要有NOR和NAND两种技术。Flash存储器的擦写次数是有限的,NAND闪存还有特殊的硬件接口和读写时序。因 此,必须针对Flash的硬件特性设计符合应用要求的文件系统;传统的文件系统如ext2等,用作Flash的文件系统会有诸多弊端。 在嵌入式Linux下,MTD(Memory Technology Device,存储技术设备)为底层硬件(闪存)和上层(文件系统)之间提供一个统一的抽象接口,即Flash的文件系统都是基于MTD驱动层的。使用MTD驱动程序的主要优点在于,它是专门针对各种非易失性存储器(以闪存为主)而设计的,因而它对Flash有更好的支持、管理和基于扇区的擦除、读/写操作接口。 一块Flash芯片可以被划分为多个分区,各分区可以采用不同的文件系统;两块Flash芯片也可以合并为一个分区使用,采用一个文件系统。即文件系统是针对于存储器分区而言的,而非存储芯片。 (1) JFFS2 JFFS文件系统是由瑞典Axis Communications公司基于Linux2.0的内核为嵌入式系统开发的文件系统。JFFS2是RedHat公司基于JFFS开发的闪存文件系统,最初是针对RedHat公司的嵌入式产品eCos开发的嵌入式文件系统,JFFS2也可用在Linux、uCLinux中。JFFS3正在开发中。 JFFS2: 日志闪存文件系统版本2 (

文档评论(0)

1亿VIP精品文档

相关文档