`

索引节点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的相关资料,帮助大家更好的理解和学习Linux,感兴趣的朋友可以了解下

    iNode索引节点

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

    Linux_iNode_索引节点[借鉴].pdf

    Linux_iNode_索引节点[借鉴].pdf

    Linux_iNode_索引节点[收集].pdf

    Linux_iNode_索引节点[收集].pdf

    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),每个文件或目录都与索引节点数组中的唯一一个元素...

    Linux中关于inode的知识总结

    中文译名叫做“索引节点”。 关于inode的背景知识 我们先复习下文件存储的一些内容。我们知道,文件存储在硬盘上,硬盘的最小存储单元呢,又被称为扇区,扇区的大小是512字节。 操作系统在硬盘上读取信息时,是...

    基于C++实现模拟文件系统【100012421】

    每个inode块对应一个目录文件或者普通文件,是文件的索引节点。磁盘块是真正存储内容的地方,磁盘块并不需要特殊的数据结构进行标记,只要能找到对应的位置,然后在要进行读写的时候将其读入内存,进行操作后再放回...

    完整性检验工具Aide

    包括:权限(permission)、索引节点序号(inode number)、所属用户(user)、所属用 户组(group)、文件大小、最后修改时间(mtime)、创建时间(ctime)、最后访问时间 (atime)、 增加的大小以及连接数。 AIDE还能够使用下列...

    Linux软连接和硬链接

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

    simple_linux_character_driver:一个非常简单的linux字符驱动程序,用于与dev文件夹中的inode进行通信

    在主机301上创建一个索引节点 sudo mknod -m 777 /dev/simple_char_device c 301 0 查看成功创建的inode: ls -la /dev | grep simple_char_device 要安装驱动程序,请在此repo文件夹中运行: make sudo insmod ...

    Linux硬链接与软链接原理及用法解析

    在Linux的文件系统中,保存在磁盘分区中的文件不管是什么类型都会给它分配一个编号,这个编号被称为索引节点编号号(Inode Index)或者Inode,它是文件或者目录在一个文件系统中的唯一标识,文件的实际数据放置在数据...

Global site tag (gtag.js) - Google Analytics