操作系统——第四章(文件共享、保护、层级结构、系统布局..)
一、文件共享
1.知识概览
2.文件共享与文件复制的区别
多个用户共享同一个文件,意味着系统中只有“一份”文件数据。并且只要某个用户修
改了该文件的数据,其他用户也可以看到文件数据的变化。
如果是多个用户都“复制”了同一个文件,那么系统中会有“好几份”文件数据。其中一个用
户修改了自己的那份文件数据,对其他用户的文件数据并没有影响。
3.硬链接——基于索引节点的共享
(1)知识回顾——什么是索引节点?
索引结点,是一种文件目录瘦身策略。由于检索文件时只需用到文件名,因此可以将除
了文件名之外的其他信息放到索引结点中。这样目录项就只需要包含文件名、索引结点指针。
理解——让不同文件的目录项指向同一个索引节点。不同目录起的文件名可以不同。
索引结点中设置一个链接计数变量cout,用于表示链接到本索引结点上的用户目录项数。
若cout=2,说明此时有两个用户目录项链接到该索引结点上,或者说是有两个用户在共享此文件。
若某个用户决定“删除”该文件,则只是要把用户目录中与该文件对应的目录项删除,且索引结点的
count值减1。
若cout>0,说明还有别的用户要使用该文件,暂时不能把文件数据删除,否则会导致指针悬空。
当count=0时系统负责删除文件。
4.软链接——基于符号链的共享
我们可以用Windows系统中的软件快捷方式来理解软链接:
假设你电脑里安装了画图软件,原始文件是: C:\Program Files\Paint\paint.exe
你在桌面上创建了一个快捷方式: 桌面\画图.lnk
这个快捷方式就像软链接:
- 表面形态相同:双击
画图.lnk
和直接打开paint.exe
效果完全一样 - 实质是路径指引:快捷方式文件里只存储了目标路径信息: $$路径 = "C:\Program Files\Paint\paint.exe"$$
- 轻量级存在:快捷方式本身只有几KB大小,不复制原文件内容
- 动态关联:
- 若原文件被删除 → 快捷方式失效(出现红叉)
- 若原文件被移动 → 快捷方式需要重新定位路径
- 跨区能力:就像快捷方式可以指向不同硬盘的文件,软链接也能跨磁盘/分区创建
这个机制实现了"一个实体,多处访问"的效果,就像在多个抽屉里放同一本书的书签,既节省空间,又能保持内容同步更新。
5.知识图谱
二、文件保护
1.知识概览
2.口令保护
口令一般存放在文件对应的FCB或索引结点中。用户访问文件前需要先输入“口令”,操作系统会将用户提供的口令与FCB中存储的口令进行对比,如果正确,则允许该用户访问文件。【例子:为文件设置一个“口令”(如:abc112233),用户请求访问该文件时必须提供“口令”。】
优点:保存口令的空间开销不多,验证口令的时间开销也很小。
缺点:正确的“口令”存放在系统内部,不够安全。
3.加密保护
使用某个“密码”对文件进行加密,在访问文件时需要提供正确的“密码”才能对文件进行正确的解密。
优y优点:保密性强,不需要在系统中存储“密码”。
缺点:编码/译码,或者说加密/解密要花费一定时间。
4.访问控制
在每个文件的FCB(或索引结点)中增加一个访问控制列表(Access-Control List,ACL),该表中记
录了各个用户可以对该文件执行哪些操作。
精简的访问列表:以“组”为单位,标记各“组”用户可以对文件执行哪些操作。
如:分为系统管理员、文件主、文件主的伙伴、其他用户几个分组。
当某用户想要访问文件时,系统会检查该用户所属的分组是否有相应的访问权限。
【注:系统需要管理分组的信息】
5.知识图谱
三、文件系统的层次结构
用一个例子来辅助记忆文件系统的层次结构:
假设某用户请求删除文件“D:/工作目录/学生信息.xsx”的最后100条记录。
- 用户需要通过操作系统提供的接口发出上述请求一一用户接口
- 由于用户提供的是文件的存放路径,因此需要操作系统一层一层地查找目录,找到对应的目录
文件目录系统 - 不同的用户对文件有不同的操作权限,因此为了保证安全,需要检查用户是否有访问权限一一存取控制模块(存取控制验证层)
- 验证了用户的访问权限之后,需要把用户提供的“记录号”转变为对应的逻辑地址一一逻辑文件系统与文件信息缓冲区
- 知道了目标记录对应的逻辑地址后,还需要转换成实际的物理地址一一物理文件系统
- 要删除这条记录,必定要对磁盘设备发出请求一一设备管理程序模块
- 删除这些记录后,会有一些盘块空闲,因此要将这些空闲盘块回收一一辅助分配模块
四、文件系统布局
1.文件系统的全局结构
(1)物理格式化
物理格式化,即低级格式化一一划分扇区,检测坏扇区,并用备用扇区替换坏扇区
(2)逻辑格式化
逻辑格式化后,磁盘分区(分卷Volume),完成各分区的文件系统初始化
【注:逻辑格式化后,灰色部分就有实际数据了,白色部分还没有数据。】
2.文件系统在内存中的结构
(1)目录的缓存
(2)系统打开文件表
(3)用户打开文件表
Open系统调用 打开文件的背后过程:
五、虚拟文件系统与文件系统挂载
1.普通文件系统与虚拟文件系统的比较
特点:②VFS要求下层的文件系统必须实现某些规定的函数功能,如:open/read/write。一个新的文件系统想要在某操作系统上被使用,就必须满足该操作系统VFS的要求。
存在的问题:不同的文件系统,表示文件数据结构各不相同。打开文件后,其在内存中的表示就不同。
③每(灯开一个文仲、VFS就在主存中新建一个vnode,用统一的数据结构表示文件,无论该文件
存储在哪个文件系统。【注:vnode只存在于主存中,而inode既会被调入主存,也会在外存中存储】
2.文件系统挂载 (插U盘)
文件系统挂载(mounting),即文件系统安装/装载-一如何将一个区件系冤挂载到操作系统中?
文件挂载需要进行的步骤:
①在往册挂载这件系统内存中的挂载(mount table)包含每个文作系统的相关瓦,包括文件
系统类型、容量大小等。
②新挂载的女件系纷要向VFS提供一个函数地址列表。
③将新文件系统加到挂载点(mount point),也就是将新文件系统挂载在某个父目录下。
挂载点:Windows系统:继C、D盘之后用26个字母表示的盘,如F、H盘等。
Mac系统:Volumes下的子目录为挂载点。
下一讲——第五章,敬请期待(* ̄︶ ̄)