第17章Linux文件系统_第1页
第17章Linux文件系统_第2页
第17章Linux文件系统_第3页
第17章Linux文件系统_第4页
第17章Linux文件系统_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第第1717章章 LinuxLinux文件系统文件系统Linux系统的一个重要特点就是系统的一个重要特点就是“一切都是文件一切都是文件”,从,从这个特点看出文件的重要性。与其他系统一样,文件的管理这个特点看出文件的重要性。与其他系统一样,文件的管理是通过文件系统实现的。是通过文件系统实现的。Linux的文件系统不仅具备普通的的文件系统不仅具备普通的文件管理功能,还有许多特殊的功能,本章从文件系统的基文件管理功能,还有许多特殊的功能,本章从文件系统的基本概念入手讲解本概念入手讲解Linux文件系统,主要内容如下:文件系统,主要内容如下:Linux系统如何管理文件系统如何管理文件文件系统的工作原理

2、文件系统的工作原理常见的本地文件系统常见的本地文件系统网络文件系统网络文件系统内核映射文件系统内核映射文件系统17.1 Linux17.1 Linux文件管理文件管理在介绍文件系统原理之前,读者首先对文件以及文件的在介绍文件系统原理之前,读者首先对文件以及文件的管理应该有初步认识。管理应该有初步认识。Linux系统的文件管理非常灵活,而系统的文件管理非常灵活,而且提供强大的功能,本节介绍且提供强大的功能,本节介绍Linux文件管理的基本概念。文件管理的基本概念。文件和目录的概念文件和目录的概念在进入本章内容之前,首先给出在进入本章内容之前,首先给出Linux系统里面文件和系统里面文件和目录相关

3、的几个概念。目录相关的几个概念。文件系统是磁盘上特定格式的文件块集合,操作系统通文件系统是磁盘上特定格式的文件块集合,操作系统通过特定的结构可以方便的查找和访问集合内某个磁盘块。过特定的结构可以方便的查找和访问集合内某个磁盘块。文件是建立在文件系统概念上的,是存储在文件系统中文件是建立在文件系统概念上的,是存储在文件系统中一组磁盘块数据的命名对象。一个文件可以是空文件(没有一组磁盘块数据的命名对象。一个文件可以是空文件(没有占用磁盘块),也可以由任意多个磁盘块(由文件系统限制占用磁盘块),也可以由任意多个磁盘块(由文件系统限制)组成。)组成。17.1.2 17.1.2 文件的结构文件的结构文件

4、是文件是Linux系统处理数据的基本单位,实际上,系统处理数据的基本单位,实际上,Linux系统所有的数据以及其他实体都是按照文件组织的。系统所有的数据以及其他实体都是按照文件组织的。本节介绍文件相关的知识。本节介绍文件相关的知识。1文件的构成文件的构成2文件的命名方法文件的命名方法3文件名通配符文件名通配符17.1.3 17.1.3 文件的类型文件的类型Linux系统按照文件中数据的特点对文件划分不同的类系统按照文件中数据的特点对文件划分不同的类别,称作文件类型。文件划分类型后,系统处理文件可以分别,称作文件类型。文件划分类型后,系统处理文件可以分类处理。应用程序按照系统划分的文件类型处理文

5、件,可以类处理。应用程序按照系统划分的文件类型处理文件,可以提高工作效率。提高工作效率。Linux内核把文件类型归类如下:内核把文件类型归类如下:1普通文件普通文件2文本文件文本文件3二进制文件二进制文件4目录目录5设备文件设备文件17.1.4 17.1.4 文件系统的目录结构文件系统的目录结构Linux系统继承了系统继承了UNIX系统的特点,文件系统的目录系统的特点,文件系统的目录有约定的结构,并且每个目录也有约定的功能定义。在有约定的结构,并且每个目录也有约定的功能定义。在Linux系统中,除了根目录(系统中,除了根目录(/)以外,所有的磁盘分区和设)以外,所有的磁盘分区和设备都是组织在文

