文件系统-文件

来源:互联网 发布:windows属于系统软件 编辑:程序博客网 时间:2024/03/29 00:49

要弄清Linux的文件系统,首先需要知道Linux是通过什么管理文件的。

Linux使用索引节点来管理文件。索引节点包括文件的一些必要信息:文件的存储权限,文件的大小,文件的创建日期,文件的所属用户,以及文件存储的位置。

Linux0.12使用的文件系统是Minix文件系统。他对索引节点的定义如下:

 

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

 

i_mode定义了文件的类型和文件的存储权限。

i_uid是所属用户的ID。

i_size是文件的大小。

i_time是文件创建的时间。

i_gid是文件所属的组ID。

i_nlinks是文件目录项的链接数。

i_zone是文件在文件系统中的位置(逻辑磁盘块号),其中i_zone[0]~i_zone[6]为直接块,i_zone[7]为一次间接块,i_zone[8]为二次间接块。Linux中一个物理块的大小为1k,块号用4字节编址,因此一个一次间接块可以寻址256个块。而一个二次间接块可以寻址(1024/4)*256=65536个块。所以Linux最大文件可以有(7+256+65535)*1k=65798k,大约64M。

 

另外,目录也是一个文件,只是文件的数据内容是一系列的目录表项,每个目录表项由索引节点和文件名组成。

原创粉丝点击