gpt4 book ai didi

operating-system - Inode 与 Vnode 的区别

转载 作者:行者123 更新时间:2023-12-03 09:08:18 25 4
gpt4 key购买 nike

我对 Inode 与 Vnode 有一些疑问。据我了解,inode 是虚拟文件系统使用的文件的表示形式。而 vnodes 是特定于文件系统的。它是否正确?

另外,我很困惑 inode 是否是内核数据结构,即它是内存中的数据结构还是存在于实际磁盘中的 block 上的数据结构?

最佳答案

vnode 的概念在一定程度上有所不同,具体取决于您所处的系统,每个人都只是取了这个名字并用它运行。

在 Linux 和 Unix 下,您可以考虑如下抽象。
假设存在

f.tmp

您希望 f 在程序运行时继续存在,因为您正在访问它,但是如果您的程序结束或崩溃,您希望确保它消失。

您可以通过打开 f 来执行此操作,然后打开 unlink()它。您仍将保留对 f 的引用,即使它的 inode 现在有 0 个目录条目,因此已被标记为空闲。操作系统仍然保留文件开始的位置及其分配状态,直到您的程序结束。这种不再存在的 inode 的“虚拟化”就是 vnode。

另一个常见的情况是当您阅读从您下方消失的资源时。假设您正在观看一部电影,而它正在流式传输到一个临时位置。当电影完全下载后,它将被重新定位到另一个卷进行存储。只要电影保持打开状态,您就可以以某种方式继续观看和浏览电影。在这种情况下,即使再次没有链接,由于有一个 vnode,这个 inode 还不能被清理。

关于operating-system - Inode 与 Vnode 的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27345342/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com