`

索引节点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,里面包含了与该文件有关的...

    linux 连接与索引节点

    - **磁盘索引节点(on-disk inode)**:这是物理存储在磁盘上的索引节点,每个文件都有一个与之关联的磁盘索引节点,其中包含了文件的元数据。磁盘索引节点的具体信息可能根据文件系统的类型有所不同。 - **内核...

    iNode索引节点

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

    Linux_iNode_索引节点[借鉴].pdf

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

    ext4文件系统的目录索引节点预留

    其中一个主要原因是索引节点(inode)的磁盘布局方式。索引节点是文件系统中用于存储文件元数据的一种数据结构,包括文件的所有者、权限、大小等信息。当大量文件被创建时,这些索引节点可能会分布在磁盘的不同位置...

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

    有时,即使磁盘空间显示仍有剩余,也可能因为索引节点(Inode)用尽而导致该错误。本篇文章将深入探讨这个问题,并提供解决方案。 首先,我们需要了解什么是索引节点(inode)。在Linux文件系统中,每个文件或目录...

    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 关闭文件...

    inode for mac

    `inode`(即“索引节点”)是一个数据结构,存储了关于文件和目录的所有元数据,但不包含文件的实际内容。在MacOS中,文件系统如HFS+或APFS(Apple File System)都会使用`inode`来管理和查找文件。 1. **什么是...

    inode

    首先,inode(全称是“index node”,即索引节点)是Linux和类Unix系统中存储文件元信息的数据结构。它包含了文件的创建时间、修改时间、大小、权限、拥有者等基本信息,并且记录了文件的数据在哪里存储在磁盘上。一...

    linux教程——很使用的那种

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

    iNode for macOS 10.14、10.15 亲测可用

    iNode是一款专为macOS设计的文件管理工具,它提供了对系统中文件和文件夹的高级查看和管理功能,特别是对于技术爱好者和开发者而言,它能够深入到文件系统的层次,帮助用户更好地理解并操作文件系统中的iNode节点。...

    iNode10.15.pkg.zip

    在文件系统中,iNode(索引节点)是一种数据结构,用于存储文件系统中关于文件和目录的所有元数据。这些元数据包括文件的创建时间、修改时间、访问权限、大小、所有者信息等。每个文件和目录在文件系统中都有一个...

    file结构体和inode结构体

    ### 文件结构体 (`struct file`) 与 索引节点结构体 (`struct inode`) #### 一、`struct file` 结构体 `struct file` 是 Linux 内核中的一个重要数据结构,它用来描述内核空间中每一个打开的文件。这个结构体在 `...

    iNode HC for linux

    其中,iNode(索引节点)是文件系统的重要组成部分,它记录了文件的各种元数据,如文件的所有者、权限、大小、创建时间等。而“iNode HC”则可能是对传统iNode的一种优化或扩展,旨在提高文件系统的性能和效率,特别...

Global site tag (gtag.js) - Google Analytics