linux文件系统之i节点详解
来源:互联网 发布:ipad淘宝不能横屏 编辑:程序博客网 时间:2024/05/22 09:43
i节点即index node索引节点。接下来的是第五个磁盘块了,480个i节点,每个i节点占用32个字节,总共占用480*32/1024=15个磁盘块,现在再重新理清一下磁盘块的关系了: i_uid为0000,表示这个文件的所有者的uid是0,通常root用户的uid就是0 i_size为00000080,表示这个文件的长度为80H=128个字节,后面可以验证。 i_time为842EAA9E,表示这个文件的创建时间 i_gid为00,表示该文件所有者所在group的id为0 i_nlinks为08,表示有8个文件目录项指向该i节点 最后一个13H即19表示该文件的数据块号,后面都是0,表示该文件在一个数据块中存得下,不用更多的数据块。 分析之四将追溯到这个i节点的数据块即19块,用以说明目录项的数据结构。 原文链接:http://www.caravelsoft.com/linux-special/tech-centers/unix-linux-plat/linux-system-analysis/67-linux-filesystem-inode/
0块:引导块,每块1024B
1块:超级块
2块:i节点位图
3块:逻辑块位图
4...18:i节点区块
19块:数据块,刚好和Linux文件系统分析之二中提到的数据块开始于第19块吻合。
下面分析第一个i节点,它位于块号为4的块中,即是第五块了。
00001000h: ED 41 00 00 80 00 00 00 9E AA 2E 84 00 08 13 00 ; 鞟..?..灙.?...
00001010h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
为分析这二进制中的数据涵义,下面列出i节点结构,这个i节点其实就是表示根目录了。
struct d_inode{
unsigned short i_mode;
unsigned short i_uid;
unsigned long i_size;
unsigned long i_time;
unsigned char i_gid;
unsigned char i_nlinks;
unsigned short i_zone[9];
}
刚好是32个字节,
i_mode表示文件类型和属性,这里是41ED即0100.0001.1110.1101
见stat.h文件中的定义:
第一个四位0100表示这是一个目录文件,确实如此,这就是根目录。
接下来的三位000表示文件的属性,执行或搜索时是否设置uid
最后面的九位1.1110.1101表示rwxrwxrwx了,这个用过linux的都知道
- linux文件系统之i节点详解
- linux文件系统之i节点详解
- Linux文件系统分析之三(i节点区)
- Linux 文件系统基础--块、i节点
- Linux文件系统分析之二(超级块,i节点位图和逻辑块位图)
- Linux文件系统索引节点inode详解
- Linux 文件系统基础——块、i节点
- Linux 文件系统基础——块、i节点
- Linux之Proc文件系统详解
- linux proc文件系统节点
- Linux的I节点
- linux i 节点
- linux i节点
- linux I节点
- 理解Linux i节点
- linux i节点(inode)
- Linux文件系统详解(文件系统层次、分类、存储结构、存储介质、文件节点inode)
- Unix文件系统研究:1. i节点
- 放假计划
- 外中断(按键)控制数码管显示
- startActivityForResult的使用
- Android Error: Unable to open class file R.java
- Linux多线程编程
- linux文件系统之i节点详解
- Java中的访问权限
- 了解CSS挂马及相应防范方法
- P4 with NiftyPerforce and no P4SCC
- extjs中动态显示当前时间
- MFC单文档程序启动不显示ToolBar工具栏
- MFC单文档程序启动不显示ToolBar工具栏
- 常用DOS批处理
- UP 统一过程 开发周期的四个阶段