文件#
属性、FCB、inode
操作:open/close
、read/write
、move/delete
索引节点磁盘结构:类型、权限、标识符、地址、长度、链接计数、存取时间
索引节点内存结构:编号、状态、访问计数、逻辑设备号、链接等
打开 / 关闭:用户对文件操作时需要先打开,将文件信息(FCB)放入内存,持有文件指针,可以避免多次检索目录。控制多个进程对文件的同时访问。
权限控制:ACL / 权限组 / 口令
- ACL 较为复杂,长度无法预计。
- 精简 ACL 只区分拥有者、组、其他三种用户
- 口令:建立 FCB 判断口令。但不够安全。
- 密码:为文件加密,但效率低下。
文件逻辑结构
- 流式文件
- 顺序文件:记录通常定长,适合大批量操作
- 索引文件:定长记录文件可以直接计算获取到地址,变长记录通过索引表可以获取地址。
- 顺序索引文件:将顺序记录分组,为第一条记录建立索引项。
- 直接文件 /hash 文件通过内容直接获取地址,存取速度快,但是存在冲突。
目录#
- 一级目录:建立一个目录表。查找慢、不可重名、不便于共享、不适合多用户
- 两级目录:分为主文件目录和用户文件目录。不灵活
- 树形目录:不适合共享
- 有向无环图:增加文件引用计数,使得系统管理相对复杂
操作:搜索 / 创建 / 删除等
文件共享:
- 硬链接:一个目录项,指向同一个文件 inode
- 软连接,一个新文件,给出原来文件的路径