浅谈Linux中的Inode
要理解Inode,就要从文件储存说起。文件储存在硬碟上,这么硬碟中最小的储存单位称作"磁道",这儿简单跳出一下,跟你们说简单解释一下哪些叫磁道,如右图:
下边是单个硬碟硬碟的示意图,一个硬碟就是由若干个同样的硬碟构成的(具体详尽的其他概念,我们择日再说),这儿就关注磁道。
在单个硬碟上,从里到位有好多个同心圆,每位同心圆称作扇区(Track)
从圆心向最内侧按一定度数界定好多纵切线,这个每位扇区被切割成若干的,每位被切割的扇区就称作磁道,磁道是硬碟储存数据的最小单位。
通常来说,每位磁道能储存512字节,也就是相当于0.5k(512/1024=0.5)。
尽管磁道(sector)是硬碟储存数据的最小单位,而且操作系统在读取硬碟的时侯,却不会一个磁道一个磁道的去读取,这样效率太慢了,操作系统是按"块"为单位进行读写的。块,是由多个磁道组成的,是操作系统文件存取的最小单位。不同的操作系统支持不同的块大小,最常见的块大小是4KB,即由连续的8个磁道(sector)组成一个块(block)。
文件信息都储存在"块"中,这么很其实,我们还必需要找到一个地方去储存文件的元信息,所谓文件的元信息,就是不仅文件内容之外的和该文件有关的一些属性,例如文件的创建者,文件的大小等等。这种元信息并没有很文件内容信息混和在一起储存,这些元信息储存的区域就称作inode。英文译名可以称作"索引节点"。
这么Inode包含文件的元信息,具体来说大约有一下几种内容:
*文件的字节数
*文件拥有者的UserID
*文件的GroupID
*文件的读,写,执行权限
*文件的时间戳(大约有三个相关的时间戳,ctime指上一次变动的时间,mtime指文件内容上一次变动的时间,atime指上一次文件打开的时间)
*链接数,即有多少个文件名指向这个inode
*文件数据block的位置
我们可以用stat命令,来查询某个具体文件的inode信息,如图:
可以清晰的看出该文件的Inode号码为175992,文件大小为,由于这是我刚才创建的样例文件,上面是啥也没有的。
每晚学习一点点,每晚进步一点点,欢迎关注本头条号,一起进步。今日和你们一起讨论一下Inode的大小,以及储存,和硬链接,软链接相关的主题。希望你们持续关注。