免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 11294 | 回复: 11
打印 上一主题 下一主题

i节点是否和文件是一一对应的关系? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-04-28 11:10 |只看该作者 |正序浏览
即是否文件系统中的每一个文件都对应一个i节点,每一个i节点都只对应一个文件?

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
12 [报告]
发表于 2009-07-10 11:28 |只看该作者
1文件和目录只有1个i-node,这是肯定的。\r\n目录的i-node保存有目录中的文件名以及文件对应的i-node号。这样的情况可以使用LINK命令把1个文件的i-node链接成多个文件名,例如:\r\nln test test1,这种情况下,test和test1对应的i-node是相同的,但如果使用ln -s test test1,这种情况下相当于创建的新文件,test和test1的i-node是不同的。\r\n访问一个文件的时候,根据文件名,首先找到对应的i-node,然后确定i-node位置,根据i-node找到数据块\r\n无论大小文件,i-node只有一个,文件大小只是寻址方式不同而已。简单的说小文件直接使用i-node中的8个硬盘地址找到数据块。大的文件不使用这8个硬盘地址指针,而是使用一个i_rindirect字段,这个字段指向一个硬盘地址块,这个地址块包含的硬盘数据的指针。大小文件只是寻址方式不同,和i-node没有关系。一个文件只有一个i-node。

论坛徽章:
0
11 [报告]
发表于 2009-07-09 16:18 |只看该作者
一个文件只有一个inode

论坛徽章:
0
10 [报告]
发表于 2009-07-09 15:34 |只看该作者
一个文件只占用一个inode,不会占用多个的!\r\n你们用df命令看文件系统的Iused信息就知道了!\r\n\r\nJFS2的inode为动态的,所以就不用考虑inode数量问题

论坛徽章:
0
9 [报告]
发表于 2009-07-09 15:25 |只看该作者
[test13serv]$lmktemp t3 10M\r\nt3\r\n[test13serv]$ls -il\r\ntotal 20488\r\n25973 -rw-r--r--    1 root     system            0 Jul  9 02:16 t1\r\n25974 -rw-r--r--    1 root     system            0 Jul  9 02:16 t2\r\n25982 -rw-r--r--    1 root     system     10485760 Jul  9 02:30 t3\r\n25975 lrwxrwxrwx    1 root     system            2 Jul  9 02:17 tc2 -> t2\r\n[test13serv]$lmktemp t4 1M\r\nt4\r\n[test13serv]$ls -il\r\ntotal 22536\r\n25973 -rw-r--r--    1 root     system            0 Jul  9 02:16 t1\r\n25974 -rw-r--r--    1 root     system            0 Jul  9 02:16 t2\r\n25982 -rw-r--r--    1 root     system     10485760 Jul  9 02:30 t3\r\n25986 -rw-r--r--    1 root     system      1048576 Jul  9 02:31 t4\r\n25975 lrwxrwxrwx    1 root     system            2 Jul  9 02:17 tc2 -> t2\r\n[test13serv]$lmktemp t5 512K\r\nt5\r\n[test13serv]$lmktemp t6 256K\r\nt6\r\n[test13serv]$ls -il\r\ntotal 24088\r\n25973 -rw-r--r--    1 root     system            0 Jul  9 02:16 t1\r\n25974 -rw-r--r--    1 root     system            0 Jul  9 02:16 t2\r\n25982 -rw-r--r--    1 root     system     10485760 Jul  9 02:30 t3\r\n25986 -rw-r--r--    1 root     system      1048576 Jul  9 02:31 t4\r\n25987 -rw-r--r--    1 root     system       524288 Jul  9 02:31 t5\r\n25988 -rw-r--r--    1 root     system       262144 Jul  9 02:31 t6\r\n25975 lrwxrwxrwx    1 root     system            2 Jul  9 02:17 tc2 -> t2

