`

索引节点inode

阅读更多
Linux 为每个文件分配一个称为索引节点的号码inode,可以将inode简单理解成一个指针,它永远指向本文件的具体存储位置。系统是通过索引节点(而不是文件名)来定位每一个文件。例如:假设我们在硬盘当前目录下建立了一个名为mytext文本文件,其内容只有一行:This is my file.当然这行文字一定是存储在磁盘数据区某个具体位置里(物理上要通过磁头号、柱面号和扇区号来描述,在本例中假设分别是1、20、30)。假设其inode是 262457,那么系统通过一段标准程序,就能将这个inode转换成存放此文件的具体物理地址(1磁头、20柱面、30扇区),最终读出文件的内容:“This is my file.”所以inode是指向一个文件数据区的指针号码,一个inode对应着系统中唯一的一片物理数据区,而位于两个不同物理数据区的文件必定分别对应着两个不同的inode号码。文件拷贝命令: #cp /home/zyd/mytext newfile 在当前工作目录建立了一个新文件newfile,其实际操作主要包括如下三步:
1、在当前目录中增加一个目录项,其文件名域填入newfile,并分配了一个新的inode,假设是262456。
2、将原文件(在1磁头、20柱面、30扇区)的内容复制了一份到新的空闲物理块(假设是1磁头、20柱面、31扇区)。
3、填写一些其他关键信息,使系统通过这些信息及inode号码可以完成物理地址的转换。所以文件复制要分配新的inode和新的数据区,虽然两个文件的内容是一样的。

一个文件系统允许的inode节点数是有限的,如果文件数量太多,即使每个文件都是0字节的空文件,系统最终也会因为节点空间耗尽而不能再创建文件。所以当发现不能建立文件时首先要考虑硬盘数据区是否还有空间(可通过du命令),其次还得检查节点空间。 Linux之所以能支持多种文件系统,其实是由于Linux提供了一个虚拟文件系统VFS,VFS作为实际文件系统的上层软件,掩盖了实际文件系统底层的具体结构差异,为系统访问位于不同文件系统的文件提供了一个统一的接口。实际上许多文件系统并不具备inode结构,其目录结构也和以上的讨论不同,但通过VFS,系统均为其提供了虚拟一致的inode和目录项结构。所以,'ls -il'命令实际显示的inode应该是VFS inode,也就是说,inode是存在于内存中的数据结构,而不一定是实际的硬盘结构。但为Linux量身定做的ext2文件系统具备实际的inode 和连接型目录项结构.有一个inode, 就可以有一个文件, fs中有多少inode,就可以有多少file. inode又有单字节和多字节之分(由文件系统的类型和单个文件的大小决定). inode在建fs时同时开出, 开多少? 这由nbpi(平均每节点管理多大文件)和fs的大小决定. fs建好后,想增加inode,只能扩fs, 而且nbpi无法改变. 反之, 每当扩fs, inode也相应增加.因此, 由于jfs能管理的inode数为16M(2的24次方), 当nbpi确定时, fs的最大值也定了.
分享到:
评论

相关推荐

    详解Linux索引节点inode

    Linux中的索引节点(inode)是文件系统的核心组成部分,它负责存储文件的元信息,而非文件的实际内容。本文将深入探讨inode的概念、包含的内容、特点以及操作系统读取磁盘文件的流程,同时揭示inode带来的诸多优点。...

    Linux_iNode_索引节点[收集].pdf

    Linux iNode 索引节点 iNode 是 Linux 文件系统和硬盘存储的基础概念。理解 iNode,可以提高系统操作水平和体会 Unix 设计哲学。iNode 是文件存储的最小单元,每个文件都有对应的 iNode,里面包含了与该文件有关的...

    iNode索引节点

    inode(发音:eye-node)译成中文就是索引节点,它用来存放档案及目录的基本信息,包含时间、档名、使用者及群组等

    Linux_iNode_索引节点[借鉴].pdf

    Linux中的iNode(索引节点)是理解文件系统工作原理的关键概念。iNode是一个数据结构,存储了关于文件的重要元信息,而非文件的实际内容。它包含文件的大小、所有权、权限、时间戳(ctime、mtime、atime)以及文件...

    linux No space left on device由索引节点(inode)爆满引发500问题

    主要介绍了linux No space left on device由索引节点(inode)爆满引发500问题,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

    Linux系统连接的概念及删除原理

     硬连接是通过索引节点inode来进行连接。  在Linux文件系统中,多个文件名指向同一个索引节点,硬连接文件相当于文件的另外一个接口。  硬连接小结:  1、具有相同inode节点号的多个文件是互为硬连接文件。 ...

    Linux内核设计与实现笔记

     索引节点 inode  代表文件系统中(虽然索引节点仅当文件被访问时,才在内存中创建)的一个文件,它也可以是设备或管道这样的特殊文件  包含内核在操作文件或目录时需要的全部信息  目录?对象 denty  

    linux网络编程-宋敬彬-part2

    3.1.4 索引节点inode 65 3.1.5 普通文件 66 3.1.6 设备文件 66 3.1.7 虚拟文件系统VFS 68 3.2 文件的通用操作方法 72 3.2.1 文件描述符 72 3.2.2 打开创建文件open()、create()函数 72 3.2.3 关闭文件...

    linux网络编程-宋敬彬-part3

    3.1.4 索引节点inode 65 3.1.5 普通文件 66 3.1.6 设备文件 66 3.1.7 虚拟文件系统VFS 68 3.2 文件的通用操作方法 72 3.2.1 文件描述符 72 3.2.2 打开创建文件open()、create()函数 72 3.2.3 关闭文件...

    linux教程——很使用的那种

    索引节点inode:Linux为每个文件分配一个称为索引节点的号码inode,可以将inode简单理解成一个指针,它永远指向本文件的具体存储位置。系统是通过索引节点(而不是文件名)来定位每一个文件。建立硬连接实际上只是增加了...

    linux网络编程-宋敬彬-part1

    3.1.4 索引节点inode 65 3.1.5 普通文件 66 3.1.6 设备文件 66 3.1.7 虚拟文件系统VFS 68 3.2 文件的通用操作方法 72 3.2.1 文件描述符 72 3.2.2 打开创建文件open()、create()函数 72 3.2.3 关闭文件...

    一个linux下ext2/3 文件系统查看器小程序

    索引节点(inode)是一个结构,它包含了一个文件的长度、创建及修改时间、权限、所属关系、磁盘中的位置等信息。 一个文件系统维护了一个索引节点的数组(GroupDesc),每个文件或目录都与索引节点数组中的唯一一个元素...

    操作系统实验五:文件系统实验

    3. 获取索引节点表,并能根据输入的索引节点号,显示其索引节点数据结构 ext4_inode 的字段信息。 实验中,我们使用了 Gedit 和 Vi 编辑器来编写程序,并使用了 Ubuntu 12.04 操作系统和 VMWare9 虚拟机。 三、...

    Linux内核分析--文件系统

    索引节点(inode)是文件系统处理文件所需的信息,索引节点对文件是唯一的。具体文件系统的索引节点存储在磁盘上,使用时必须调入内存,填写 VFS 的索引节点。因此 VFS 的索引节点是动态节点。 目录项(dentry)是...

    linux文件系统的权限王国(二)借鉴.pdf

    inode 存放在硬盘上,Linux 在分区和格式化硬盘的时候,就把硬盘分为了数据区和索引节点区,数据区存放普通文件,索引节点区存放 inode 对象。每个 inode 对象的大小一般是 128 字节或 256 字节,这个数值可以在格式...

    linux文件系统—inode及相关概念.pdf

    在Linux文件系统中,inode(即“索引节点”)是一个至关重要的概念,它存储了文件和目录的相关信息,包括权限、所有权、时间戳以及指向文件数据块的指针。本文将深入探讨inode及其相关概念。 1. **inode的结构和...

    Linux 软连接与硬链接.pdf

    在 Linux 文件系统中,每个文件都有一个唯一的索引节点号(inode Index),硬连接就是将多个文件名指向同一个索引节点。这样,多个文件名可以指向同一个文件,数据块和目录项也是一致的。 硬连接的特点是: * 多个...

    linux软链接 硬链接区别

    在 Linux 的文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号(Inode Index)。在 Linux 中,多个文件名指向同一索引节点是存在的。一般这种连接就是硬连接。硬连接的作用是...

Global site tag (gtag.js) - Google Analytics