一、UNIX文件系统概述
1. UNIX文件系统的特点
(1) 文件系统的组织是分级树形结构。
(2) 文件的物理结构为混合索引式结构。
(3)空闲盘块采用成组链接法管理。
2. 文件系统的结构
UNIX/Linux的大致目录结构
二、文件的物理结构
三、索引结点的管理
四、空闲磁盘空间的管理
1.文件卷的组织
- 0#块:引导块或空闲
- 1#块:超级块(属性块)
- 索引节点表(区)
- 数据区
2. 空闲盘块的组织
空闲盘块的组织采用空闲块成组链法
五、文件表的管理
1.用户文件描述符表的管理
(1) 用户文件描述符表(用户打开文件表)
在UNIX系统Ⅴ中, 在每个进程的U区中都设置了一张用户文件描述符表。核心先对其打开请求做仔细检查后,便在该进程的用户文件描述符表中,分配一个空项,取其在该表中的位移量(编号)作为文件描述符fd(file discriptor)返回给用户。以后,当用户再访问该文件时, 只需提供该文件描述符fd,系统根据fd便可找到相应文件的内存索引结点。
(2) ufalloc过程。
用户文件描述符表项的分配,是由ufalloc过程完成的。该过程首先是从用户文件描述符表中查找一个空项, 若找到,便将该表项的序号fd作为文件描述符写入进程的U区,然后返回; 否则, 置出错标志后返回“NULL”。
2. 系统打开文件表及管理
- 系统打开文件表主要用来指明打开同一文件的不同进程和不同进程所使用的不同打开路径,以及这些不同进程和不同打开路径所对应的读写指针。因此可以认为系统打开文件表是i节点表的补充。
- 在文件表项中,除了读/写偏移量f_offset外,还设置了文件引用计数f_count,用于指示正在利用该文件表项的进程数目,以及用于指向对应内存索引结点的指针f_inode、读/写标志f_flag等。
对文件的三种读写方法
六、目录管理
- UNIX系统中的目录文件是以普通文件存放,且文件的目录和说明信息采用了SFD和BFD结构方式以利于共享。为此,通常须使每一个文件都在文件目录中有一个目录项(符号文件目录SFD),通过查找文件目录,可找到该文件的目录项和它的索引结点(基本文件目录BFD),进而找到文件的物理位置。
- 目录管理功能有:构造、删除和检索等