搞懂 Linux 的 inode!

关于讲解inode文章是在一个公众号里面阅读的,文章链接:https://mp.weixin.qq.com/s/ZrENe9ACUWqHHTDjRG5iTg

    文章提及理解inode就得从文件存储讲起,涉及概念有“‘扇区’”(Sector)“块”(block)  “元信息”。

    扇区:硬盘的最小存储单位叫做“扇区”,每个扇区存储512字节。(大约0.5K)

    块:操作系统在读取硬盘时候会一次性读取多个扇区(一个一个扇区读取效率低),既是一次性读取一个“块”。有多个扇区组成的“块”,是文件存取的最小单位。

    元数据:文件数据都储存在"块"中,那么很显然,我们还必须找到一个地方储存文件的元信息,比如文件的创建者、文件的创建日期、文件的大小等等。这种储存文件元信息的区域就叫做inode,中文译名为"索引节点"。(文字取自文中)

 

使用 stat 命令可以查看inodes的文件信息

搞懂 Linux 的 inode!

inode包含文件的元信息,具体来说有以下内容:

  • 文件的字节数

  • 文件拥有者的User ID

  • 文件的Group ID

  • 文件的读、写、执行权限

  • 文件的时间戳,共有三个:

    • ctime指inode上一次变动的时间

    • mtime指文件内容上一次变动的时间

    • atime指文件上一次打开的时间

  • 链接数,即有多少文件名指向这个inode(截图标红地方)

  • 文件数据block的位置

关于inode大小

inode也会消耗硬盘空间,所以硬盘格式化的时候,操作系统自动将硬盘分成两个区域。一个是数据区,存放文件数据;另一个是inode区(inode table),存放inode所包含的信息。

每个inode节点的大小,一般是128字节或256字节。inode节点的总数,在格式化时就给定,一般是每1KB或每2KB就设置一个inode。假定在一块1GB的硬盘中,每个inode节点的大小为128字节,每1KB就设置一个inode,那么inode table的大小就会达到128MB,占整块硬盘的12.8%。

上一篇:Linux之磁盘与文件系统(一)


下一篇:java多线程创建方式