论坛徽章:
0
8 [报告]
发表于 2009-07-09 15:12 |只看该作者
看看我做的测试实际情况把:\r\n[test13serv]$mkdir /test\r\n[test13serv]$cd /test\r\n[test13serv]$cd /\r\n[test13serv]$ls -lid /test\r\n25972 drwxr-xr-x    2 root     system          256 Jul  9 02:16 /test\r\n[test13serv]$cd /test\r\n[test13serv]$ls -li \r\ntotal 0\r\n[test13serv]$touch t1\r\n[test13serv]$touch t2\r\n[test13serv]$ls -li  \r\ntotal 0\r\n25973 -rw-r--r--    1 root     system            0 Jul  9 02:16 t1\r\n25974 -rw-r--r--    1 root     system            0 Jul  9 02:16 t2\r\n[test13serv]$ln -s t2 tc2\r\n[test13serv]$ls -li\r\ntotal 0\r\n25973 -rw-r--r--    1 root     system            0 Jul  9 02:16 t1\r\n25974 -rw-r--r--    1 root     system            0 Jul  9 02:16 t2\r\n25975 lrwxrwxrwx    1 root     system            2 Jul  9 02:17 tc2 -> t2\r\n[test13serv]$oslevel -s\r\n6100-03-01-0921\r\n[test13serv]$mount\r\n  node       mounted        mounted over    vfs       date        options      \r\n-------- ---------------  ---------------  ------ ------------ --------------- \r\n         /dev/hd4         /                jfs2   Jun 19 01:08 rw,log=/dev/hd8 \r\n         /dev/hd2         /usr             jfs2   Jun 19 01:08 rw,log=/dev/hd8 \r\n         /dev/hd9var      /var             jfs2   Jun 19 01:08 rw,log=/dev/hd8 \r\n         /dev/hd3         /tmp             jfs2   Jun 19 01:08 rw,log=/dev/hd8 \r\n         /dev/hd1         /home            jfs2   Jun 19 01:09 rw,log=/dev/hd8 \r\n         /dev/hd11admin   /admin           jfs2   Jun 19 01:09 rw,log=/dev/hd8 \r\n         /proc            /proc            procfs Jun 19 01:09 rw              \r\n         /dev/hd10opt     /opt             jfs2   Jun 19 01:09 rw,log=/dev/hd8 \r\n[test13serv]$

论坛徽章:
0
7 [报告]
发表于 2009-07-09 11:32 |只看该作者
我统一Chuny的说法\r\n\r\n 发表于 2006-4-28 15:43\r\ni-node 是标记文件中数据快存储位置的指针,一个I-NODE中能标记的数据快的个数是固定的,当文件很小时,一个文件对应一个I-node ,当文件比较大时一个文件对应多个I-NODE .\r\n \r\n 但ar6400的说法:发表于 2006-4-28 22:29\r\n“我有不同的理解。\r\nunix中的文件(包括目录)是以i-node来标识的,即一个i-node就是一个文件。但一个i-node可以有多个文件名。\r\n这相当于在现实社会中,每个人在信息系统中是以身份证来唯一识别的;但为了助记,每个人可能有一个或多个中文称呼。\r\n\r\n对于小文件(<=32KB),直接在i-node中有8个字节来记录最多8个数据块(AIX中每块4KB)位置。对于大文件(>32KB),仍是一个i-node,但对于该文件数据块的位置,将以一级乃至二级节点来记录。”\r\n\r\n中 “unix中的文件(包括目录)是以i-node来标识的,即一个i-node就是一个文件。” 不太准确。\r\n\r\n一个inode应该唯一的指向VFS系统内的一个文件的某一个存储区域。“一个i-node 就是一个文件的说法”不好。 \r\n一个inode对应一个文件,但文件可以有多个inode。是1:n的关系。\r\n文件名是对文件而言的,不是inode的属性。

论坛徽章:
0
6 [报告]
发表于 2006-04-29 15:27 |只看该作者
事实胜于雄辩\r\n\r\n# >aa\r\nls -il\r\n4098 -rw-r--r--   2 root     system            0  4月29 15时20 aa\r\n\r\n# ln aa bb\r\n#ls  -il\r\n 4098 -rw-r--r--   2 root     system            0  4月29 15时20 aa\r\n 4098 -rw-r--r--   2 root     system            0  4月29 15时20 bb\r\n\r\n# ln -s aa cc\r\n# ls -il\r\n 4098 -rw-r--r--   2 root     system            0  4月29 15时20 aa\r\n 4098 -rw-r--r--   2 root     system            0  4月29 15时20 bb\r\n 4099 lrwxrwxrwx   1 root     system            2  4月29 15时21 cc -> aa

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
5 [报告]
发表于 2006-04-29 11:22 |只看该作者
同意楼上\r\n但是\r\n做硬链接时,一个inode对应两个文件。软链接时,还是1个文件对应一个inode

论坛徽章:
0
4 [报告]
发表于 2006-04-28 22:29 |只看该作者
我有不同的理解。\r\nunix中的文件(包括目录)是以i-node来标识的,即一个i-node就是一个文件。但一个i-node可以有多个文件名。\r\n这相当于在现实社会中,每个人在信息系统中是以身份证来唯一识别的;但为了助记,每个人可能有一个或多个中文称呼。\r\n\r\n对于小文件(<=32KB),直接在i-node中有8个字节来记录最多8个数据块(AIX中每块4KB)位置。对于大文件(>32KB),仍是一个i-node,但对于该文件数据块的位置,将以一级乃至二级节点来记录。
  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP