对于Linux文件系统的inode的理解

时间:2022-03-22 05:16:21

摘录于以下链接:

http://www.cnblogs.com/itech/archive/2012/05/15/2502284.html

http://72333.blog.51cto.com/62333/12590

本文基于前人理解,如有不客观情况,请不吝赐教,共同进步!

首先说的是inode[索引节点,information node ],其次是要理解硬盘的文件存储才能对inode有全面的理解.

1.硬盘上最小的存储单位是扇区(sector),每个扇区存储512Bytes(=0.5KB)的数据. Linux文件系统读取硬盘的时候,不是逐个扇区读取数据,而是多个扇区同时读取,所以在Linux文件系统上有块的概念(block),是人为定义的概念,块是由多个扇区的组成的,是linux系统最小的文件存取单位.

2.文件数据的存储是在块里面,linux/unix里面检索文件数据通过inode(索引节点号)的,不是通过文件名,但是inode和文件名的关系是:在存储的时候,inode和文件名是放在同一张列表里面,作为一个链接。


PS:

No.1:当我们创建一个文件例如a.txt的时候,系统会分配一个inode(索引节点号)给予文件,(从创建文件到以后)文件的存取读写都是通过这个inode号来进行.这个inode节点号就是存储再文件夹里面的.

No.2:inode不单只包含了索引节点号,他还包含了文件数据的元数据(metadata),inode也是存储在块中。每个文件一旦创建即使没有数据都有相应inode.


N0.3:硬盘上的inode包含了文件的以下内容:

       * 文件的字节数。

  * 文件拥有者的User ID。
  * 文件的Group ID。
  * 文件的读、写、执行权限。
  * 文件的时间戳,共有三个:ctime指inode上一次变动的时间,mtime指文件内容上一次变动的时间,atime指文件上一次打开的时间。
  * 链接数,即有多少文件名指向这个inode。
  * 文件数据在block的位置。

No.4:inode也可以理解为指针(pointer)。