6、件系统里的,根目录(备都是组织在文件系统里的,根目录(/)是所有文件和目)是所有文件和目录的开始。录的开始。Linux系统有一种特殊的文件,叫做链接文件,链接文系统有一种特殊的文件,叫做链接文件,链接文件内保存了被链接文件的存放路径,链接文件可以存放在任件内保存了被链接文件的存放路径,链接文件可以存放在任意路径下。通过链接文件方便了用户访问某个文件,同时也意路径下。通过链接文件方便了用户访问某个文件,同时也给脚本编写带来便利,在脚本中可以指定访问一个确切的文给脚本编写带来便利,在脚本中可以指定访问一个确切的文件名,这个文件是个链接文件,链接到具体的文件,只需要件名,这个文件是个链接文件,链接到

7、具体的文件,只需要根据不同情况修改链接文件而不需要修改脚本。链接文件分根据不同情况修改链接文件而不需要修改脚本。链接文件分为符号链接和硬链接两种:为符号链接和硬链接两种:1符号链接符号链接2硬链接硬链接17.1.4 17.1.4 文件系统的目录结构文件系统的目录结构17.1.5 17.1.5 文件和目录的存取权限文件和目录的存取权限Linux系统提供系统提供chmod命令设置文件的访问权限。只有命令设置文件的访问权限。只有文件主和超级用户可以使用文件主和超级用户可以使用chmod修改文件的访问权限。修改文件的访问权限。chmod命令在执行的时候会检查文件主和调用程序的用户命令在执行的时候会检查

8、文件主和调用程序的用户ID,通过比较判断是否能执行修改权限操作。,通过比较判断是否能执行修改权限操作。chmod命令提供命令提供了两种修改文件访问权限的方式如下:了两种修改文件访问权限的方式如下:1符号方式符号方式2数字方式数字方式17.1.6 17.1.6 文件系统管理文件系统管理多数存储设备(如硬盘和多数存储设备(如硬盘和Flash)可以分成多个分区,)可以分成多个分区,每个分区可以有不同类型的文件系统。在每个分区可以有不同类型的文件系统。在Linux系统中,文系统中,文件系统可以根据需要随时装载。在系统刚启动时候,只有根件系统可以根据需要随时装载。在系统刚启动时候,只有根文件系统被安装上

9、。根文件系统的文件主要是保证系统正常文件系统被安装上。根文件系统的文件主要是保证系统正常运行的操作系统的代码文件,以及若干语言编译程序、命令运行的操作系统的代码文件,以及若干语言编译程序、命令解释程序和相应的命令处理程序等构成的文件,此外还有大解释程序和相应的命令处理程序等构成的文件,此外还有大量的用户文件空间。根文件系统一旦安装上,在整个系统运量的用户文件空间。根文件系统一旦安装上,在整个系统运行过程中是不能卸下的,它是系统的基本部分。行过程中是不能卸下的,它是系统的基本部分。其他文件系统(例如光盘文件系统)可以根据需要作其他文件系统(例如光盘文件系统)可以根据需要作为子系统动态安装到主系统

10、中。为子系统动态安装到主系统中。/mnt目录是为挂载文件系统目录是为挂载文件系统设置的。挂载文件系统是很简单的,对于没有格式化的分区设置的。挂载文件系统是很简单的,对于没有格式化的分区首先是格式化:首先是格式化:mkfs -c /dev/hda117.2 Linux17.2 Linux文件系统原理文件系统原理文件系统通过把存储设备划分成块,然后把文件分散文件系统通过把存储设备划分成块,然后把文件分散存放在文件块的方式把数据存储在设备中。文件系统的管理存放在文件块的方式把数据存储在设备中。文件系统的管理核心是对文件块的管理。文件系统要维护每个文件的文件块核心是对文件块的管理。文件系统要维护每个文

