//index 索引节点
struct inode {
struct hlist_node i_hash;
struct list_head i_list; /* backing dev IO list */
struct list_head i_sb_list;
struct list_head i_dentry;
atomic_t i_count;//引用计数
unsigned int i_nlink;
......
void *i_private; /* fs or device private pointer */
};
硬链接在本质上是将原始数据拷贝,生成一个新的inode节点,当原始文件删除的时候,硬链接文件仍然存在。
而软链接仅是inode结构的i_nlink变量增加,并不会创建新的inode节点,当原始文件删除的时候,软链接也就失效了。
如果需要更深入的了解处理流程,请参看《深入理解Linux内核》、《深入Linux内核构架》。