在学习文件描述符时会看到有个inode概念,今天学习了一下。
在操作系统里,一个文件对应一个inode,inode存储了该文件相关信息,作用有一点点像内存的指针,通过他可以找到对应位置上的数据,但是inode和指针又有很多区别,首先指针和数据是一一对应,inode可以多个记录指向同一个inode,其次inode存储的数据要更多一些,包括文件的创建时间,创建用户,读写权限,在硬盘上的物理位置分布参数等。我们在操作系统操作文件似乎是通过文件名就可以完成,然而这只是表层,操作系统会先根据文件名先找到对应的inode节点,然后用这个inode号操作文件,所以文件名只是方便用户使用记忆的名字,操作系统要转成对应的inode号去操作对应的文件。
这个inode表存在什么地方呢? 系统会在硬盘里划分出一个区域来专门存这些inode信息,访问硬盘上的文件先经过inode表里对应的数据才能在硬盘上找到数据,理论上inode表如果塞满的话,其实硬盘还有其他空间也不能再创建文件了。
如果有多个文件名对应同一个inode,那么这些文件名指向的都是同一个文件资源,删除其中一个文件名,其他的文件名依然能访问,这个是硬链接。