7.3.2 简单的 目录结构
1.单级目录结构
为所有文件建立一个目录文件(组成一线性表)
优点: 简单,易实现
缺点: (1) 目录项太多时查找速度慢平均检索时间长
(2) 不允许重名, 限制了用户对文件的命名
(3) 不便于实现文件共享, 只适用于单用户环境
2. 二级目录结构
为改变一级目录文件目录命名冲突, 而改进, 可用不同文件名共享同一文件。
目录分为两级:一级称为主文件目录MFD, 给出用户名,用户子目录所在的物理位置;二级称为用户文件目录UFD(用户子目录), 给出该用户所有文件的FCB。
优点:提高了检索目录的速度,解决了文件的重名问题和文件共享问题,不同用户用不同文件名访问同一文件。
缺点:增加了系统空间开销
7.3.3 多级目录结构(树型目录)
目录结构: 大型文件系统通常采用三级或三级以上的目
录结构,构成树型目录,主目录称为根目录, 其它
目录均作为树的分支结点, 文件称为树叶。
路径名: 在树型目录结构,从根目录到各文件,用经历的
全部目录名和文件名表示唯一的路径名。
当前目录: 可为每个进程设置一个"当前目录", 进程对
文件的访问都相对于"当前目录"进行。
优点:
层次结构清晰,便于管理和保护,解决重名问题,文件共享问题,查找速度加快
缺点:
增加了系统空间开销,查找一个文件按路径名逐层检查, 由于每个文件都放在外存, 级数太多时访盘影响速度
7.3.4 目录查询技术
1. 线性检索法
单级目录:
用户给出文件名,按名顺序查找目录项
多级目录根据路径名顺序查找各级目录:
全路径名:从根开始
相对路径:从当前路径
各级目录未查到时应停止查询, 返回"文件未找到",查到则根据盘块号指针读入下级目录继续查。
2. Hash方法
建立一张 Hash索引文件目录, 利用Hash函数直接将文件名转换为索引值直接查找, 解决冲突的规则:
(1) 该目录项为空则未找到
(2) 文件名(或子目录名)匹配则找到
(3) 该目录项非空则发生冲突,将Hash值加一常数(与目录长度互质)继续查找
7.4 文件共享
一个文件(或子目录) 可以被多个用户(进程)共享使用; 这样可以节省时间和存储空间, 减少了用户工作量。
早期的文件共享方式有绕弯路法、连访法和基本文件目录法; 当前常用两种文件共享方法,它们是:
基于索引结点的共享方式
利用符号链实现文件共享
7.4.1 基于索引结点的共享方式
将共享文件或子目录链接到多个用户的目录表中,此时目录的结构已不再是树型结构而是一个有向非循环图。用户的目录表中有文件的描述信息,当某个用户对文件修改时这些描述信息的内容也可能发生变化,此时该文件的其它共享者的目录对应信息并未随之改变,引起共享错误。用索引结点可避免。
为了解决这一问题可以将目录表中文件的描述信息存储在索引结点中,而仅将文件名和指向索引结点的指针存放在目录表中。索引结点中的count用作共享计数(链接计数)。
图中表示有向非循环图的目录结构,圆圈表示索引结点和文件本身。
问题:删除文件时怎样考虑?当文件主删除文件时可能会发生指针悬空。
7.4.2 利用符号链(Symbolic Link)实现文件共享
要使用户B能共享用户C的文件F,系统建立一个类型为LINK的新文件,如起名为G(或仍为F), 放在B的目录中, 该文件只包含被共享文件F的路径名。此法称为符号链接 (Symbolic Linking), 当B要访问G文件时, 被OS截获, OS根据G的LINK类型确定它是符号链, 再按此符号链找到共享文件F。
当文件主C 删除文件F后, 若B试图通过文件G 符号链访问F, 则只会因找不到文件访问失败, 不会发生指针悬空。
问题: 访问时系统要按符号链逐个分量查找目录, 多次读盘, 系统开销甚大。
优势: 可在网络环境下用, 符号链可存网址和路径
两种方法的共同问题是遍历文件系统并拷贝到磁带上, 对多次遍历到的共享文件, 将产生多个拷贝。
7.5 文件保护
1.安全性
确保未经授权的用户不能存取某些文件。涉及到技术、管理、法律、道德和政治等问题 安全性的两个重要方面:
(1) 数据丢失: 灾难、硬件或软件故障、人的失误
可通过磁盘容错技术和备份(存放在另一处)来解决
(2) 入侵者
积极的或消极的
非技术人员的偶然窥视
入侵者的窥视
明确的偷窃企图
商业或军事间谍活动
设计安全时要考虑是哪一类入侵者
2. 防止OS的安全缺陷
UNIX、TENEX、OS/360、Windows等都存在
Logic bomb(逻辑炸弹), Morris(蠕虫)利用安全缺陷
(1) 一般性的安全攻击
请求内存页、磁盘空间和磁带并读取其内容
尝试非法的系统调用(非法参数、不合适的参数)
在登录过程中键入DEL, BREAK
写一段程序欺骗用户……
病毒
(2) 安全性的设计原则
系统设计必须公开
缺省属性应该不可访问
检查当前权限
给每个进程赋予一个最小的可能权限
保护机制应简单一致,嵌入到系统底层
3. 文件的保护机制
(1) 文件保护
用于提供安全性的特定的操作系统机制。
(有权限的用户, 应让其进行相应操作, 否则, 应禁止)
实现:用户验证、存取控制
(2) 用户验证
用户登录, 检验其身份
(1) 口令
(2) 物理鉴定
磁卡,指纹,签名分析,手指长度分析
(3) 对策
(3) 存取控制
审查用户的权限
审查本次操作的合法性
文件的二级存取控制
第一级:对访问者的识别
用户分类:文件主(owner)
同组用户(group)、其它用户(other)
第二级:对操作权限的识别
操作分类:读操作® 、写操作(w)
执行操作(x)、不能执行任何操作(-)