« tk8 | 首页 | 江东老虎 »

kingsuey

留言(1 条)

理解inode 留言:


引用yangbinxom的发言:


第3点使得软件更新变得简单,可以在不关闭软件的情况下进行更新,不需要重启。因为系统通过inode号码,识别运行中的文件,不通过文件名。更新的时候,新版文件以同样的文件名,生成一个新的inode,不会影响到运行中的文件。等到下一次运行这个软件的时候,文件名就自动指向新版文件,旧版文件的inode则被回收。

这里旧的文件为什么就会被回收掉,系统中什么样的机制是实现这个的呢?通过时间信息来吗?



我的理解是,旧版文件的inode里的“链接数”已经为0了,所以系统会自动回收对应的inode及其对应的block区域。但是我不解的是,假设在更新之前,有N个文件名对应着这个inode,在更新的时候会把那N个链接数都清零吗?另外,下一次软件运行的时候,为什么文件名就会自动指向新版文件呢?似乎我的思维已经固化在windows下了。