目 录 1 文件系统概述... 1 copyright paper51.com 2 Linux文件系统... 1 内容来自www.paper51.com 2.1 Linux支持的文件类型... 1 内容来自www.paper51.com
2.2 Linux文件的结构... 2 paper51.com 2.3 Linux支持的文件系统... 3 内容来自论文无忧网 www.paper51.com 2.4 文件管理的权限... 4 http://www.paper51.com 3 设计简单的二级文件系统... 5 内容来自论文无忧网 www.paper51.com 3.1 系统原型的功能... 5 paper51.com 3.2 系统功能流程分析... 6 内容来自论文无忧网 www.paper51.com 3.3 运行示例及结果... 7 paper51.com 3.4 数据结构... 8 paper51.com 3.5程序实现... 10 内容来自www.paper51.com 3.5.1 命令识别... 10 paper51.com 3.5.2 索引节点内容获取... 11 内容来自www.paper51.com
3.5.3 创建新文件... 12 http://www.paper51.com 4.总结... 13 内容来自www.paper51.com 参考文献... 14 http://www.paper51.com 致 谢... 14 paper51.com
http://www.paper51.com 1 文件系统概述 http://www.paper51.com 计算机的资源包括硬件资源和软件资源,而操作系统需要对这些资源进行有效管理,这就遇到了管理机制和管理效率的问题。早期的管理由于受硬件资源的限制,只能用卡片或纸带来存放程序或数据,这种方式无法做到透明存取,限制了计算机的处理能力和CPU等硬件的利用率。大容量直接存取的磁盘存储器以及顺序存取的磁带存储器的出现,为程序和数据的透明存取提供了物质基础,文件系统也因此出现了。文件系统无需查找文件存放的物理结构,只需根据文件名就可以自动完成相应文件的有关操作。例如:负责为用户建立、撤销、读写、修改和复制文件,还负责完成对文件的按名存取和进行存取控制。文件系统具有友好用户接口,对用户透明,文件可以被多个用户或进程共享,可存储大量信息的特点[1]。文件系统出现使得软硬件资源管理的效率实现了极大地提高。 copyright paper51.com Linux操作系统采用的文件管理方式与人们熟悉的Windows存在着极大的差异。windows中的树型结构的根就是磁盘分区的盘符,有几个分区就有几个树型结构,他们之间的关系是并列的。而Linux不使用设备标识符,通过根目录形成一种树形结构。整个系统有一个“根”(/),其他的目录或者文件都依附于这个唯一的根生成。除此之外,Linux文件系统还有几个特别之处:首先,它管理的是无结构的字符流式的文件,文件可以动态增减。其次,文件可设置访问权限以受到很好的保护。再次,外部设备都被看作文件,文件系统可以忽略设备特性,对其操作更加简洁。Linux具有开源特点,融入了许多程序员的思想,文件管理的功能也不断丰富和完善。 copyright paper51.com 本文第一部分简要介绍Linux文件类型。第二部分,介绍文件的结构和存取。第三部分,介绍Linux支持的文件系统。第四部分,讨论文件管理的权限。最后通过在RedHat Linux下用C++设计一个简单的二级文件系统,实现目录及文件的创建删除,打开关闭以及读写操作,以期对文件管理进行深入的理解。 内容来自www.paper51.com 2 Linux文件系统 内容来自www.paper51.com 2.1 Linux支持的文件类型 http://www.paper51.com
Linux操作系统支持普通文件、目录文件、设备文件及符号链接文件等[2]。我们可以通过ls-l和ls –lh等命令查看文件的类型。 内容来自www.paper51.com 文件类型 内容来自论文无忧网 www.paper51.com 标志 内容来自www.paper51.com 释义 内容来自论文无忧网 www.paper51.com
普通文件 http://www.paper51.com - http://www.paper51.com 没有进行结构化,仅仅作为有序的字节序列提交给应用程序处理。 内容来自www.paper51.com 目录文件 内容来自论文无忧网 www.paper51.com
d 内容来自论文无忧网 www.paper51.com
目录文件对数据进行结构化,它由成对的I节点号/名构成。 http://www.paper51.com 设备文件 内容来自www.paper51.com c、d http://www.paper51.com Linux把所有设备都当作文件来管理,便于实现设备无关性。 paper51.com
符号链接文件 paper51.com
l http://www.paper51.com 符号链接是一个指针,指向文件在文件系统中的位置。 内容来自论文无忧网 www.paper51.com
表1 Linux支持的文件类型 内容来自论文无忧网 www.paper51.com
内容来自www.paper51.com 图1 查看Linux支持的文件类型 内容来自论文无忧网 www.paper51.com
2.2 Linux文件的结构 http://www.paper51.com 文件结构是文件存放在磁盘等存贮设备上的组织方法。主要体现在对文件和目录的组织上。目录提供了管理文件的一个方便而有效的途径。 copyright paper51.com Linux使用标准的目录结构,在安装的时候,安装程序就已经为用户创建了文件系统和完整而固定的目录组成形式,并指定了每个目录的作用和其中的文件类型。 内容来自论文无忧网 www.paper51.com
内容来自论文无忧网 www.paper51.com 图2 Linux标准文件布局[2] paper51.com Linux采用树型结构。最上层是根目录,其他的所有目录都是从根目录出发而生成的。虽然微软的DOS和windows也采用树型结构,但是在DOS和 windows中树型结构的根是磁盘分区的盘符,有几个分区就有几个树型结构,他们之间是并列的关系。在Linux中,无论操作系统管理几个磁盘分区,这样的目录树只有一个,可见在结构上各个磁盘分区上的树型目录不一定是并列的。例如:一块分成4个分区的硬盘,分别是/;/boot;/usr和windows下的fat 。对于/和/boot或者/和/usr,是从属关系;对于/boot和/usr,是并列关系。如果把windows下的fat分区挂载到/mnt/winc下,对于/mnt/winc和/usr或/mnt/winc和/boot来说,它们是从属于目录树上没有任何关系的两个分支[3]。 copyright paper51.com Linux是一个多用户系统,它制定一个固定的目录规划有助于对系统文件和不同的用户文件进行统一管理。 copyright paper51.com
/bin 二进制可执行命令 http://www.paper51.com
/dev 设备特殊文件 http://www.paper51.com
/etc 系统管理和配置文件 paper51.com /home 用户主目录的基点 内容来自论文无忧网 www.paper51.com /lib 标准程序设计库,又叫动态链接共享库,类似windows里的.dll文件 paper51.com
/sbin 系统管理命令,存放的是系统管理员使用的管理程序。 paper51.com /tmp 临时文件存储点 内容来自www.paper51.com /root 系统管理员的主目录 内容来自www.paper51.com /mnt 可临时挂载其他的文件系统 内容来自论文无忧网 www.paper51.com
/proc 虚拟的目录,是系统内存的映射,可直接访问这个目录来获取系统信息。 内容来自论文无忧网 www.paper51.com /var 某些大文件的溢出区,如各种服务的日志文件。 copyright paper51.com /usr 最庞大的目录,存放应用程序和大部分文件。 http://www.paper51.com |