Linux文件系统分析
Linux文件系统剖析
x 可以在许多种存储设备上支持许多种文件系统。例如,read 函数调用可以从指定的文件描述符读取一定数量的字节。
read函数不了解文件系统的类型,比如 ext3 或 NFS。它也不了解文件系统所在的存储媒体,比如 AT Attachment Packet Interface(ATAPI)磁盘、Serial-Attached SCSI(SAS)磁盘或 Serial Advanced Technology Attachment(SATA)磁盘。
但是,当通过调用read 函数读取一个文件时,数据会正常返回。本文讲解这个机制的实现方法并介绍 Linux 文件系统层的主要结构。
什么是文件系统?
首先回答最常见的问题,“什么是文件系统”。文件系统是对一个存储设备上的数据和元数据进行组织的机制。由于定义如此宽泛,支持它的代码会很有意思。正如前面提到的,有许多种文件系统和媒体。由于存在这么多类型,可以预料到 Linux 文件系统接口实现为分层的体系结构,从而将用户接口层、文件系统实现和操作存储设备的驱动程序分隔开。
挂装
在 Linux 中将一个文件系统与一个存储设备关联起来的过程称为挂装(mount)。使用mount 命令将一个文件系统附着到当前文件系统层次结构中(根)。在执行挂装时,要提供文件系统类型、文件系统和一个挂装点。
为了说明 Linux 文件系统层的功能(以及挂装的方法),我们在当前文件系统的一个文件中创建一个文件系统。实现的方法是,首先
用dd 命令创建一个指定大小的文件(使用 /dev/zero 作为源进行文件复制)——换句话说,一个用零进行初始化的文件,见清单 1。
Linux文件系统分析
由于 Ext2 核心代码包括多项性能优化,而且 Ext2 也能实现分配优化。所以它们能大大改善 I / 0 速度, 提高 I / 0 组织的灵活性及编程效率。因此,Ext2 核心代码及 Ext2 程序库为开发嵌入式系统及实时应用系统 提供了广泛的基础和手段。
在软盘用作 Linux 文件系统之前,实用程序 mkfs 可用来创建文件系统。
# mkfs
/ dev / fd0
l440
该命令在软驱中的软盘上创建 l400 个块的空文件系统,该命令还在超级块中写入魔数(s - magic),表明 该文件系统是一个有效的 Linux 文件系统。魔数能表明文件系统的版本。Mount 系统调用检查超级块中的
因为 ext2 库的接口十分抽象和通用,无需考虑物理细节,所以编写需要直接存取 ext2 文件系统的程序 很容易。例如,将 BSD 转储和备份恢复的特性转移到 Iinux 平台时,只需做少量的修改:一些依赖于文件系统 的函数需要转移到 Ext2 库。
Ext2 库提供许多种操作。第一类操作是与文件系统相关的操作。程序可以用这些操作打开关闭文件、 读写位图、在磁盘上创建新的文件系统,也可管理坏盘块列表。第二类操作用来控制目录,它们能建立和展
linux 文件系统镜像 反编译
Linux文件系统镜像的反编译是一个复杂的过程,涉及到对镜像文件的深入理解和分析。下面是一个大致的步骤,但请注意,具体的步骤可能会因镜像的具体格式和内容而有所不同。
1.确定镜像格式:首先,你需要确定你的Linux文件系统镜像的格式。常见的格式包括ISO、IMG、
VDI等。你可以使用file命令来查看镜像的格式。
2.解压镜像:对于大多数镜像格式,你可以使用适当的工具来解压或挂载它。例如,对于ISO格式,
你可以使用mount命令来挂载它。
3.分析文件系统:解压或挂载后,你可以开始分析文件系统。你可以使用ls、cat、find等命令来查
看和操作文件。
4.反编译:反编译的过程取决于你的具体需求。如果你只是需要提取文件,那么你只需要使用适当
的命令即可。如果你需要理解文件系统中的特定文件或目录结构,你可能需要使用更高级的工具,如file、strings等。
5.处理特殊情况:有些文件系统可能包含加密或压缩的文件或目录。在这种情况下,你可能需要使
用特定的工具来解密或解压缩这些文件。
请注意,反编译Linux文件系统镜像是一个复杂的过程,需要对Linux系统和文件系统有深入的理解。此外,反编译可能涉及版权问题,请确保你在合法和合规的范围内进行操作。
linux 操作系统的文件系统的特点
Linux 操作系统的文件系统特点
作为一种开源、免费的操作系统,Linux 在计算机领域广泛应用,并且以其稳定性和安全性而闻名。在Linux 操作系统中,文件系统是一个重要的组成部分,它负责管理和组织存储在硬盘上的数据。本文将介绍Linux 操作系统文件系统的特点,以帮助读者更好地了解其优势。
一、多样的文件系统类型
Linux 操作系统支持多种文件系统类型,如ext2、ext3、ext4、XFS、JFS 等。每种文件系统类型都有其独特的特点和适用场景。例如,ext4 是一种高性能的文件系统,适用于大容量存储;XFS 是一种适用于大型文件和高性能存储的文件系统。这种多样性使得Linux 操作系统能够根据不同的需求和应用场景选择最适合的文件系统类型。
二、强大的文件权限管理
Linux 操作系统的文件系统采用了一套灵活而强大的文件权限管理机制。每个文件和目录都有其所属的用户和用户组,并且可以设置不同的权限,如读、写、执行等。这种权限机制使得用户可以对文件和目录进行精确的访问控制,从而提高了系统的安全性。
三、支持符号链接
符号链接是Linux 操作系统文件系统的一个重要特点。符号链接是指一个文件或目录指向另一个文件或目录的快捷方式。通过使用符号链接,用户可以在不改变文件或目录实际位置的情况下,创建文件或目录的别名。这种特性在管理和组织文件时非常有用,可以提高文件系统的灵活性和可维护性。
四、可靠的日志记录
Linux 操作系统的文件系统通常采用日志记录机制,以确保文件系统的可靠性和一致性。日志记录可以记录文件系统的操作和状态变化,当系统发生故障或意外断电时,可以通过日志进行恢复,避免数据丢失或损坏。这种可靠的日志记录机制是Linux 文件系统的一个重要特点,为用户提供了更高的数据保护和可靠性。
Linux的文件系统类型概述作用与说明
Linux文件系统类型
不同的操作系统需要使用不同类型的文件系统,为了与其他操作系统兼容,以相互交换数据,通常操作系统都能支持多种类型的文件系统,比如Windows 2000 Server,系统默认或推荐采用的文件系统是NTFS,但同时也支持FAT32或FAT16文件系统;DOS和Windows 9x一般采用FAT16或FAT32,不支持NTFS文件系统。
Linux内核支持十多种不同类型的文件系统,对于Red Hat Linux,系统默认使用ext2或ext3和swap文件系统,下面对Linux常用的文件系统作一个简单介绍。
1、ext2与ext3文件系统ext是第一个专门为Linux设计的文件系统类型,称为扩展文件系统,在Linux发展的早期,起过重要的作用。由于稳定性,速度和兼容性方面存在许多缺陷,ext现已很少使用。
ext2是为解决ext文件系统存在的缺陷而设计的可扩展、高性能的文件系统,称为二级扩展文件系统。ext2于1993年发布,在速度和CPU利用率上具有较突出的优势,是GNU/Linux系统中标准的文件系统,支持256个字节的长文件名,文件存取性能极好。
ext3 是ext2的升级版本,兼容ext2,在ext2的基础上,增加了文件系统日志记录功能,称为日志式文件系统,是目妆Linux默认采用的文件系统。日志式文件系统在因断电或其他异常事件而停机重启后,操作系统会根据文件系统的日志,快速检测并恢复文件系统到正常的状态,并可提高系统的恢复时间,提高数据的安全性。若对数据有较高安全性要求,建议使用ext3文件系统。
请简述 linux 中的文件系统层次结构。
请简述 linux 中的文件系统层次结构。
Linux 中的文件系统层次结构是指文件和目录的组织结构,用于存储和管理计算机系统中的数据。它是按照一种层次化的方式组织文件和目录,使得用户能够方便地访问和管理这些文件。
在 Linux 中,文件系统层次结构主要包含以下几个重要的目录:
1. /:根目录,是整个文件系统的起点,包含了所有其他目录和文件。
2. /bin:二进制文件的目录,包含一些常用的基本命令,如ls、cp、mv等。
3. /sbin:系统二进制文件的目录,包含一些系统管理和维护的命令,只有管理员可以执行。
4. /etc:系统配置文件的目录,包含了系统的各种配置文件,如网络配置、用户配置、软件配置等。
5. /home:用户主目录的根目录,每个用户在该目录下都有一个自己的目录,用于存储个人文件和设置。
6. /usr:用户软件资源的目录,包含了用户安装的软件和应用程序。
7. /var:可变数据的目录,包含了经常变化的数据,如日志文件、缓存文件等。
8. /tmp:临时文件的目录,用于存放临时文件,系统重启后会清空该目录。
9. /dev:设备文件的目录,包含了系统中的设备文件,如磁盘、键
盘、鼠标等。
10. /proc:虚拟文件系统,用于存储内核和进程信息,可以通过读取这些文件来获取系统和进程的状态信息。
除了这些常见的目录外,还可以根据需要创建其他自定义的目录。文件系统层次结构的设计有助于提高文件的组织性和可管理性,使得用户能够更方便地查找和访问文件,同时也方便了系统管理员对系统进行管理和配置。
LINUX文件目录结构说明
LINUX文件目录结构说明
Linux文件目录结构是一种层次化的文件系统,它以根目录(/)为
起点,将各个子目录和文件组织在一起。这种层次化结构有助于用户和程
序员更有效地管理和查找文件。
在Linux中,文件目录结构被称为标准的层次化文件系统(Filesystem Hierarchy Standard,FHS),它定义了各个目录的用途和
组织方式。下面是对Linux文件目录结构的详细说明:
1. /(根目录):Linux文件系统的起点,所有的目录和文件都从根
目录开始。它不同于Windows中的C盘,是整个系统的根。
2. /bin:存放系统中的可执行程序(二进制文件),如常用的命令
和系统工具。
3. /boot:包含Linux启动过程所需的文件,如内核和引导加载程序。
4. /dev:设备目录,用于存放设备文件。在Linux中,一切设备都
被看作文件,通过/dev目录可以访问硬件设备。
5. /etc:系统配置文件的位置,存放系统和应用程序的配置信息。
7. /lib、/lib64:存放系统所需的库文件,提供给可执行文件使用。
8. /media:在Linux中,外部存储设备(如USB闪存驱动器、CD-ROM)被插入到系统时,会在/media目录下自动挂载。
9. /mnt:用于挂载临时文件系统的目录,如网络文件系统(NFS)等。
10. /opt:存放可选的软件包,通常是第三方供应商提供的软件。
11. /proc:虚拟文件系统,可以查看和访问内核信息和进程信息。
12. /root:超级用户(root)的主目录。
Linux文件系统分析
Ubuntu Linux的文件结构与Windows的文件结构不同,Windows将硬盘分成C、D、E、F等盘,也就是分成这些分区。
而Linux操作系统不是把硬盘分成这样的分区,它有一个根目录,用/表示,一个目录就相当于一个文件夹,根目录就相当于Linux系统的总的文件夹。在这个根目录下面,又分为/bin /boot /dev /etc /home /initrd /lib /media /mnt /opt /root /sbin /usr /var /tem 等等典型的目录。其他的目录可以单独分区,也可以不单独分区,只保留一个跟目录分区,这样,这些目录将会自动建立在根目录下。下面列出了Linux下一些主要目录的功用:
/bin 二进制可执行命令
/dev 设备特殊文件
/etc 系统管理和配置文件
/etc/rc.d 启动的配置文件和脚本
/home 用户主目录的基点,比如用户user的主目录就是/home/user,可以用~user表示
/lib 标准程序设计库,又叫动态链接共享库,作用类似Windows里的.dll 文件
/sbin 系统管理命令,这里存放的是系统管理员使用的管理程序
/tmp 公用的临时文件存储点
/root 系统管理员的主目录(呵呵,特权阶级)
/mnt 系统提供这个目录是让用户临时挂载其他的文件系统。
/opt
这里主要存放一些可选的程序。如你想尝试最新的firefox测试版吗?那就装到/opt目录下吧,这样,当你尝试完,想删
掉 firefox的时候,你就可以直接删除它,而不影响系统其他任何设置。安装到/opt目录下的程序,它所有的数据、库文件
Linux文件系统结构分析
/
述符表
\ \
l位 索 节 位 索 节 表 据 块 图 引 点 图 引 点 数 区
图 l E XT2磁 盘 布 局 在 逻 辑 空 间 的 映 像
每个 块 中保存 的这些 信 息 是 有 关 E T2文 件 系 统 的备 份 信 息 。 当某 个 块 组 的超 级 块 或 io e受 损 X nd 时, 这些 信息 可 以用来 恢 复文件 豸 统 。
区大小 。
E T2文 件 系 统 用 一 个 io e 据 结 构 描 述 系 统 中 的 每 一 个 文 件 , 义 系 统 的 拓 扑 结 构 。 一 个 io e X nd 数 定 n d 描 述 了一 个 文 件 中 的 数 据 占用 了 哪 些 块 以 及 文 件 的 访 问 权 限 、 件 的 修 改 时 间 和 文 件 的 类 型 。 E T2文 文 X 件 系 统 中 的 每 一 个 文 件 都 用 一 个 io e描 述 , 每 一 个 io e都 用 一 个 独 一 无 二 的 数 字 标 识 。 文 件 系 统 的 nd 而 nd
在 Ln x的 E 2文件 系统 中 , 引结点 io e分为 两类 iu XT 索 nd 即磁 盘 索 引 结点 和 内存 索 引结 点 , 常 也 通 分别 叫做 E T2io e和 V Sio e X d n F d。 n () 1 磁盘 索引 节点 磁 盘索 引节点是 指存 放在磁 盘上 的索 引节 点 。每 个 文件 有 唯 一 的一个 磁 盘 索 引节 点 , 主要 包括 以 它
Linux 文件系统分析
Linux 文件系统分析
在文件系统方面,Linux® 可以算得上操作系统中的“瑞士军刀”。Linux 支持许多种文件系统,从日志型文件系统到集群文件系统和加密文件系统。对于使用标准的和比较奇特的文件系统以及开发文件系统来说,Linux 是极好的平台。本文讨论Linux 内核中的虚拟文件系统(VFS,有时候称为虚拟文件系统交换器),然后介绍将文件系统连接在一起的主要结构。
基本的文件系统体系结构
Linux 文件系统体系结构是一个对复杂系统进行抽象化的有趣例子。通过使用一组通用的API 函数,Linux 可以在许多种存储设备上支持许多种文件系统。例如,read 函数调用可以从指定的文件描述符读取一定数量的字节。read 函数不了解文件系统的类型,比如ext3 或NFS。它也不了解文件系统所在的存储媒体,比如AT Attachment Packet Interface(ATAPI)磁盘、Serial-Attached SCSI(SAS)磁盘或Serial Advanced Technology Attachment(SATA)磁盘。但是,当通过调用read 函数读取一个文件时,数据会正常返回。本文讲解这个机制的实现方法并介绍Linux 文件系统层的主要结构。
什么是文件系统?
首先回答最常见的问题,“什么是文件系统”。文件系统是对一个存储设备上的数据和元数据进行组织的机制。由于定义如此宽泛,支持它的代码会很有意思。正如前面提到的,有许多种文件系统和媒体。由于存在这么多类型,可以预料到Linux 文件系统接口实现为分层的体系结构,从而将用户接口层、文件系统实现和操作存储设备的驱动程序分隔开。
Linux文件系统剖析
Linux⽂件系统剖析
⾸先回答最常见的问题,“什么是⽂件系统”。⽂件系统是对⼀个存储设备上的数据和元数据进⾏组织的机制。由于定义如此宽泛,⽀持它的代码会很有意思。正如前⾯提到的,有许多种⽂件系统和媒体。由于存在这么多类型,可以预料到 Linux ⽂件系统接⼝实现为分层的体系结构,从⽽将⽤户接⼝层、⽂件系统实现和操作存储设备的驱动程序分隔开。
在 Linux 中将⼀个⽂件系统与⼀个存储设备关联起来的过程称为挂装(mount)。使⽤mount命令将⼀个⽂件系统附着到当前⽂件系统层次结构中(根)。在执⾏挂装时,要提供⽂件系统类型、⽂件系统和⼀个挂装点。
为了说明 Linux ⽂件系统层的功能(以及挂装的⽅法),我们在当前⽂件系统的⼀个⽂件中创建⼀个⽂件系统。实现的⽅法是,⾸先⽤dd 命令创建⼀个指定⼤⼩的⽂件(使⽤ /dev/zero 作为源进⾏⽂件复制)—— 换句话说,⼀个⽤零进⾏初始化的⽂件,见清单 1。
$ dd if=/dev/zero of=file.img bs=1k count=10000
10000+0 records in
10000+0 records out
$
现在有了⼀个 10MB 的 file.img ⽂件。使⽤losetup命令将⼀个循环设备与这个⽂件关联起来,让它看起来像⼀个块设备,⽽不是⽂件系统中的常规⽂件:
$ losetup /dev/loop0 file.img
$
这个⽂件现在作为⼀个块设备出现(由 /dev/loop0 表⽰)。然后⽤mke2fs在这个设备上创建⼀个⽂件系统。这个命令创建⼀个指定⼤⼩的新的 ext2 ⽂件系统,见清单 2。
linux操作系统的文件系统结构
linux操作系统的文件系统结构
Linux操作系统的文件系统结构有以下几个主要目录:
1. /:根目录,是整个文件系统的起始点,包含了系统的所有文件和目录。
2. /bin:二进制文件目录,存放一些系统命令和程序。
3. /boot:启动目录,存放启动相关的文件,包括启动程序和配置文件。
4. /dev:设备文件目录,包含了系统中所有的设备文件。
5. /etc:配置文件目录,存放系统的配置文件和子目录。
6. /home:用户主目录,每个用户在这个目录下有自己的子目录,用于存放个人文件。
7. /lib:库文件目录,存放系统和应用程序使用的共享库文件。
8. /media:可移动存储设备目录,当插入可移动存储设备时,设备会挂载到该目录下。
9. /mnt:挂载目录,用于挂载其他文件系统或网络文件系统。
10. /opt:可选应用目录,存放用户安装的可选应用程序。
11. /proc:虚拟文件系统目录,存放系统和进程相关的文件和目录。
12. /root:根用户的主目录。
13. /sbin:系统二进制文件目录,包含一些系统管理的命令。
14. /srv:服务数据目录,存放一些服务器提供的数据。
15. /sys:虚拟文件系统目录,用于访问内核和设备信息。
16. /tmp:临时文件目录,存放临时文件和临时目录。
17. /usr:用户程序目录,包含了用户安装的应用程序和文件。
18. /var:变量文件目录,存放一些变量数据和日志文件。
以上是Linux操作系统常见的文件系统结构,每个目录都有其特定的用途和功能。
Linux文件系统结构分析
Linux文件系统结构分析
摘要:阐述了Linux系统的文件结构类型,指出了EXT2是在Linux系统中最为常用的文件系统。分析了EXT2文件系统的磁盘布局、索引结点及目录结构,研究了EXT2系统实现按名存取的方法,文件读取速度更高效。
关键词:EXT2文件系统;索引结点;混合索引;文件目录
Abstract:Describe the type of the file structure of Linux systems,pointing out EXT2is most commonly used in Linux file system.Analysis of the disk layout,index nodes and EXT2file system directory structure.Study about the method to achieve access to the file by name in EXT2 system which make the file read more speed and efficient.
Key words:EXT2file system,index node,mixed index,file directory
引言
Linux系统的一个重要的特征就是支持多种不同的文件系统,如:EXT、FAT、EXT2、EXT3、SYSV等。目前,Linux主要使用的文件系统是EXT2和EXT3文件系统,也是Linux用户最常用的文件系统。
Linux最早的文件系统是Minix,但是专门为Linux设计的文件系统——扩展文件系统第二版或EXT2被设计出来并添加到Linux中,这对Linux产生了重大影响。EXT2文件系统功能强大、易扩充、性能上进行了全面优化,也是所有Linux发布和安装的标准文件系统类型。
Linux文件系统分析
Linux 文 件 系 统 分 析欧进利 20815007 电子信息技术及仪器 oujinli1985@
Linux 文件系统分析摘要:本文从对 Linux 的数据缓冲区的分析开始,以 ext2 文件系统为例分析了 Linux 中文件系统的设计原理。磁盘结构是一个文件系统的基础,决定了文件系 统的具体实现,因此本文重点分析的 ext2 文件系统的磁盘结构,包括磁盘组织、 磁盘上数据的存储结构、文件及目录在磁盘上的结构。 最后在此基础上简要分析 了文件系统的挂载和文件的查找。关键字:数据缓冲区;磁盘结构;逻辑磁盘块;逻辑磁盘组2 / 33
Linux 文件系统分析1、数据缓冲区简介........................................................................................... 41 数据缓冲区的结构 .......................................................................................................4 2 数据缓冲区的操作 .......................................................................................................82、文件系统分析 ............................................................................................ 122.1 文件系统的基本结构 .............................................................................................. 132.1.1 文件系统的磁盘结构 ................................................................................................... 13 2.1.2 文件系统的数据存储结构 ........................................................................................... 16 2.1.3 文件系统的文件及目录结构 ....................................................................................... 202.2 文件系统挂载 ......................................................................................................... 23 2.3 文件查找 ................................................................................................................. 29 2.4 文件系统中的虚拟化 .............................................................................................. 323 / 33
linux操作系统的组成部分及功能
Linux操作系统的组成部分及功能如下:
1. 内核(Kernel):内核是Linux操作系统的核心,负责管理系统的软硬件资源。它实现了进程调度、内存管理、中断处理、异常陷阱处理等功能,还负责进程管理、进程通信机制、虚拟内存管理、文件系统驱动以及USB、网络、声音等各类设备驱动子系统。内核控制整个计算机的运行,提供相应的硬件驱动程序、网络接口程序,并管理所有应用程序的执行。
2. Shell:Shell是系统的用户界面,提供了用户与内核进行交互操作的一种接口。它接收用户输入的命令并把它送入内核去执行。
3. 文件系统:Linux文件系统是文件存放在磁盘等存储设备上的组织方法,主要体现在对文件和目录的组织上。
4. 应用程序:Linux应用程序辅助用户完成一些特定的任务,例如文本编辑器、编程语言、基于X Window架构的图形桌面系统、办公套装软件、Internet工具以及数据库等。
总的来说,Linux操作系统由内核、Shell、文件系统和应用程序四个部分组成,各部分协同工作,使得Linux能够高效地运行和管理计算机资源。
简述linux的文件系统结构
简述linux的文件系统结构
Linux的文件系统结构可以说是Linux操作系统的核心组成部分之一,它为用户提供了一个清晰、有序的文件组织方式,使得用户能够方便地管理和访问文件。本文将对Linux的文件系统结构进行简要概述,以帮助读者更好地理解和使用Linux操作系统。
Linux的文件系统结构采用了一种层次化的树状结构,以根目录(/)为起点,向下分为多个子目录,每个子目录又可以进一步分为更多的子目录,形成了一个层次清晰的文件系统。下面将分别介绍一些常见的目录。
1. /bin目录:该目录存放的是一些系统命令和可执行文件,如ls、cp等,这些命令和文件可以被所有用户访问和使用。
2. /boot目录:该目录存放的是启动Linux操作系统所需的文件,包括引导程序、内核文件以及一些启动脚本。
3. /dev目录:该目录存放的是设备文件,包括硬盘、光驱、键盘、鼠标等设备,在Linux中一切皆文件,设备也被抽象为文件的形式。
4. /etc目录:该目录存放的是系统的配置文件,如网络配置、用户账户配置等,用户可以根据需要对这些文件进行修改。
5. /home目录:该目录存放的是用户的主目录,每个用户在系统中都有一个独立的主目录,用于存放个人文件和配置。
6. /lib目录:该目录存放的是系统所需的共享库文件,这些库文件包含了一些常用的函数和程序,可以被不同的程序共享使用。
7. /media目录:该目录用于挂载可移动设备,如U盘、光盘等,当插入这些设备时,系统会自动将其挂载到该目录下。
8. /opt目录:该目录用于存放一些可选的软件和程序,这些软件通常是第三方开发的,用户可以自行安装和管理。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Linux文件系统分析
一、什么是文件系统
. 文件系统是包括在一个磁盘(包括光盘、软盘、闪盘及其它存储设备)或分区的目录结构;一个可应用的磁盘设备可以包含一个或多个文件系统;如果您想进入一个文件系统,首先您要做的是挂载(mount)文件系统;为了挂载(mount)文件系统,您必须指定一个挂载点;一旦文件系统被挂载。文件系统是在一个磁盘(包括光盘、软盘、闪盘及其它存储设备)或分区组织文件的方法,如NTFS或FAT;文件系统涉及两个非常独特的事情,目录树或在磁盘或分区上文件的排列;文件系统是基于操作系统的,建立在磁盘媒质上的可见体系结构,例如这种结构对于一个Unix用户来说可以用ls 或其它工具可以看到;文件系统是基于被划分的存储设备上的逻辑上单位上的一种定义文件的命名、存储、组织及取出的方法;在计算机业,一个文件系统是有组织存储文件或数据的方法,目的是易于查询和存取。文件系统是基于一个存储设备,比如硬盘或光盘,并且包含文件文件物理位置的维护;也可以说文件系统也是虚拟数据或网络数据存储的方法。
二、常见的文件系统
Linux系统核心支持十多种文件系统类型:jfs、 ReiserFS、ext、ext2、ext3、iso9660、xfs、 minx、msdos、umsdos、Vfat、NTFS、Hpfs、Nfs、smb、sysv、proc等。这里我们对最常用的几个文件系统的发展情况和优缺点作详细介绍:ext、ext2、ext3、jsf、、xfs、ReiserFS。一、 ext ext是第一个专门为Linux的文件系统类型,叫做扩展文件系统。它在1992年4月完成的。它为Linux的发展取得了重要作用。但是在性能和兼容性上存在许多缺陷。现在已经很少使用了。二、 ext2
ext2是为解决ext文件系统的缺陷而设计的可扩展的高性能的文件系统。又被称为二级扩展文件系统。它是在1993年发布的,设计者是Rey Card。ext2是Linux文件系统类型中使用最多的格式。并且在速度和CPU利用率上较突出,是 GNU/Linux 系统中标准的文件系统,其特点为存取文件的性能极好,对于中小型的文件更显示出优势,这主要得利于其簇快取层的优良设计。Ext2 可以支持256字节的长文件名,其单一文件大小与文件系统本身的容量上限与文件系统本身的簇大小有关,在一般常见的Intel x86兼容处理器的系统中,簇最大为 4KB, 则单一文件大小上限为 2048GB, 而文件系统的容量上限为 6384GB。尽管Linux可以支持种类繁多的文件系统,但是2000年以前几乎所有的Linux发行版都用ext2作为默认的文件系统。
ext2的缺点:ext2的设计者主要考虑的是文件系统性能方面的问题。ext2在写入文件内容的同时并没有同时写入文件的meta-data (和文件有关的信息,例如:权限、所有者以及创建和访问时间)。换句话说,Linux先写入文件的内容,然后等到有空的时候才写入文件的meta- data。这样若出现写入文件内容之后但在写入文件的meta-data之前系统突然断电,就可能造成在文件系统就会处于不一致的状态。在一个有大量文件操作的系统中出现这种情况会导致很严重的后果。另外但由于目前核心 2.4 所能使用的单一分割区最大只有 2048GB,尽管文件系统的容量上限为 6384G但是实际上能使用的文件系统容量最多也只有 2048GB。三、 ext3
ext3是由开放资源社区开发的日志文件系统,主要开发人员是Stephen tweedie。ext3被设计成是ext2的升级版本,尽可能地方便用户从ext2fs向ext3fs迁移。ext3在ext2的基础上加入了记录元数据的日志功能,努力保持向前和向后的兼容性。这个文件系统被称为ext2
的下一个版本。也就是在保有目前 ext2 的格式之下再加上日志功能。ext3是一种日志式文件系统。日志式文件系统的优越性在于:由于文件系统都有快取层参与运作,如不使用时必须将文件系统卸下,以便将快取层的资料写回磁盘中。因此每当系统要关机时,必须将其所有的文件系统全部卸下后才能进行关机。如果在文件系统尚未卸下前就关机 (如停电) 时,下次重开机后会造成文件系统的资料不一致,故这时必须做文件系统的重整工作,将不一致与错误的地方修复。然而,此一重整的工作是相当耗时的,特别是容量大的文件系统,而且也不能百分之百保证所有的资料都不会流失。故这在大型的伺服器上可能会造成问题。 ext3的缺点:其最大的缺点是没有现代文件系统所具有的能提高文件数据处理速度和解压的高性能,另外使用ext3文件系统时要注意硬盘限额问题,在这个问题解决之前,不推荐在重要的企业应用上采用ext3+disk quota(磁盘配额)。四、 jsf
jsf提供了基于日志的字节级文件系统,该文件系统是为面向事务的高性能系统而开发的。jsf(Journaled File System Technology for Linux)的开发者包括AIX(IBM的Unix)的jsf的主要开发者。在AIX上,jfs已经经受住了考验。它是可靠、快速和容易使用的。2000 年2月,ibm宣布在一个开放资源许可证下,移植linux版的JSF文件系统。JSFs也是一个有大量用户安装使用的企业级文件系统。它具有可伸缩性和健壮性,与非日志文件系统相比,它的优点是其快速重启能力:Jfs 能够在几秒或几分钟内就把文件系统恢复到一致状态。虽然 jsf 主要是为满足服务器(从单处理器系统到高级多处理器和群集系统)的高吞吐量和可靠性需求而设计的,jsf 还可用于想得到高性能和可靠性的客户机配置因为在系统崩溃时,jsf 能提供快速文件系统重启时间,所以它是因特网文件服务器的关键技术。使用数据库日志处理技术,jsf 能在几秒或几分钟之内把文件系统恢复到一致状态。而在非日志文件系统中,文件恢复可能花费几小时或几天。
jsf的缺点:使用jsf日志文件系统,性能上会有一定损失,系统资源占用的比率也偏高。是因为当它保持一个日志时,系统需要写许多数据。
五、ReiserFS
ReiserFS的第一次公开亮相是在1997年7月23日,Hans Reiser把他的基于平衡树结构的ReiserFS文件系统在网上公布。ReiserFS 3.6.x(作为 Linux 2.4 一部分的版本)是由 Hans Reiser 和他的在Namesys 的开发组共同开发设计的。Hans 和他的组员们相信最好的文件系统是那些能够有助于创建独立的共享环境或者命名空间的文件系统,应用程序可以在其中更直接、有效和有力地相互作用。为了实现这一目标,文件系统就应该满足其使用者对性能和功能方面的需要。那样,使用者就能够继续直接地使用文件系统,而不必建造运行在文件系统之上(如数据库之类)的特殊目的层。ReiserFS 使用了特殊的优化 b* 平衡树(每个文件系统一个)来组织所有的文件系统数据。这为其自身提供了非常不错的性能改进,也能够减轻文件系统设计上的人为约束。例如,现在一个目录下可以容纳 ext00,000 个子目录。另一个使用 b* 树的好处就是 ReiserFS 能够像大多其它的下一代文件系统一样,根据需要动态地分配索引节,而不必在文件系统创建时建立固定的索引节。这有助于文件系统更灵活地适应其面临的各种存储需要,同时提供附加的空间有效率。
Reiserfs被看作是一个更加激进和现代的文件系统。传统的UNIX文件系统是按盘块来进行空间分配的,对于目录和文件等的查找使用了简单的线性查找。这些设计在当时是合适的,但随着磁盘容量的增大和应用需求的增加,传统文件系统在存储效率,速度和功能上已显落后。在reiserfs的下一版 reiser4中还提供了对事务的支持。在
[url]/v4/v4.html[/url] 中有reiser4的介绍和一个简单的reiser4的性能测试。
ReiserFS的缺点:ReiserFS一个最受人批评的缺点是每升级一个版本,都将要将磁盘重新格