- 1、本文档共23页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第3章节 文件系统简介
第3章 文件系统简介 在UNIX族的操作系统中,文件系统占有十分重要的地位,文件的概念涵盖了UNIX设备和操作对象的全部内容,对设备的操作方式几乎可以与对普通文件的操作等价。本章对文件系统进行简单的介绍,主要内容如下: UNIX下文件的内涵。 Linux下的文件系统布局,文件系统的树形结构。 Linux下的普通文件和设备文件。 Linux下虚拟文件系统的含义。 对文件的常用操作方法,文件句柄的含义、open函数、close函数、read函数和write函数的使用及简单实例。 文件操作的高级用法,包含ioctl对特定设备文件进行控制,用函数fcntl控制文件,mmap的用法及fstat获得文件的状态值及状态值的含义。 3.1 Linux下的文件系统 文件系统狭义的概念是一种对存储设备上的数据进行组织和控制的机制。在Linux下(当然包含UNIX),文件的含义比较广泛,文件的概念不仅仅包含通常意义的保存在磁盘的各种格式的数据,还包含目录,甚至各种各样的设备,如键盘、鼠标、网卡、标准输出等,引用一句经典的话“UNIX下一切皆文件”。 3.1.1 Linux下文件的内涵 Linux下的文件系统是对复杂系统进行合理抽象的一个经典的例子,它通过一套统一的接口函数对不同的文件进行操作。例如open函数不仅可以打开ext2类型的文件,还可以打开fat32类型的文件,并且包括如串口设备、显卡等,只不过打开设备的名称不同而已。UNIX下的文件主要分为如下几种: 普通文件: 字符设备文件: 块设备文件: socket文件: 3.1.2 文件系统的创建 在Linux下对磁盘进行操作的工具是fdisk,与Windows下的fdisk功能有些类似,但是命令的格式完全不同。 1.系统分区情况 2.建立分区 3.查看分区是否成功 4.格式化分区 5.挂载分区 6.查看分区挂载情况 3.1.3 挂接文件系统 Linux系统下,要使用一个文件系统需要先将文件系统的分区挂在到系统上。mount命令用于挂接文件,它有很多选项。mount命令的使用格式为: mount –t type mountpoint device –o options 3.1.4 索引节点inode 在Linux下存储设备或存储设备的某个分区格式化为文件系统后,有两个主要的概念来描述它,一个是索引节点(inode),另一个是块(Block)。块是用来存储数据的,索引节点则是用来存储数据的信息,这些信息包括文件大小、属主、归属的用户组、读写权限等。索引节点为每个文件进行信息索引,所以就有了索引节点的数值。 通过查询索引节点,能够快速的找到对应的文件。这就像一般书,存储设备是一本书的整体,块是书的内容,而索引节点相当于一本书的目录,如果要查询某方面的内容,可以通过查询前面的目录,快速的获得内容的信息,例如位置,大小等等。 3.1.5 普通文件 普通文件是指在硬盘、CD、U盘等存储介质上的数据和文件结构。在本节中所指的文件系统是一个狭义的概念,仅仅按照普通文件在磁盘中的组织方式的不同来区分。 普通文件的概念与Windows下面文件的概念是相同的。可以对文件进行打开、读出数据、写入数据、关闭、删除等操作。 在Linux下,目录也作为一种普通文件存在。 3.1.6 设备文件 Linux下的用来表示所支持设备的,每个设备文件除了设备名,还有三个属性:即类型、主设备号、次设备号。例如查看sdb1,可以获得磁盘分区sdb1的属性,属性的含义如下: debian:~# ls /dev/sdb1 -l brw-rw---- 1 root disk 8, 17 2008-10-02 04:49 /dev/sdb1 设备类型: 主设备号: 次设备号: 备文件名: 1.字符设备与块设备 2.设备文件的创建 3.设备文件的简单操作 3.1.7 虚拟文件系统VFS Linux的文件系统是由虚拟文件系统作为媒介搭建起来的,虚拟文件系统VFS(virtual File Systems)是Linux内核层实现的一种架构,为用户空间提供统一的文件操作接口。它在内核内部为不同的真实文件系统提供的一致的抽象接口。 1.文件系统类型 2.超级块 3.文件操作 3.1.7 虚拟文件系统VFS 3.2 文件的通用操作方法 本节介绍文件的通用操作方法,介绍如何建立文件、打开文件、读取和写入数据,最后介绍了一些常用的文件控制函数,包括stat()、fctnl()和ioctl()。本节中的例子大多数指的是磁盘中的文件操作,但是其操作方法并不限于此,对设备文件同样有效。 3.2.1 文件描述符 在Linux下用文件描述符来表示设备文件和普通文件。文件描述符是一个整型的数据,所有对文件的操作都通过文件描述符实现。 文件
文档评论(0)