Unix文件系统经验讲解

系统 其他OS
我们在文章中,会讲解一些关于Unix文件系统的知识,Unix文件系统包括引导块、超级块、i节点区、文件存储区、进程对换区等几部分。

我们知道Unix文件系统包括引导块、超级块、i节点区、文件存储区、进程对换区等几部分。引导块占用第0号物理块,不属于文件系统管辖,如果系统中有多个文件系统,只有根文件系统才有引导程序放在引导块中,其余文件系统都不使用引导块;

超级块占用第1号物理块,是文件系统的控制块,超级块包括:文件系统的大小、空闲块数目、空闲块索引表、空闲i节点数目、空闲i节点索引表、封锁标记等。超级块是系统为文件分配存储空间、回收存储空间的依据。

i节点区存放i节点,i节点是对文件进行控制和管理的一种数据结构。

文件存储区是存放文件内容的区域,文件存储区中各数据块的使用情况在超级块中由记录,系统利用超级块中的记录完成对数据块的分配和回收

Unix文件系统中很重要的概念之一就是i节点,下面就开始说说这个重要概念。

每一个文件都有自己的i节点,每个i节点都有一个唯一的i节点号。

i节点结构如下(参考/usr/include/sys/ino.h):
 

  1. struct dinode  
  2. {  
  3. ushort di_mode; /*文件类型+用户权限*/  
  4. short di_nlink; /*文件链接数*/  
  5. ushort di_uid; /*属主用户id*/  
  6. ushort di_gid; /*属主用户组id*/  
  7. off_t di_size; /*文件大小*/  
  8. char di_addr[40]; /*文件数据区起点地址*/  
  9. time_t di_atime; /*最后访问时间*/  
  10. time_t di_mtime; /*最后修改时间*/  
  11. time_t di_ctime; /*创建时间*/  
  12. };  

从Unix文件系统这个结构可以看出以下一些信息:

1、i节点保存了文件的属性和类型、存放文件内容的物理块地址、最近一次的存取时间、最近一次的修改时间、创建此文件的时间。

2、i节点中没有记录文件名字,那文件名是怎么关联到i节点,这么设计又有什么好处呢?

呵呵,这里就关系到了 硬连接与符号连接的区别?

3、di_mode这个是怎么保存文件类型+用户权限的,这个如果引申下来也很值得一说。

一般我们用l列文件看到的是这样的结果:

  1. drwxr-xr-x 7 root sys 512 Dec 15 2002 var  
  2. -rw-r--r-- 1 root sys 4003 Jul 4 23:37 1 

Unix文件系统记文件权限,这个字符串跟ushort di_mode怎么关联,用到了一个编码跟掩码的算法(Ip地址用的就是东东),留着下次说吧。

【编辑推荐】

  1. 深度讲解Unix打印系统
  2. Unix平台中安装PHP讲解
  3. Unix操作系统硬链接与符号链接的区别
  4. Unix链接知识讲解
  5. Unix版权属于我们
责任编辑:小霞
相关推荐

2010-05-05 17:46:32

Unix文件系统

2010-04-08 15:58:24

Unix操作系统

2010-05-10 19:03:00

Unix文件

2010-04-26 18:11:55

Unix文件系统

2010-04-26 18:35:18

Unix文件

2010-04-13 13:31:31

Unix文件

2010-04-13 13:55:36

Unix文件系统

2010-04-26 17:34:37

Unix文件

2010-04-30 15:51:48

Unix系统

2011-03-23 14:00:44

2010-04-29 10:11:17

Unix系统

2010-05-04 17:06:38

Unix安装

2010-04-15 16:24:10

Unix操作系统

2011-03-23 14:28:29

安全Unix系统find

2011-08-22 11:49:20

iPhone文件系统NSFileManag

2010-06-22 16:18:54

2010-04-30 17:03:44

Unix文件系统

2010-05-04 09:22:10

Unix文件

2010-05-04 11:59:39

Unix系统

2010-05-05 10:19:51

Unix系统
点赞
收藏

51CTO技术栈公众号