Inode

struct m_inode {
 unsigned short i_mode;      //Read/Write/Exe flag
 unsigned short i_uid;           //User ID
 unsigned long i_size;           //File size
 unsigned long i_mtime;      //Last modified date/time
 unsigned char i_gid;            //Group ID
 unsigned char i_nlinks;       //Link number
 unsigned short i_zone[9];    //Logical block number
/* these are in memory also */ 
 struct task_struct * i_wait;    //Waiting Process
 unsigned long i_atime;        //Last access date/time
 unsigned long i_ctime;        //Inode Created time 
 unsigned short i_dev;          //Dev number
 unsigned short i_num;        //Inode number
 unsigned short i_count;      //Reference number
 unsigned char i_lock;          //Lock flag 
 unsigned char i_dirt;            //Dirty flag
 unsigned char i_pipe;          //Pipe used  
 unsigned char i_mount;     //Mount flag on FS
 unsigned char i_seek;        //Seek used  
 unsigned char i_update;     //Inode update flag
}; 

 

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];
};

sizeof(struct d_inode) = 2 + 2 + 4 + 4 + 1 +1 + 18 = 32

 

i_num

如果该值为0, 表示空闲, 没被使用

 

Liunx文件系统每个Logical zone指的大小为1024 (1K).  PC机每个扇区(Sector)大小是512Byte.

i_zone[9]

文件所占用的逻辑块

i_zone[0] ----i_zone[6]

直接块号, 因此如果i_zone[7]为空, 则文件最大为7*1024=7K

i_zone[7]一级索引

如果i_zone[8]为空, 则文件最大为512 * 1024 + 7K = 519K 

i_zone[8]二级索引

文件最大为512 * 512 *1024 + 519K = 256M

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值