目录、目录项、超级块、索引节点、文件

unix中,文件系统被安装在一个特定的安装节点上,该安装点在全局层次结构中被称为命名空间,所有已安装的文件系统都作为根文件系统树的枝叶出现在系统中。本质讲,文件系统是特殊的数据分层存储结构,包含文件、目录和相关的控制信息。

目录:

1.作用:文件是通过目录组织起来的,目录相当于文件夹,用来容纳对应的文件

2.一个例子: /home/csj/1.c

什么是目录,分析一下上面的例子。

根目录 / 这个名词应该都不陌生,后面的 home表示家目录,csj也表示目录,最后的1.c表示一个程序文件

3.上面的例子中目录中包含其他目录(即子目录),目录从而层层嵌套,形成了文件路径。

目录项:上面例子就是一个文件路径,路径中的每一部分(/,home,csj,1.c)都被称为目录条目(也即目录项)

总结:由目录和目录项的概念可知,目录项中可能包含普通文件如1.c , 故目录不等同于目录项。

索引节点:文件包含文件本身和文件的相关信息,这些相关信息包括访问控制权限、大小、拥有者、创建时间等内容,文件的相关信息被存储在一个单独的数据结构 中,该结构就叫做索引节点。索引节点包含了内核在操作文件或目录时需要的全部信息,一个索引节点代表文件系统中一个文件(当然可以是设备和管道这样的特殊 文件)。

超级块:包含文件系统信息的数据结构。文件系统的控制信息、单独文件的信息这些都包含超级块中。超级块通常存放在特定的扇区中。

总结:文件(目录也属于文件)信息按照索引节点形式存储在单独的块中;控制信息被集中存储在磁盘超级块中。

超级块:代表一个具体的已经安装的文件系统

索引节点:表示一个具体的文件

目录项:表示路径的一个组成部分

文件:表示由进程打开的文件

因为目录也当做文件(即目录文件)来处理,而每个文件对应一个索引节点,所以 路径 /home/csj/1.c 中包含的目录项各对应于一个索引节点(/,home,csj这三个相当于目录文件,1.c相当于普通文件)。

也可以这样说一个目录项主要包括了文件名和索引节点号,索引节点号是指向索引节点表( system inode table )中对应的索引节点的。

注:内核后来的版本采用ext文件系统时,目录项中就不是存放索引节点号,然后找到索引节点表,再找到索引节点了。而是目录项中存放文件名和一个指向索引节点的指针。

时间: 2024-07-29 01:13:42

目录、目录项、超级块、索引节点、文件的相关文章

文件系统VFS数据结构(超级块 inode dentry file)(收集整理)

Linux虚拟文件系统四大对象: 1)超级块(super block) 2)索引节点(inode) 3)目录项(dentry) 4)文件对象(file) 一个进程在对一个文件进行操作时各种对象的引用过程如下: 通过task_struct得到files_struct,然后通过文件描述符(int fd)获得相应的文件对象(file **fd),接下来获得目录项对象(dentry),最后得到索引节点对象(inode),该对象就包括具体操作该文件的相关操作,这些操作是从超级对象块中继承而来的.它与具体的

文件描述符、文件描述符表、打开文件表、目录项、索引节点之间的联系

文件描述符.文件描述符表.打开文件表.目录项.索引节点之间的联系如下图所示: 每个进程在PCB(Process Control Block)中都保存着一份文件描述符表,文件描述符就是这个表的索引,每个表项都有一个指向已打开文件的指针,已打开的文件在内核中用file结构体表示,文件描述符表中的指针指向file结构体. 在file结构体中维护File Status Flag(file结构体的成员f_flags)和当前读写位置(file结构体的成员f_pos).在上图中,进程1和进程2都打开同一文件,

Centos 06 文件类型和扩展名&索引节点inode和存储块block