11、件的文件块分配信息,而且分配信息本身也要存储在存储设备上。不同分配信息,而且分配信息本身也要存储在存储设备上。不同的文件系统有着不同的文件块分配和读取方法。的文件系统有着不同的文件块分配和读取方法。通常有两种文件系统分配策略:块分配(通常有两种文件系统分配策略:块分配(block allocation)和扩展分配()和扩展分配(extention allocation)。块分配是)。块分配是每当文件大小改变的时候重新为文件分配空间,扩展分配是每当文件大小改变的时候重新为文件分配空间,扩展分配是预先给文件分配好空间,只有当文件超出预分配的空间时候预先给文件分配好空间,只有当文件超出预分配的空间时

12、候一次性为文件分配连续的块。一次性为文件分配连续的块。Linux支持众多文件系统,实际的文件系统块分配算法支持众多文件系统,实际的文件系统块分配算法非常复杂,文件系统直接影响操作系统的稳定性和可靠性。非常复杂,文件系统直接影响操作系统的稳定性和可靠性。Linux的文件系统可以大致分成非日志文件系统和日志文件的文件系统可以大致分成非日志文件系统和日志文件系统。系统。17.2.1 17.2.1 非日志文件系统非日志文件系统日志是记录文件系统操作的手段,非日志文件系统不记日志是记录文件系统操作的手段,非日志文件系统不记录文件系统的更新操作。记录日志有很多有点,但是非日志录文件系统的更新操作。记录日志

13、有很多有点,但是非日志文件系统通常也工作稳定。在某些情况下,非日志文件系统文件系统通常也工作稳定。在某些情况下,非日志文件系统存在不少问题。如写入文件操作,首先是更新文件的磁盘分存在不少问题。如写入文件操作,首先是更新文件的磁盘分区占用信息区占用信息meta-data,然后写入文件内容。如果恰巧在更新,然后写入文件内容。如果恰巧在更新文件文件meta-data信息还没有写入文件内容的时候,机器发生意信息还没有写入文件内容的时候,机器发生意外断点情况,会造成严重后果。读取未写入完成的文件会造外断点情况,会造成严重后果。读取未写入完成的文件会造成数据不一致的结果。成数据不一致的结果。Linux系统

14、启动的时候会使用系统启动的时候会使用fsck程序检查磁盘。程序检查磁盘。fsck程程序根据序根据/etc/fstab文件描述的文件系统检查文件系统的文件描述的文件系统检查文件系统的meta-data信息是有效的。系统关闭的时候仍然会调用信息是有效的。系统关闭的时候仍然会调用fsck程序把所程序把所有文件系统的缓冲数据写入到物理设备,并确认文件系统被有文件系统的缓冲数据写入到物理设备,并确认文件系统被彻底卸载。彻底卸载。17.2.2 17.2.2 日志文件系统日志文件系统日志文件系统是在传统的非日志文件系统上加入了记日志文件系统是在传统的非日志文件系统上加入了记录文件系统操作日志功能。日志文件系

15、统的设计思想是把文录文件系统操作日志功能。日志文件系统的设计思想是把文件系统的操作写入日志记录,在磁盘分区保存日志记录。使件系统的操作写入日志记录,在磁盘分区保存日志记录。使用日志文件系统最大的好处是可以在系统发生灾难如掉电的用日志文件系统最大的好处是可以在系统发生灾难如掉电的时候最大限度保证数据的完整性。时候最大限度保证数据的完整性。对日志文件系统的文件做写操作之前,首先是操作日对日志文件系统的文件做写操作之前,首先是操作日志文件。如果恰巧发生断电故障,重新启动计算机后,志文件。如果恰巧发生断电故障,重新启动计算机后,fsck程序会根据日志记录恢复发生故障前的数据。使用日志文件程序会根据日志

16、记录恢复发生故障前的数据。使用日志文件系统后,文件系统所有操作都会记录到日志。系统每间隔一系统后,文件系统所有操作都会记录到日志。系统每间隔一段时间会把更新后的段时间会把更新后的meta-data和文件内容从缓冲区写入磁和文件内容从缓冲区写入磁盘。与非日志文件系统不同的是,在更新盘。与非日志文件系统不同的是,在更新meta-data之前,之前,系统仍然会向日志文件写入一条记录。系统仍然会向日志文件写入一条记录。17.3 17.3 常见的常见的LinuxLinux文件系统文件系统在了解了文件系统的原理和管理方法后,本节介绍几在了解了文件系统的原理和管理方法后,本节介绍几种实际应用的文件系统,包括

