Inode 和 Vnode 的区别
Inode 不包含文件的实际数据,但包含文件的元数据,如文件大小,用户Id,保护信息等。它不是一个内核数据结构,可以快速访问,它们总是有效的,因为它们包含了总是需要的信息。它们独立于文件名,即使文件名改变了,inode也不会改变。
Vnode 是一个内核内存对象,它在UNIX文件接口上打开、读、写、关闭和执行类似的操作。它也可以定义为inode的抽象。它只在文件打开时才存在。作为一个对象,它比inode有更多的访问时间。它包含在文件生命周期内不会更改的数据。
下面是Inode和Vnode的区别:
编号 | Inode | Vnode |
---|---|---|
1. | Inodes有与文件内容无关的文件元数据 | vnode包含在文件生命周期内不会更改的属性 |
2. | Inode是一种磁盘上的结构,它从磁盘的角度解释文件的存储 | Vnode是inode的内存结构抽象 |
3. | Inode不是内核的数据结构 | Vnode是inode的内核表示。 |
4. | 它可以快速访问 | 它比Inode有更多的访问时间 |
5. | inode总是有效的 | Vnode不一定总是有效的 |
6. | 它包含了总是需要的信息(例如保护、管理权力) | Vnode只在打开文件时才存在 |
7. | Inode与分区内的唯一编号相关联 | Vnode在分区中没有唯一的编号 |
8. | 然而,它是UNIX操作系统中的一种数据结构 | Vnode是内核内存中的一个对象,它代表UNIX文件接口 |