本节内容 1.文件类型 2.文件扩展名 3.索引节点inode和block块 首先需要申明一点, 1.在linux里面文件扩展名和文件类型是没有关系的 2.为了容易区分和兼容用户使用windows的习惯,在linux里面也会用扩展名来表示文件类型 3.在linux里面需要提起一个概念"一切皆文件". 文件类型 文件类型分为:普通文件.目录.字符设备文件.符号链接文件.块设备文件.套接口文件.管道 之前我们通过find命令查找过文件,所以可以查看一下find命令里面的规定,man fin

linux中文件索引节点知识

概念 索引节点     inode表中包含了文件系统所有文件列表     一个节点是在一个表项里,包含文件数据(元数据).         1.文件类型,权限,UID,GID         2.链接数(指向这个文件名路径名称个数)         3.文件的大小和时间戳         4.指向磁盘上文件的指针         5.有关文件的其他数据         6.inode 索引节点编号 inode表结构      直接块指针:有12个块直接指向对应的数据单元,每个数据单元可以容纳4K

磁盘工作原理、文件系统及i节点、块存储、文件存储、对象存储、DAS、NAS、还有SAN

(一)磁盘工作原理 一般硬盘正面贴有产品标签,主要包括厂家信息和产品信息,如商标.型号.序列号.生产日期.容量.参数和主从设置方法等.这些信息是正确使用硬盘的基本依据,下面将逐步介绍它们的含义. 硬盘主要由盘体.控制电路板和接口部件等组成,如图1-1所示.盘体是一个密封的腔体.硬盘的内部结构通常是指盘体的内部结构:控制电路板上主要有 硬盘BIOS.硬盘缓存(即CACHE)和主控制芯片等单元,如图1-2所示:硬盘接口包括电源插座.数据接口和主.从跳线,如图1-3所示. 图1-1 硬盘的外观 图1-

文件描述符、文件表项指针、inode节点的关系

内核使用3种数据结构表示打开的文件,他们之间的关系决定了在文件共享方面一个进程对另一个进程的影响. (1) 每个进程在进程表中都有一个纪录项,纪录项中包含一张打开文件描述符表,每个文件描述符各占一项,与每个文件描述符相关的是 a. 文件描述符标志 b. 指向一个文件表项的指针 (2) 内核为所有打开文件维护一张文件表项,每个文件表项包含: a. 文件状态(读 写 同步 非阻塞等) b. 当前文件偏移量 c. 指向改文件V节点(i节点)的指针 (3) 没打开一个文件或设备,都有一个V节点结构,V节

Linux 文件系统错误的修复方法 ddrescue替代dd的恢复软件 备用超级块

Linux 文件系统错误的修复方法  ddrescue替代dd的恢复软件  备用超级块 最近处理的一件 linux 服务器断电导致文件系统启动后文件系统不可读写,数据不可用的案例,现总结下 Linux 文件系统错误的修复方法.EXT3-fs error (device hda3) in start_transaction: Journal has abortedIf your system abruptly loses power, or if a RAID card is beginning

Java版本的删除指定目录下名叫“xxx.txt”文件名的文件

以前写过一个python版本的,但是在查找文件路径的时候出现错误,无法正确的获取到文件的路径,就造成无法删除该路径下的“xxx.txt”文件. 当时以为是windows版本系统的错误造成这个问题的,也就没有继续深究,就把这个bug给放过了. 最近一段时间在学习android,肯定要用的java了,就用java实现了下,思路的话,肯定还是以前的了,结果还是出错,后来仔细的看了看代码,其实是自己的bug. 把代码贴下:(主要功能,删除指定目录下名叫"pylist.txt"的所有文件,使用递

环境变量,属性文件,文件基础操作,目录基础操作,遍历指定后缀名文件

环境变量和属性 环境变量相关: 1.得到某个/所有环境变量的值 2.设置环境变量的值 3.列出全部系统属性名 import java.util.Enumeration; import java.util.Map; import java.util.Map.Entry; import java.util.Properties; public class Environment { public static void main(String[] args) { // TODO Auto-gener