17、在种实际应用的文件系统,包括在PC机上应用广泛的机上应用广泛的ext2和和ext3文件系统,以及嵌入式开发最常见的文件系统,以及嵌入式开发最常见的JFFS文件系统。文文件系统。文件系统的实现虽然不同,但是核心的思想基本是一致的,不件系统的实现虽然不同,但是核心的思想基本是一致的,不同的文件系统考虑的侧重点不同。了解常见的文件系统有助同的文件系统考虑的侧重点不同。了解常见的文件系统有助于嵌入式于嵌入式Linux系统学习。系统学习。17.3.1 ext217.3.1 ext2文件系统文件系统ext2文件系统是文件系统是Linux系统使用最广泛的文件系统。它系统使用最广泛的文件系统。它的设计思想是由

18、一系列逻辑上线性排列的数据块构成,每个的设计思想是由一系列逻辑上线性排列的数据块构成,每个数据块大小相同。所有的数据块被划分成若干个分组,每个数据块大小相同。所有的数据块被划分成若干个分组,每个组包含相同个数的数据块,整个文件系统的布局。组包含相同个数的数据块,整个文件系统的布局。17.3.2 ext317.3.2 ext3文件系统文件系统ext3文件系统直接从文件系统直接从ext2文件系统发展来的,完全兼容文件系统发展来的,完全兼容ext2文件系统。目前文件系统。目前ext3文件系统已经很稳定,用户可以直文件系统已经很稳定,用户可以直接过渡到接过渡到ext3文件系统。除增加了日志文件功能外,

19、文件系统。除增加了日志文件功能外,ext3文文件系统的结构与件系统的结构与ext2文件系统完全相同。文件系统完全相同。ext3既可以仅对既可以仅对meta-data进行日志操作,也可以同时对文件数据块做日志。进行日志操作,也可以同时对文件数据块做日志。具体来说,具体来说,ext3提供日志、预定和写回三种日志模式。提供日志、预定和写回三种日志模式。日志(日志(Journal )模式:)模式:预定(预定(Ordered)模式:)模式:写回(写回(Writeback)模式:)模式: JDB提供了日志记录、原子操作和事务三种接口方式,提供了日志记录、原子操作和事务三种接口方式,功能如下:功能如下:日志

20、记录。日志记录。原子操作。原子操作。事务。事务。17.3.3 ReiserFS17.3.3 ReiserFS文件系统文件系统与与ext3文件系统不同,文件系统不同,ReiserFS文件系统是一个完全重文件系统是一个完全重新设计的文件系统。新设计的文件系统。ReiserFS文件系统适合大数据量的存储文件系统适合大数据量的存储需求,可以轻松管理超大文件。需求,可以轻松管理超大文件。ReiserFS借鉴了面向对象思借鉴了面向对象思想,该文件系统分成语义层和存储层。其中,语义层用来管想,该文件系统分成语义层和存储层。其中,语义层用来管理命名空间和接口定义,存储层管理具体的磁盘空间。语义理命名空间和接口

21、定义,存储层管理具体的磁盘空间。语义层解析对象名然后通过键与存储层联系,存储层通过键确定层解析对象名然后通过键与存储层联系,存储层通过键确定数据在磁盘上的存储位置。在数据在磁盘上的存储位置。在ReiserFS文件系统中,键的值文件系统中,键的值是唯一确定的。以下是语义层和存储层的详细介绍。是唯一确定的。以下是语义层和存储层的详细介绍。1语义层语义层2存储层存储层17.3.3 ReiserFS17.3.3 ReiserFS文件系统文件系统17.3.4 JFFS17.3.4 JFFS文件系统文件系统JFFS文件系统是一个在闪存上使用广泛的读文件系统是一个在闪存上使用广泛的读/写文件系写文件系统,普

