- 浏览: 142518 次
文章分类
最新评论
一个磁盘可以分成多个分区,每个分区可以包含一个文件系统。下图展示了它们之间的关系:
图中的 i 节点是固定长度的记录项,它包含有关文件的大部分信息。如果深入观察一个柱面组的 i 节点和数据块部分,则可看到如下的情况:
关于此图需要注意下面几点:
1、图中有两个目录项指向同一个 i 节点。每个 i 节点中都有一个链接计数,其值是指向该节点的目录项数。只有当链接计数减至 0 时,才可删除该文件(即释放该文件占用的数据块)。这就是为什么“解除对一个文件的链接”操作并不总是意味着“释放该文件占用的数据块”的原因。这也是删除一个目录项的函数被称为 unlink 而非 delete 的原因。在 stat 结构中,链接计数包含在 st_nlink 成员中,其基本系统数据类型是 nlink_t。这种链接类型称为硬链接。POSIX.1 常量 LINK_MAX 指定了一个文件链接数的最大值。
2、另一种链接类型称为符号链接。符号链接文件的实际内容(在数据块中)包含了该符号链接所指向的文件的名字。符号链接的文件类型是 S_IFLNK。
3、i 节点包含了文件有关的所有信息:文件类型、文件访问权限位、文件长度和指向文件数据块的指针等。stat 结构中的大多数信息都取自 i 节点。只有两项重要数据存放在目录项中:文件名和 i 节点编号。i 节点编号的数据类型是 ino_t。
4、因为目录项中的 i 节点编号指向同一文件系统中的相应 i 节点,一个目录项不能指向另一个文件系统的 i 节点。这就是 ln 命令(构造一个指向一个现有文件的新目录项)不能跨越文件系统的原因。
5、当在不更换文件系统的情况下为一个文件系统重命名时,该文件的实际内容并未移动,只需构造一个指向现有 i 节点的新目录项,并删除老的目录项,链接计数不会改变。这就是 mv 命令的通常操作方式。
上面讨论的是普通文件的链接计数,那对于目录文件的链接计数字段又如何呢?假定在当前的工作目录中创建了一个新目录:
$ mkdir testdir
下图显示了其结果(注意:该图显示地显示了“.”和“..”目录项):
图中编号为 2549 的 i 节点,其类型字段表示它是一个目录,链接计数为 2。任何一个叶目录(不包含任何其他目录的目录)的链接计数总是 2,分别来自于命名该目录的目录项以及在该目录中的目录“.”项。编号为 1267 的 i 节点,其类型字段表示它是一个目录,链接计数大于或等于 3,因为至少有 3 个目录项指向它:一个是命名它的目录项(即它的父目录,图中未表示出来),第二个是该目录中的“.”项,第三个是其子目录 testdir 中的“..”项。注意,在父目录中的每一个子目录都使该父目录的链接计数增加 1。
图中的 i 节点是固定长度的记录项,它包含有关文件的大部分信息。如果深入观察一个柱面组的 i 节点和数据块部分,则可看到如下的情况:
关于此图需要注意下面几点:
1、图中有两个目录项指向同一个 i 节点。每个 i 节点中都有一个链接计数,其值是指向该节点的目录项数。只有当链接计数减至 0 时,才可删除该文件(即释放该文件占用的数据块)。这就是为什么“解除对一个文件的链接”操作并不总是意味着“释放该文件占用的数据块”的原因。这也是删除一个目录项的函数被称为 unlink 而非 delete 的原因。在 stat 结构中,链接计数包含在 st_nlink 成员中,其基本系统数据类型是 nlink_t。这种链接类型称为硬链接。POSIX.1 常量 LINK_MAX 指定了一个文件链接数的最大值。
2、另一种链接类型称为符号链接。符号链接文件的实际内容(在数据块中)包含了该符号链接所指向的文件的名字。符号链接的文件类型是 S_IFLNK。
3、i 节点包含了文件有关的所有信息:文件类型、文件访问权限位、文件长度和指向文件数据块的指针等。stat 结构中的大多数信息都取自 i 节点。只有两项重要数据存放在目录项中:文件名和 i 节点编号。i 节点编号的数据类型是 ino_t。
4、因为目录项中的 i 节点编号指向同一文件系统中的相应 i 节点,一个目录项不能指向另一个文件系统的 i 节点。这就是 ln 命令(构造一个指向一个现有文件的新目录项)不能跨越文件系统的原因。
5、当在不更换文件系统的情况下为一个文件系统重命名时,该文件的实际内容并未移动,只需构造一个指向现有 i 节点的新目录项,并删除老的目录项,链接计数不会改变。这就是 mv 命令的通常操作方式。
上面讨论的是普通文件的链接计数,那对于目录文件的链接计数字段又如何呢?假定在当前的工作目录中创建了一个新目录:
$ mkdir testdir
下图显示了其结果(注意:该图显示地显示了“.”和“..”目录项):
图中编号为 2549 的 i 节点,其类型字段表示它是一个目录,链接计数为 2。任何一个叶目录(不包含任何其他目录的目录)的链接计数总是 2,分别来自于命名该目录的目录项以及在该目录中的目录“.”项。编号为 1267 的 i 节点,其类型字段表示它是一个目录,链接计数大于或等于 3,因为至少有 3 个目录项指向它:一个是命名它的目录项(即它的父目录,图中未表示出来),第二个是该目录中的“.”项,第三个是其子目录 testdir 中的“..”项。注意,在父目录中的每一个子目录都使该父目录的链接计数增加 1。
发表评论
-
打开伪终端设备
2018-07-09 20:50 1253在伪终端概述一节中已对 PTY进行了初步的介绍。尽管 ... -
伪终端概述
2018-06-02 11:05 1550伪终端就是指,一个应用程序看上去像一个终端,但事实上它 ... -
终端窗口大小和 termcap
2018-05-29 22:39 800多数 UNIX 系统都提供了一种跟踪当前终端窗口大小的 ... -
终端规范模式和非规范模式
2018-05-29 00:25 950终端规范模式很简单:发一个读请求,当一行已经输入后,终 ... -
终端标识
2018-05-23 11:18 569尽管控制终端的名字在多数 UNIX 系统上都是 /de ... -
波特率和行控制函数
2018-05-22 07:53 944虽然大多数终端设 ... -
终端属性和选项标志
2018-05-20 07:40 710tcgetattr 和 tcsetattr ... -
终端特殊输入字符
2018-05-17 06:33 815终端支持下表所示的特殊输入字符。 为了更改 ... -
终端 I/O 综述
2018-05-10 07:56 439终端设备可认为是由内核中的终端驱动程序控制的。每个终端 ... -
POSIX 信号量
2018-05-09 00:03 579在XSI IPC通信之信 ... -
XSI IPC 通信之共享存储
2018-04-25 07:18 947在XSI IPC通信之消息队列和XSI IPC通信之信 ... -
XSI IPC通信之信号量
2018-04-17 23:38 617在XSI IPC通信之消 ... -
XSI IPC通信之消息队列
2018-04-15 10:54 497消息队列是消息的链接表,存储在内核中,由消息队列标识符 ... -
XSI IPC 相似特征介绍
2018-02-08 23:48 485有 3 种称作 XSI IPC ... -
IPC 通信之 FIFO
2018-02-06 22:55 421FIFO 也被称为命名管道,未命名的管道只能在两个相关 ... -
IPC 通信之管道
2018-01-30 22:22 389管道是 UNIX 系统 IPC 的最古老但也是最常用的 ... -
readv/writev 函数及存储映射 I/O
2018-01-19 00:57 891readv 和 writev 函数可用于在一次函数调用 ... -
POSIX 异步 I/O
2018-01-16 21:33 455POSIX 异步 I/O 接口为对不同类型的文件进行异 ... -
fcntl 记录锁
2018-01-06 23:48 618记录锁的功能是:当有进程正在读或修改文件的某个部分时, ... -
守护进程惯例
2018-01-06 23:52 439UNIX 系统中,守护进程遵循下列通用惯例。 ...
相关推荐
一、文件系统基本结构 文件系统的主要任务是为用户提供一种方便的方式来访问和管理磁盘上的数据。在计算机中,硬盘通常被划分为多个区域,每个区域都有自己的文件系统,例如图例中的Boot Sector、EXT2、FAT32和NTFS...
本文将深入探讨Windows CE .NET的文件系统体系结构,这对于那些希望在WinCE平台上进行深入开发的人员来说至关重要。 首先,Windows CE .NET采用的是类似于FAT(File Allocation Table)的文件系统,包括FAT16、FAT...
1. **文件系统基本结构**: 文件系统是操作系统用于控制和管理存储设备上的数据的一种方式。它包括文件目录、文件数据块、元数据(如文件大小、创建时间、权限等)以及文件的命名规则。在模拟文件系统时,我们需要...
在Linux操作系统中,文件系统是组织和存储数据的基础架构,它负责管理磁盘上的文件和目录,使得用户和进程能够高效地访问、...希望《Linux文件系统结构分析》文档能提供更深入的探讨,帮助读者进一步理解这一核心概念。
在 Linux 文件系统中,有四种基本文件系统类型:普通文件、目录文件、连接文件和特殊文件。 Linux 文件系统目录结构的分析 Linux 文件系统的组织结构分析,可以分析到 Linux 文件系统的目录结构。 Linux 文件...
Linux操作系统是一个类Unix系统,其文件系统结构是一棵倒置的树,以根目录“/”作为起点。在Linux系统中,所有文件和外部设备都以文件的形式挂接在这个倒立的树形结构上,与以驱动器盘符为基础的Windows系统有所不同...
在这个“数据结构课设文件系统模拟器”项目中,我们将会深入探讨如何利用数据结构来模拟一个基本的文件系统。这个课程设计的目标是帮助学生理解操作系统中的文件管理机制,并通过实践提升对数据结构的应用能力。 ...
首先,要了解FAT文件系统,必须先了解硬盘的基本结构。硬盘的物理结构包括盘片、磁头、控制电路等组件,它们共同工作,以电、磁转换的原理进行数据的存储和读取。磁头在电路的控制下移动到指定位置,对盘片表面进行...
FHS-文件系统层次结构标准 FHS(Filesystem Hierarchy Standard)是 UNIX-like 操作系统中文件和目录_placement 的标准。该标准旨在支持应用程序、系统管理工具、开发工具和脚本之间的互操作性,以及这些系统文档的...
在计算机科学领域,二级目录结构是一种高效的文件管理系统,通过在主文件目录(Master File Directory, MFD)下构建多个用户文件目录(User File Directory, UFD),实现了文件系统的层次化管理。这种结构可以有效地组织...
在这个模拟文件系统中,开发者可能使用了C语言的基本结构,如结构体、指针、文件操作函数等来构建文件系统的核心功能。 文件系统通常包括以下几个关键组成部分: 1. **目录结构**:模拟文件系统会包含一个目录结构...
在这个“模拟文件系统的工作”课程设计中,我们将深入探讨如何实现一个简易的文件系统,以及相关的数据结构和算法。 一、课程设计题目和目的 该课程设计的题目是构建一个模拟文件系统,其主要目的是让学生理解文件...
这篇文档将深入探讨SAP系统中的表结构及其重要性。 首先,SAP系统的表结构设计是为了高效地存储和处理大量的企业数据。每个表都有特定的用途,例如,存储物料信息、客户订单、员工薪资等。这些表按照模块进行分类,...
文件系统结构遵循一定的层次结构,以提供有序和高效的数据存储。这个结构通常被称为文件系统层次标准(File System Hierarchy Standard,FHS),它定义了各个目录的用途和内容。 1. 文件类型: Linux系统中有七种...
通过对具体的文件存储空间的管理、文件的物理结构、目录结构和文件操作的实现,加深对文件系统内部功能和实现过程的理解。 要求: 1.在内存中开辟一个虚拟磁盘空间作为文件存储器,在其上实现一个简单的单用户文件...
硬盘的基本结构可以分为三部分:磁盘、磁头和读写头。磁盘是硬盘的物理存储介质,磁头是读写数据的主要组成部分,读写头是将数据写入或读取磁盘的设备。 NTFS文件系统结构 NTFS文件系统的结构主要包括 Boot Sector...
本课程设计旨在深入理解和实践操作系统的基本原理与技术,包括进程管理、内存管理、文件系统、设备管理和用户接口等方面。通过这次课程设计,学生将有机会亲手实现一个微型操作系统或操作系统的一部分功能,从而提升...
计算机系统结构是研究计算机硬件、固件和软件交互方式的学科,它定义了计算机系统的基本概念和功能特性,是程序员理解和操作计算机的基础。本篇文档将深入探讨这一领域的重要概念和发展历程。 首先,计算机系统结构...