unix和linux储存结构,unix的目录结构在文件卷中是怎么存放的?

unix的目录结构在文件卷中是怎么存放的?因为我要做一个简单的unix/linux文件卷虚拟,但不清楚它在inode(i节点)还是什么地方里面的,是不是一个inode存放一个或多个目录结构的?

|

相同点是都要到inode里面,不同在于对inode里面存放的二进制数据的解释,这个是目录的inode和普通文件inode的差别……

|

UNIX中每个文件有一个唯一的索引节点,索引节点以静态形式存放在磁盘上,也称为磁盘索引节点。内核对一个文件进行操作时,必须将相应的索引节点信息读入一个内存的特设缓冲区,即内存索引节点表,该表除了包含磁盘索引节点的静态信息外,还包含当前打开文件的动态信息。

struct dinode

{

unsigned shortdi_mode;     /* mode and type of file */

shortdi_nlink;    /* number of links to file */

shortdi_uid;      /* owner's user id */

shortdi_gid;      /* owner's group id */

off_tdi_size;     /* number of bytes in file */

char  di_addr[40];/* disk block addresses */

time_tdi_atime;   /* time last accessed */

time_tdi_mtime;   /* time last modified */

time_tdi_ctime;   /* time created */

};

目录也是文件,也由磁盘索引节点表示,只是在di_mode中标明是目录文件,不过其数据组成与普通文件不同,目录的数据是有结构的

#ifdefDIRSIZ

#defineDIRSIZ14

#endif

struct direct

{

ino_td_ino;

chard_name[DIRSIZ];

};

这里给出的例子只是System V传统文件系统的结构定义,只是为了说明问题

|

目录还是文件,只不过这个特殊一点的文件里面放置的是该目录下的文件的信息而已,还是在inode里面的。

无论如何一个inode里面只能出现一个文件(当然压缩的那些不算),所以针对目录也是如此。这个是文件系统本身的约定。

|

父目录和子目录的目录结构是在struct dentry里面。inode都是跟文件和具体文件系统相关的东西。

|

QQ群:新开的.希望大家可以在此群中交流.

`````````````````````````````````````

WEB.Linux 群号:7729746

|

不知道你在问什么?用dentry找到父目录和子目录的inode, 在从inode找到你要的信息不就完了?

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值