22、遍使用在嵌入式系统,目前使用最多的是第二版本,统,普遍使用在嵌入式系统,目前使用最多的是第二版本,即即JFFS2。1闪存的特性和限制闪存的特性和限制2闪存转换层闪存转换层3JFFS2文件系统介绍文件系统介绍4JFFS2文件系统的垃圾回收文件系统的垃圾回收5JFFS2文件系统的缺点文件系统的缺点17.3.5 cramfs17.3.5 cramfs文件系统文件系统cramfs是这个问题的一种解决方法。是这个问题的一种解决方法。cramfs文件系统是文件系统是专门针对闪存设计的只读压缩的文件系统,其容量上限为专门针对闪存设计的只读压缩的文件系统,其容量上限为256M,采用,采用zlib压缩。文件系统

23、类型可以是压缩。文件系统类型可以是ext2或或ext3。cramfs文件系统不需要一次性地将文件系统中的所有内文件系统不需要一次性地将文件系统中的所有内容都解压缩到内存之中,而只是在系统需要访问某个位置的容都解压缩到内存之中,而只是在系统需要访问某个位置的数据的时侯,马上计算出该数据在数据的时侯,马上计算出该数据在cramfs中的位置,将其实中的位置,将其实时地解压缩到内存之中,然后通过对内存的访问来获取文件时地解压缩到内存之中,然后通过对内存的访问来获取文件系统中需要读取的数据。系统中需要读取的数据。cramfs中的解压缩以及解压缩之后中的解压缩以及解压缩之后的内存中数据存放位置都是由的内存

24、中数据存放位置都是由cramfs文件系统本身进行维护文件系统本身进行维护的,整个过程对用户透明,对开发人员来说,既方便,又节的,整个过程对用户透明,对开发人员来说,既方便,又节省了存储空间。省了存储空间。17.4 17.4 其他文件系统其他文件系统前面两节介绍的文件系统特点都是管理本地的普通文前面两节介绍的文件系统特点都是管理本地的普通文件,本节介绍两种特殊的文件系统,一个是用于网络共享的件,本节介绍两种特殊的文件系统,一个是用于网络共享的NFS网络文件系统,还有一个是用于内核数据接口的网络文件系统,还有一个是用于内核数据接口的/proc文文件系统。这两种系统不同于普通的文件系统,体现了件系统

25、。这两种系统不同于普通的文件系统,体现了Linux设计的巧妙以及网络功能的强大。设计的巧妙以及网络功能的强大。17.4.1 17.4.1 网络文件系统网络文件系统NFS(Net File System)网络文件系统,最早由)网络文件系统,最早由 Sun微微系统公司开发,后经系统公司开发,后经IETF扩展,现在能够支持在不同类型扩展,现在能够支持在不同类型的系统之间通过网络进行文件共享。也就是说的系统之间通过网络进行文件共享。也就是说NFS 可用于不可用于不同类型计算机、操作系统、网络架构和传输协议运行环境中同类型计算机、操作系统、网络架构和传输协议运行环境中的网络文件远程访问和共享。的网络文件

26、远程访问和共享。在同一网络中使用在同一网络中使用NFS可以方便的在不同用户之间共享可以方便的在不同用户之间共享目录。如一个软件开发团队的成员可以把共同使用的服务器目录。如一个软件开发团队的成员可以把共同使用的服务器的目录通过的目录通过NFS映射到本地机器的一个目录,然后通过访问映射到本地机器的一个目录,然后通过访问本地目录就可以完成对远程服务器的访问。使用本地目录就可以完成对远程服务器的访问。使用NFS访问远访问远程机器的目录省去了登陆输入用户名密码的繁琐步骤。嵌入程机器的目录省去了登陆输入用户名密码的繁琐步骤。嵌入式系统使用式系统使用NFS映射目录,用户可以像使用本地文件系统一映射目录,用户可以像使用本地文件系统一样从嵌入式设备中存取数据,减少了文件上传下载操作。样从嵌入式设备中存取数

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论