proc与sys:inode号均为为1,大小均为0:
都是内存中的虚拟文件系统,用来访问系统运行过程中的一些信息。其中sys与proc功能类似,只不过sys是比proc更新的文件系统。
文件与inode对应关系:
不同文件系统有自己独立的inode编号,但一般都是从2开始(根目录为2)。在同一个文件系统中,inode相同的文件就是同一文件。
file与dentry究竟是什么:
均是VFS中的重要组成部分。dentry与inode对应,可以有多个dentry对应到同一个inode,如hard link干的就是这件事。dentry是一个将inode号与文件名对应起来的结构,用来构建文件系统树结构。inode在硬盘中有对应存在,dentry只存在于硬盘中。
file代表一个文件,记录的是当前读写位置等信息。
hard link:
就是不同的文件名共享同一个inode.原理是:文件名由父目录决定,而文件内容由inode决定。当hard link时,只是在不同的目录中创建了文件名而已,他们指向共同的inode.
所以除了名字不同,hard link的两个文件其他都一样。
ls -l 中显示的link数指的是hard link。
hard link限制:1.同一个文件系统;2.不能对目录进行。
symbolic link:
类似于windows的快捷方式。symbolic link会创建一个独立的文件,有新的inode与对应的数据block,只不过此时数据block中存的是被链接文件的路径名而已。所以数据block的大小就是路径名总字符的大小。原始文件被删,symbolic link会打不开。